Not to appear impatient but it seems as though my last message was
lost in the ether so I'll repost a condensed version. My apologies if
you did indeed get both.
First, if you use close to 2GB (more or less) of memory {Property.get
'gc.size'} and {Property.get 'gc.threshold'} can both become negative
(from signed int's I assume). I know that there is a pratical limit
of 2GB of active memory due to how garbage collection is performed but
'gc.threshold' can be above 2GB when 'gc.size' is not and if
'gc.threshold' is negative and garbage collection is attempted, then
Mozart will die with a "Virtual Memory Exhausted'. But this can
happen before the active size reaches the practical 2GB limit
(depending on how high you have 'gc.free' set to be) and so it should
not be failing.
Second, I am using very large datasets to create very large, deeply
nested records (hence the above memory problems). I want to be able
to pickle these trees for later use. However, trees that are too big
kill the Oz emulator with the message 'Aborted'. With some testing I
believe I can occasional call Pickle.pack on a tree successfully
whereas Pickle.save on the same tree again aborts. Are there any
limitations to how big of a nested record can be pickled? Or is it
just that creating the bytestring is in essence creating a copy of the
tree and so I'm running out of memory (4GB on this machine)? If so,
then why the 'Aborted' message and not 'Virtual Memory Exhausted' as
at other times?
Rob
_________________________________________________________________________________
mozart-users mailing list
[email protected]
http://www.mozart-oz.org/mailman/listinfo/mozart-users