Beefy Boxes and Bandwidth Generously Provided by pair Networks
Syntactic Confectionery Delight
 
PerlMonks  

Re: Code and Process Efficency

by sgifford (Prior)
on Dec 29, 2003 at 21:26 UTC ( [id://317558]=note: print w/replies, xml ) Need Help??


in reply to Code and Process Efficency

As others have said, use top to see if you're running out of memory. That seems the most likely culprit.

If the amount of output from your programs is large, an improvement that would reduce memory usage would be to change the child code to:

unless ($cpid[$i]) { exec 'perl',$_ or die "exec error: $!\n"; }
(You might have to play around with file descriptors a little to make this work just right). Using backticks causes another fork to be done, with the resulting parent reading the child's output, storing it into a scalar variable, then when the child exits prints the results. Using exec instead saves a fork, and instead of reading all of the input into a scalar variable, just lets the child write to stdout directly.

Also, adding better error checking, along with use strict and the -w flag might help you locate errors that are making your program behave in unexpected ways.

How many programs are listed in @gets?

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://317558]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others avoiding work at the Monastery: (2)
As of 2024-04-25 05:45 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found