[Rd] making object.size() more meaningful on environments?

Hervé Pagès hpages at fredhutch.org
Wed Sep 30 00:18:47 CEST 2015


Hi Gabe,

On 09/29/2015 02:51 PM, Gabriel Becker wrote:
> Herve,
>
> The problem then would be that for A a refClass whose fields take up N
> bytes (in the sense that you mean), if we do
>
> B <- A
>
> A and B would look like the BOTH take up N bytes, for a total of 2N,
> whereas AFAIK R would only be using ~ N + 2*56 bytes, right?

Yes, but that's still a *much* better situation than the current one in
my opinion. More generally speaking counting shared memory for each
object (or process) that uses it is a common, sensible, and accepted
approach. No need to look far: a character vector is just a collection
of pointers to stuff that is shared thru the global CHARSXP cache and
AFAIK object.size() takes this stuff into account.

H.

>
> ~G
>
>
>
> On Tue, Sep 29, 2015 at 2:42 PM, Hervé Pagès <hpages at fredhutch.org
> <mailto:hpages at fredhutch.org>> wrote:
>
>     Hi,
>
>     Currently object.size() is not very useful on environments as it always
>     returns 56 bytes, no matter how big the environment is:
>
>        env1 <- new.env()
>        object.size(env1)  # 56 bytes
>
>        env2 <- new.env(hash=TRUE, size=75000000L)
>        object.size(env2)  # 56 bytes
>
>        env3 <- list2env(list(a=runif(25000000), L=LETTERS))
>        object.size(env3)  # 56 bytes
>
>     This makes it pretty useless on reference class instances and other
>     objects that use environments internally for caching or other purposes.
>
>     What about changing this and make it return something more meaningful?
>
>     Cheers,
>     H.
>
>     --
>     Hervé Pagès
>
>     Program in Computational Biology
>     Division of Public Health Sciences
>     Fred Hutchinson Cancer Research Center
>     1100 Fairview Ave. N, M1-B514
>     P.O. Box 19024
>     Seattle, WA 98109-1024
>
>     E-mail: hpages at fredhutch.org <mailto:hpages at fredhutch.org>
>     Phone: (206) 667-5791 <tel:%28206%29%20667-5791>
>     Fax: (206) 667-1319 <tel:%28206%29%20667-1319>
>
>     ______________________________________________
>     R-devel at r-project.org <mailto:R-devel at r-project.org> mailing list
>     https://stat.ethz.ch/mailman/listinfo/r-devel
>
>
>
>
> --
> Gabriel Becker, PhD
> Computational Biologist
> Bioinformatics and Computational Biology
> Genentech, Inc.

-- 
Hervé Pagès

Program in Computational Biology
Division of Public Health Sciences
Fred Hutchinson Cancer Research Center
1100 Fairview Ave. N, M1-B514
P.O. Box 19024
Seattle, WA 98109-1024

E-mail: hpages at fredhutch.org
Phone:  (206) 667-5791
Fax:    (206) 667-1319



More information about the R-devel mailing list