[Rd] object.size vs lobstr::obj_size

Hervé Pagès hp@ge@ @end|ng |rom |redhutch@org
Fri Mar 27 22:01:13 CET 2020



On 3/27/20 12:00, Hadley Wickham wrote:
> 
> 
> On Fri, Mar 27, 2020 at 10:39 AM Hervé Pagès <hpages using fredhutch.org 
> <mailto:hpages using fredhutch.org>> wrote:
> 
>     Hi Tomas,
> 
>     On 3/27/20 07:01, Tomas Kalibera wrote:
>      > they provide an over-approximation
> 
>     They can also provide an "under-approximation" (to say the least) e.g.
>     on reference objects where the entire substance of the object is
>     ignored
>     which makes object.size() completely meaningless in that case:
> 
>         setRefClass("A", fields=c(stuff="ANY"))
>         object.size(new("A", stuff=raw(0)))      # 680 bytes
>         object.size(new("A", stuff=runif(1e8)))  # 680 bytes
> 
>     Why wouldn't object.size() look at the content of environments?
> 
> 
> As the author, I'm obviously biased, but I do like lobstr::obj_sizes() 
> which allows you to see the additional size occupied by one object given 
> any number of other objects. This is particularly important for 
> reference classes since individual objects appear quite large:
> 
> A <- setRefClass("A", fields=c(stuff="ANY"))
> lobstr::obj_size(new("A", stuff=raw(0)))
> #> 567,056 B
> 
> But the vast majority is shared across all instances of that class:
> 
> lobstr::obj_size(A)
> #> 719,232 B
> lobstr::obj_sizes(A, new("A", stuff=raw(0)))
> #> * 719,232 B
> #> *     720 B
> lobstr::obj_sizes(A, new("A", stuff=runif(1e8)))
> #> *     719,232 B
> #> * 800,000,720 B

Nice. Can you clarify the situation with lobstr::obj_size vs 
pryr::object_size? I've heard of the latter before and use it sometimes 
but never heard of the former before seeing Stefan's post. Then I 
checked the authors of both and thought maybe they should talk to each 
other ;-)

Thanks,
H.

> 
> Hadley
> -- 
> http://hadley.nz 
> <https://urldefense.proofpoint.com/v2/url?u=http-3A__hadley.nz&d=DwMFaQ&c=eRAMFD45gAfqt84VtBcfhQ&r=BK7q3XeAvimeWdGbWY_wJYbW0WYiZvSXAJJKaaPhzWA&m=MX7Olw-dGRDfJNWEqIDTTTkaagVswOEqcRnxuRBAdjw&s=haVkOV6bEj7VnjT4Gn4iXzRqO7IOqDZUZuEeFPSHQuM&e=>

-- 
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 using fredhutch.org
Phone:  (206) 667-5791
Fax:    (206) 667-1319



More information about the R-devel mailing list