Hi Chris, there´s no problem at all with adding  the package code anywhere you want. Feel free to contact me for any suggestion.<br>From what I´ve seen from the sample code I sent to you, although the image size grows up, when I closed the repository and evaluated MagmaSession cleanUp,&nbsp;the&nbsp;image size&nbsp;goes back to the state before the evaluation.
<br>In the &quot;real migration&quot; what I told in the first mail&nbsp;still&nbsp;the&nbsp;size&nbsp;is&nbsp;growing&nbsp;at&nbsp;very&nbsp;high&nbsp;rates,&nbsp;we&nbsp;cannot&nbsp;detect&nbsp;yet&nbsp;what&nbsp;objects&nbsp;aren´t&nbsp;collected&nbsp;by&nbsp;the&nbsp;GC.<br> <br>Regards,<br>Juan Matías.<br><br><div>
<span class="gmail_quote">On 8/10/07, <b class="gmail_sendername">Chris Muller</b> &lt;<a href="mailto:ma.chris.m@gmail.com">ma.chris.m@gmail.com</a>&gt; wrote:</span><blockquote class="gmail_quote" style="margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0; margin-left: 0.80ex; border-left-color: #cccccc; border-left-width: 1px; border-left-style: solid; padding-left: 1ex">
Hi Juan, THANKS for the best test case code anyone has ever sent me<br>for asking a question about Magma..!<br><br>I have been too busy to get to it but am finally spending some time<br>with this tonight.<br><br>Do you mind if I harvest this for the Magma tester package?&nbsp;&nbsp;It might
<br>be a really great addition for benchmarking / profiling memory as well<br>overall performance.<br><br>Let me explore this; I&#39;ll write again in the next few days..<br><br>Regards,<br>&nbsp;&nbsp;Chris<br><br>On 8/7/07, Burella Juan M. &lt;
<a href="mailto:juan.burella@gmail.com">juan.burella@gmail.com</a>&gt; wrote:<br>&gt; Hi Chris, Thanks for your answer.<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;I&#39;ve attached a monticello package with the tests, open a Transcript<br>&gt; window and see class comments for instructions of how to run them.
<br>&gt;<br>&gt; This is the Transcript output for 50 &quot;trees&quot; with 5 of depth:<br>&gt;<br>&gt; Creating magma repository<br>&gt; Opening magma session<br>&gt; Image size before creating magma collection: 69851252
<br>&gt; Creating magma collection at MagmaMemoryTest<br>&gt; --Iteration: 1..5:<br>&gt; Image size BEFORE creating test object: 69851252<br>&gt; Creating test objects...<br>&gt; Image size AFTER creating test object: 69851252
<br>&gt; Saving 5 next objects from collection to magma collection...<br>&gt; Image size BEFORE Magma cleaning: 85098444<br>&gt; Image size AFTER Magma cleaning: 82623944<br>&gt; --Iteration: 6..10:<br>&gt; Image size BEFORE creating test object: 82623944
<br>&gt; Creating test objects...<br>&gt; Image size AFTER creating test object: 82623944<br>&gt; Saving 5 next objects from collection to magma collection...<br>&gt;&nbsp;&nbsp;Image size BEFORE Magma cleaning: 106407888<br>&gt; Image size AFTER Magma cleaning: 83066628
<br>&gt; --Iteration: 11..15:<br>&gt; Image size BEFORE creating test object: 83066628<br>&gt; Creating test objects...<br>&gt; Image size AFTER creating test object: 83066628<br>&gt; Saving 5 next objects from collection to magma collection...
<br>&gt; Image size BEFORE Magma cleaning: 108570520<br>&gt; Image size AFTER Magma cleaning: 85184212<br>&gt; --Iteration: 16..20:<br>&gt; Image size BEFORE creating test object: 85184212<br>&gt; Creating test objects...
<br>&gt; Image size AFTER creating test object: 85184212<br>&gt; Saving 5 next objects from collection to magma collection...<br>&gt; Image size BEFORE Magma cleaning: 108627824<br>&gt; Image size AFTER Magma cleaning: 85212848
<br>&gt; --Iteration: 21..25:<br>&gt; Image size BEFORE creating test object: 85212848<br>&gt; Creating test objects...<br>&gt; Image size AFTER creating test object: 85212848<br>&gt; Saving 5 next objects from collection to magma collection...
<br>&gt;&nbsp;&nbsp;Image size BEFORE Magma cleaning: 108615528<br>&gt; Image size AFTER Magma cleaning: 85216916<br>&gt; --Iteration: 26..30:<br>&gt; Image size BEFORE creating test object: 85216916<br>&gt; Creating test objects...
<br>&gt; Image size AFTER creating test object: 85216916<br>&gt; Saving 5 next objects from collection to magma collection...<br>&gt; Image size BEFORE Magma cleaning: 108787536<br>&gt; Image size AFTER Magma cleaning: 85257868
<br>&gt; --Iteration: 31..35:<br>&gt; Image size BEFORE creating test object: 85257868<br>&gt; Creating test objects...<br>&gt; Image size AFTER creating test object: 85257868<br>&gt; Saving 5 next objects from collection to magma collection...
<br>&gt; Image size BEFORE Magma cleaning: 108857164<br>&gt; Image size AFTER Magma cleaning: 85307012<br>&gt; --Iteration: 36..40:<br>&gt; Image size BEFORE creating test object: 85307012<br>&gt; Creating test objects...
<br>&gt; Image size AFTER creating test object: 85307012<br>&gt; Saving 5 next objects from collection to magma collection...<br>&gt;&nbsp;&nbsp;Image size BEFORE Magma cleaning: 108623676<br>&gt; Image size AFTER Magma cleaning: 85257812
<br>&gt; --Iteration: 41..45:<br>&gt; Image size BEFORE creating test object: 85257812<br>&gt; Creating test objects...<br>&gt; Image size AFTER creating test object: 85257812<br>&gt; Saving 5 next objects from collection to magma collection...
<br>&gt; Image size BEFORE Magma cleaning: 108390116<br>&gt; Image size AFTER Magma cleaning: 85159312<br>&gt; --Iteration: 46..50:<br>&gt; Image size BEFORE creating test object: 85159312<br>&gt; Creating test objects...
<br>&gt; Image size AFTER creating test object: 85159312<br>&gt; Saving 5 next objects from collection to magma collection...<br>&gt; Image size BEFORE Magma cleaning: 108594588<br>&gt; Image size AFTER Magma cleaning: 85183668
<br>&gt;<br>&gt;<br>&gt; On 8/7/07, Chris Muller &lt;<a href="mailto:asqueaker@gmail.com">asqueaker@gmail.com</a>&gt; wrote:<br>&gt; &gt; HI Juan,<br>&gt; &gt;<br>&gt; &gt; I really need to add a &quot;How to do a Bulk Load&quot; page to the documentation,
<br>&gt; sorry.<br>&gt; &gt;<br>&gt; &gt; In the meantime, you weren&#39;t clear what you were adding the 19K trees<br>&gt; &gt; of objects *TO*.&nbsp;&nbsp;My guess is you are adding to a Smalltlak<br>&gt; &gt; collection; a Dictionary or OrderedCollection perhaps?&nbsp;&nbsp;It&#39;s good you
<br>&gt; &gt; are doing the stubbing and finalizieOids, but they won&#39;t help much if<br>&gt; &gt; the root collection is a Smalltalk collection because the entire<br>&gt; &gt; persistent graph is in memory then (except for the stubbed, maybe).
<br>&gt; &gt;<br>&gt; &gt; You need to add them to a MagmaCollection instead, so that transparent<br>&gt; &gt; paging of objects in and out of memory can occur.<br>&gt; &gt;<br>&gt; &gt; To verify what kinds of persistents you have in memory, check out your
<br>&gt; &gt; #cachedObjectCountByClass.&nbsp;&nbsp;You should have no more than one 19K tree<br>&gt; &gt; worth of objects given that you are doing a garbageCollect after each<br>&gt; &gt; one.<br>&gt; &gt;<br>&gt; &gt; If you would share the skeleton of your load script it also might shed
<br>&gt; &gt; some light.<br>&gt; &gt;<br>&gt; &gt; Thanks,<br>&gt; &gt;&nbsp;&nbsp; Chris<br>&gt; &gt;<br>&gt; &gt;<br>&gt; &gt; On 8/6/07, Burella Juan M. &lt;<a href="mailto:juan.burella@gmail.com">juan.burella@gmail.com</a>&gt; wrote:
<br>&gt; &gt; &gt; I need to do a massive migration to Magma. My approach is currently like<br>&gt; &gt; &gt; this: I&#39;m loading the data from external files, then build a complex<br>&gt; object<br>&gt; &gt; &gt; and commit it to a magma repository, and over again until the file ends.
<br>&gt; &gt; &gt;<br>&gt; &gt; &gt; While doing this, my image was growing at very high rates, approx. 200Mb<br>&gt; and<br>&gt; &gt; &gt; taking several days, between 5 or 6. So, to see what&#39;s happening, I&#39;ve<br>
&gt; done<br>&gt; &gt; &gt; some tests with toy objects, each one of them has 5 iVars. and each one<br>&gt; has<br>&gt; &gt; &gt; another 5 iVars. This generates a tree of 19.556 objects<br>&gt; &gt; &gt; (5^0+5^1+5^2+5^3+5^4+5^5). Then I started to adding 50 of these &quot;tree&quot;
<br>&gt; (or<br>&gt; &gt; &gt; smock?) objects, by groups of 5. I tried to maintain the complexity of<br>&gt; these<br>&gt; &gt; &gt; objects by adding &quot;random&quot; variable sized strings to the leafs and other<br>&gt; &gt; &gt; miscellaneous objets.
<br>&gt; &gt; &gt; When this 50 are finalized, I&#39;ve done:<br>&gt; &gt; &gt;<br>&gt; &gt; &gt; self magmaSession stubOut: aCollection. &quot;aCollection has 50 smock<br>&gt; objects&quot;<br>&gt; &gt; &gt; aCollection := nil.
<br>&gt; &gt; &gt; Smalltalk garbageCollect.<br>&gt; &gt; &gt; self magmaSession finalizeOids.<br>&gt; &gt; &gt;<br>&gt; &gt; &gt; But still the image is increasing its size. At beggining of the test the<br>&gt; &gt; &gt; image size (as reported from #vmParameterAt: 3) was approx. 60Mb and at
<br>&gt; the<br>&gt; &gt; &gt; end was approx. 89MB.<br>&gt; &gt; &gt;<br>&gt; &gt; &gt; Any suggestions for reducing the growing of the image size?<br>&gt; &gt; &gt;<br>&gt; &gt; &gt; Thanks in advance.<br>&gt; &gt; &gt; Juan Matias.
<br>&gt; &gt; &gt;<br>&gt; &gt; &gt; _______________________________________________<br>&gt; &gt; &gt; Magma mailing list<br>&gt; &gt; &gt; <a href="mailto:Magma@lists.squeakfoundation.org">Magma@lists.squeakfoundation.org
</a><br>&gt; &gt; &gt;<br>&gt; <a href="http://lists.squeakfoundation.org/mailman/listinfo/magma">http://lists.squeakfoundation.org/mailman/listinfo/magma</a><br>&gt; &gt; &gt;<br>&gt; &gt; &gt;<br>&gt; &gt;<br>&gt;<br>&gt;
<br>&gt;<br></blockquote></div><br>