Q:

Is it safe to assume the performance difference between implicit and explicit print is related to object size?

I've written a couple of methods to produce a network type object with options to define the relationships with a formula or with a list of models.  When trying to invoke my print method, I'm seeing radically different speeds between the objects generated by a list and those generated by a formula
setRepositories(ind=1:2)
#* Requires that you have JAGS installed
devtools::install_github("nutterb/HydeNet", ref="devel-brom")
library(HydeNet)

data(PE, package='HydeNet')

#* Object based on a formula 
autoNet <- HydeNetwork(~ wells
                       + pe | wells
                       + d.dimer | pregnant*pe
                       + angio | pe
                       + treat | d.dimer*angio
                       + death | pe*treat,
                       data = PE)

#* Object based on a list of models
g1 <- lm(wells ~ 1, data=PE)
g2 <- glm(pe ~ wells, data=PE, family="binomial")
g3 <- lm(d.dimer ~ pe + pregnant, data=PE)
g4 <- xtabs(~ pregnant, data=PE)
g5 <- glm(angio ~ pe, data=PE, family="binomial")
g6 <- glm(treat ~ d.dimer + angio, data=PE, family="binomial")
g7 <- glm(death ~ pe + treat, data=PE, family="binomial")

bagOfModels <- list(g1,g2,g3,g4,g5,g6,g7)
bagNet <- HydeNetwork(bagOfModels)

The PE data set that these objects are based on is fairly large itself, and in the list version of the network (bagNet), PE is carried in all seven of the model objects.  This certainly balloons the size:
> object.size(autoNet)
397344 bytes
> object.size(bagNet)
26969592 bytes

Now when I try to print the objects, the time it takes to execute the print varies greatly. (I'm aware of system.time, but it wasn't showing the execution time for implicit print, so I'm using the ugly work around, sorry)
#* time to print autoNet
> a <- Sys.time()
> autoNet
> b <- Sys.time()
> b-a
Time difference of 0.172601 secs

#* Time to print bagNet
> a <- Sys.time()
> bagNet
> b <- Sys.time()
> b-a
Time difference of 33.53736 secs

#* Time to print bagNet explicitly
> a <- Sys.time()
> print(bagNet)
> b <- Sys.time()
> b-a
Time difference of 0 secs

There is a brief discussion at R-devel about it, but it doesn't quite go so far as to say that it is the size of the object that is slowing down the printing.  Am I correct in my assumption?  I'm just wondering if I should recommend using explicit printing in my package documentation.

A:

Yes, but only in the current R release, not in R-devel, which will be released as R 3.2.0 in April.  Until recently the implementation of auto-printing was done in a way that caused the object to be duplicated when printing was handled via method dispatch. That has now ben addressed.

