[Melbourne-pm] PERL Destruction and Memory Usage
Scott Penrose
scottp at dd.com.au
Sun Jun 20 17:33:38 CDT 2004
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Hi Ddues
I have a quick question which I can't easily answer or prove either way.
I have a very large data structure in an application. Close to 100MB.
All made up of objects. I then fork a number of times, and the used
memory does not increase as it is still sharing that memory (standard
vfork = copy on write).
Over the life time of the child the object does not increase much.
Then I do a "exit 0;"
This tends to take a very long time. Perl then calls DESTROY on every
single object in memory.
So the problem... I have a theory that during the DESTROY that perl
writes to the memory block, and I end up taking up the 100MB extra for
each child being destroyed. Thus enough of these happen at once swap is
hit and everything slows down.
Also, does perl do garbage collection during an exit ?
Two questions:
* Is this the case, or does perl leave those blocks alone on DESTROY?
* Is there an easy "correct" way to exit a child without activating the
DESTROY or Garbage collection?
Scott
- --
* - * http://www.osdc.com.au - Open Source Developers Conference * - *
Scott Penrose
Welcome to the Digital Dimension
http://www.dd.com.au/
scottp at dd.com.au
Dismaimer: Contents of this mail and signature are bound to change
randomly. Whilst every attempt has been made to control said
randomness, the author wishes to remain blameless for the number of
eggs that damn chicken laid. Oh and I don't want to hear about
butterflies either.
Please do not send me Word or PowerPoint attachments.
See http://www.fsf.org/philosophy/no-word-attachments.html
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.4 (Darwin)
iD8DBQFA1hDFDCFCcmAm26YRAo0XAJ4wnPhoTSPxGKQ/Al3+7lrVdYtlZwCggRmG
cIvipwzUlN5Y6sh9Joukc2g=
=tpDV
-----END PGP SIGNATURE-----
More information about the Melbourne-pm
mailing list