hotshot has asked for the wisdom of the Perl Monks concerning the following question:

Morning all

I ran a cgi script and noticed that the perl 5.6.1 process (using top) is using about 60% of the memory, the thing is that it still using that even after I closed my browser. Does perl supposed to keep on eating my memory resorces even after my application has ended ? or anyone can suggest flaws in my script ?

Hotshot

Replies are listed 'Best First'.
Re: memory usage
by rob_au (Abbot) on Jan 09, 2002 at 13:32 UTC
    This is not normal behaviour for a Perl script - Script execution is normally expected to terminate at a finite point after initiation and not to continue indefinitely following execution (excepting daemon and persistent script execution). Also remember too, that pressing the stop button on your browser or closing your browser window does not send any explicit signal to the script to terminate (1) - Your script will continue to execute although again, it is expected to finish after a finite period.

    As for identifying potential causes for this behaviour from your script, post your code along with some notes on intended execution and script behaviour. Fellow monks can then review your code and pick up on any faults or problems within your code.

     

    1   Note that this can be detected for direct non-proxied connections using Apache, mod_perl and Apache::SIG as described here - In this case, the Apache::SIG handler can be used to trap a SIGPIPE signal is sent to the process (initiated by failed read or write to the connection). Also have a look at this node.

     

    perl -e 's&&rob@cowsnet.com.au&&&split/[@.]/&&s&.com.&_&&&print'

Re: memory usage
by hotshot (Prior) on Jan 09, 2002 at 15:22 UTC
    Thanks guys for your notes. I found the problem. it seems that someone here forgot to increment a loop counter which caused an infinte loop. the minute I fixed that, the problem was solved.

    Thanks

    Hotshot