On 03/30/2015 09:04 AM, Mike Smith wrote:
Hi all,
I was wondering if anyone could explain the memory usage behaviour I see
when subsetting a ShortReadQ object.
If I create a ShortReadQ with 500 reads, each of length 200bp it uses
~230Kb of memory. If I do the same, but store 50,000 reads the memory
usage goes up to ~21.5Mb - this seems entirely reasonable. However, if I
then create a third object by subsetting the first 500 reads from the
larger ShortReadQ it comes in at ~19.5Mb, which seems less understandable.
I was hoping for some insight into why this might be.
It's actually inherited behavior from XStringSet -- the XStringSet is kind of
like a 'view' on a single larger object, subsetting the object creates a
different view but on the same large object. `compact()` actually realizes the
view as a new instance
> print(object.size(fq3), units = "auto") ## 19.6 Mb
19.6 Mb
> print(object.size(compact(fq3)), units = "auto")
229.3 Kb
Martin
I've put some code in a Gist here that can run this example:
https://gist.github.com/grimbough/ca9e668a5772dc00cafb
Thanks,
Mike
--
Computational Biology / Fred Hutchinson Cancer Research Center
1100 Fairview Ave. N.
PO Box 19024 Seattle, WA 98109
Location: Arnold Building M1 B861
Phone: (206) 667-2793
_______________________________________________
Bioc-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/bioc-devel