On Thu, 2003-07-31 at 05:04, Majorinc, Kazimir wrote: > Steve Hunter emailed me practical solution. > > Number of allocated double lists in "every 1 to 2" version of example > program seems to depend linearly on environment variable blksize. If set to > the amount of physical memory or slightly more, then "every 1 to 2" version > allocates 80-90% of double lists that "every 1 to 1" version allocates. > Also it doesn't crush any more but start to be very slow. > > In original program, after same change, number of allocated records > increased from 4000 to more than 100 000 before I stopped to wait.
I also see better results with Steve's suggestion to bump BLKSIZE (under Linux, it's caps) *way* up. Which is even more interesting since (under Linux at least), BLKSIZE is the initial size of the heap, but not an upper bound (more memory is allocated as needed). This is borne out by the sizes of the various memory regions as the program runs - the every 1 to 2 dies with a smaller heap than seen by the every 1 to 1 as it processes. If I had to guess, I'd say that Icon is allocating a fixed size region for internal use by the garbage collector where this fixed size is set based on some formula involving BLKSIZE. But that is just a guess - I haven't looked at the GC in 25 years! -- Steve Wampler <[EMAIL PROTECTED]> ------------------------------------------------------- This SF.Net email sponsored by: Free pre-built ASP.NET sites including Data Reports, E-commerce, Portals, and Forums are available now. Download today and enter to win an XBOX or Visual Studio .NET. http://aspnet.click-url.com/go/psa00100003ave/direct;at.aspnet_072303_01/01 _______________________________________________ Unicon-group mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/unicon-group
