On 30/10/2021 3:00 a.m., Mosqueira Sanchez, Iago wrote:
As far as I can see only classes, methods and functions are present
there. I loaded the rdb file and looked at the contents and sizes of
objects.

Am I right in assuming every method or function imported from another
package sits in the database? In another S4 package I see that the
largest objects are nls, cor and lm, which we overload for some S4
classes.

I think imports just get a small record saying where to get the object from, they don't get full copies. That way if you import foo::bar, and the foo package gets updated, your package will use the latest version.

If you want to find out what is taking up all the space, this is what you can do. Suppose your package is called "foo". Then read the index to the R objects using

rdx <- readRDS(system.file("R/foo.rdx", package = "foo"))

Then rdx$variables will be a named list. The names are the names of the variables, and the values are offsets and sizes of each variable in the foo.rdb file. So this will print all the sizes from smallest to largest:

sort(sapply(rdx$variables, function(x) x[2]))

If none of those are very big, you could look at

sapply(rdx$references, function(x) x[2]))

for the sizes of the references to other environments. These are harder to interpret, because they get names like "env::3", unlike the variables, which have the name they use in R. I suppose you could figure out how lazyLoadDBfetch() works and read one of them to see what's in it, but I haven't done that.

Duncan Murdoch




Iago

On Fri, 2021-10-29 at 20:21 -0400, Duncan Murdoch wrote:
On 29/10/2021 4:23 p.m., Gábor Csárdi wrote:
You probably (accidentally?) put some large object into your
package,
e.g. a non-function object. But it is hard to say more without
seeing
the actual code....

Yes.  To track it down, you need to understand that an INSTALL
executes
everything in the .R files, and saves every object that was created.
In
a simple package, that's just a bunch of functions, but in more
complicated situations, you may have created some objects in order
to
build functions, even though you don't need them:  but unless you
remove
them, it's very easy to have them included too.

Duncan Murdoch
Gabor

On Fri, Oct 29, 2021 at 10:07 PM Mosqueira Sanchez, Iago
<iago.mosque...@wur.nl> wrote:

I am getting warnings in some packages about the size of the R
folder

* checking installed package size ... NOTE
    installed size is 20.5Mb
    sub-directories of 1Mb or more:
      data   2.4Mb
      R     17.8Mb

This package contains around 3300 lines of code, if the results
of

grep -v '^\s*#' *.R | wc

are correct.

Is this size to be expected? Is there anything I might be
missinmg to
make it smaller?

Thanks,


Iago
--
dr. Iago Mosqueira

Wageningen Marine Research

Haringkade 1
Postbus 68
1976CP, IJmuiden

Tel.: +31 (0)317 488 995
iago.mosque...@wur.nl
______________________________________________
R-package-devel@r-project.org mailing list
https://eur03.safelinks.protection.outlook.com/?url=https%3A%2F%2Fstat.ethz.ch%2Fmailman%2Flistinfo%2Fr-package-devel&amp;data=04%7C01%7Ciago.mosqueira%40wur.nl%7Cab72634b9fed43fd7a2208d99b3b43cd%7C27d137e5761f4dc1af88d26430abb18f%7C0%7C0%7C637711501535857883%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C2000&amp;sdata=E9aOOkVzR46TP2lah4alc%2F%2B5PmFPX27oDV140kBcrEI%3D&amp;reserved=0

______________________________________________
R-package-devel@r-project.org mailing list
https://eur03.safelinks.protection.outlook.com/?url=https%3A%2F%2Fstat.ethz.ch%2Fmailman%2Flistinfo%2Fr-package-devel&amp;data=04%7C01%7Ciago.mosqueira%40wur.nl%7Cab72634b9fed43fd7a2208d99b3b43cd%7C27d137e5761f4dc1af88d26430abb18f%7C0%7C0%7C637711501535867885%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C2000&amp;sdata=ZMc2qL9zGn9u5Tcf8nRNNffZlkMZVbXvdW3pVgrrI0E%3D&amp;reserved=0


______________________________________________
R-package-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-package-devel

Reply via email to