Re: Memory usage

"Daniel P. Berrange" <[email protected]>
Newsgroups gmane.comp.lang.perl.modules.mail-box
Message-ID <[email protected]>
On Fri, Mar 12, 2004 at 01:02:07PM +0100, Mark Overmeer wrote:
> > 
> > Could it be the Mail::Box::Manager object holding references to
> > the Mail::Box objects - I currently just assume $manager->close 
> > will cause all remaining references to the folder & thus its memory
> > to be released ? I never hold any references to objects which
> > aren't scoped to a short code block - my code basically looks like:
> 
> The situation is a little more complex.  The manager holds mailboxes,
> and each mailbox holds messages, and the messages a header and a body.
> Multipart and nested bodys hold list of bodies.
> 
> But at the same time, each of these objects refer back to their
> parent, for instance: the body refers to its message.  For garbage
> collection to work, the references "back" are weak references
> (see Scalar::Util::weaken()).
> 
> In case I have forgotten to weaken one reference, somewhere, some
> parts of the data structure may be kept alive, even after a descruct().
> This is close to impossible to debug...

Just came across the module 'Data::Structure::Util' containing
a useful method 'has_circular_ref' to detect circular references.

I'm going to give it a try to track down the memory problems I'm
having. I've already discovered that they are partly related to
charset decoding, but still processing a 2 MB message should
never required 150 MB of memory (!), no matter what charset it is.
So I think somewhere in the depths of DBI / Encode::compat / 
Mail::Box there is some non-optimal memory allocation going on & its 
not being released...

Dan.
-- 
|=-               http://www.berrange.com/~dan/gpgkey.txt             -=|
|=-   [email protected]  -  Daniel Berrange  -  [email protected]    -=|
signature.asc (application/pgp-signature, 232 B)
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.0.6 (GNU/Linux)
Comment: For info see http://www.gnupg.org

iD8DBQFAWI/dvTAeyOKLMk4RAtHsAJ9xUEfYzDIhaLJfuYKVl30PzHY6ygCgiTkt
v5PjYJxkgoW6mxII4MYp/8U=
=WQJN
-----END PGP SIGNATURE-----
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.