[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