Ralf Propach wrote:
Dennis Smith wrote:
Thanks -- it did not show much
100.0 All Processes
100 Primitives
looks a bit strange.
Anyway, I think I found about 90% of the problem. I have two items of
size 300,000.
One is a WeakDictionary and the other a WeakKeyedRegistry.
Hi Dennis,
I had something similar with DotNETConnect. When the object registry gets
large, garbage collection took a large part of the time. I found increasing
the size of newspace can help a lot. I think I did something like
ObjectMemory sizesAtStartup: #(10.0 10.0 1.0 1.0 1.0 10.0 1.0)
to make some tests run 3 times faster.
The problem is that WeakDictionary does a self rehash at the end of finalizeElements.
In rehash a new WeakDictionary with all the surviving elements is created
(in your case with 300000 keys, values and exectors). With a big enough WeakDictionary,
at that time newspace is full again, i.e. it is time for the next scavenge.
HTH
Ralf
Thanks -- I was just starting to work on the "atStartup" sizes when I
discovered that the Ephemerons in the
WeekKeyedRegistry were the problem -- my solution? don't use it :) --
I found a simpler (and faster)
way of doing what I wanted.
A bit of explanation perhaps. We normally run against a Gemstone
database and in a few places we use
the oop of the object, either asking the object for its oop or asking
for the object belonging to a saved oop.
So when we run (for testing or development purposes) without Gemstone,
we need a similar capability.
Previously I kept an OrderedCollection and searched it -- worked well
for small numbers of business objects.
In THIS case I am testing a payroll system for a client with about 5000
employees and about 60,000 detail objects
created during a payrun. Wanted to do it without Gemstone because of
initial load time of the base objects,
so the WeekXxx stuff got a workout.
--
Dennis Smith +1 416.798.7948
Cherniak Software Development Corporation Fax: +1 416.798.0948
509-2001 Sheppard Avenue East [hidden email]
Toronto, ON M2J 4Z8 <a class="moz-txt-link-freetext" href="sip:dennis@CherniakSoftware.com">sip:dennis@...
Canada http://www.CherniakSoftware.com
Entrance off Yorkland Blvd south of Sheppard Ave east of the DVP