Beefy Boxes and Bandwidth Generously Provided by pair Networks
XP is just a number
 
PerlMonks  

Re: Re: Re: 3 weeks wasted? - will threads help?

by perrin (Chancellor)
on Jan 27, 2003 at 22:57 UTC ( [id://230392]=note: print w/replies, xml ) Need Help??


in reply to Re: Re: 3 weeks wasted? - will threads help?
in thread 3 weeks wasted? - will threads help?

Actually, forking will buy you a lot. You are not understanding what I said about copy-on-write. On a modern OS, when you fork the memory is not actually copied. Only pages that get changed are copied, and the rest is shared between processes. It makes a huge difference and is something that is widely used with mod_perl to reduce the memory overhead of multiple Perl interpreters.
  • Comment on Re: Re: Re: 3 weeks wasted? - will threads help?

Replies are listed 'Best First'.
Re: Re: Re: Re: 3 weeks wasted? - will threads help?
by Limbic~Region (Chancellor) on Jan 27, 2003 at 23:12 UTC
    Ok - so maybe it is the ps command that I am not understanding

    I set up a little program to fork two copies of itself up at the top and then in the main body, do nothing more than

    while (1) { print "I am only printing and sleeping\n"; sleep 1; }

    Performing a ps -el showed each processes' sz as though I had executed each one separately. Maybe I am using the wrong tool to determine how much total memory each process is taking away from the system.

    I am going to look into POE as was suggested by adrianh, but it seems forking would be a whole lot easier. Is there a way for me to benchmark the difference in total process memory utilization between:

  • Launching each process individually with two separate args
  • Having one program fork itself with the two separate args
  • Re-writing with POE to only have one process do all the work

    Thanks for the insight and cheers - L~R

      If you look at the SHARE column in top (it may be there in your ps as well), you will see how much of that size is actually shared. More info is available here.
        Ok - I cry Uncle - I believe you in principle.

        But the proof is in the pudding.

        My top (HPUX 11.0 64bit) does not have a shared column nor does my ps command show one.

        I thought I would be sneaky and use this, but every single memory column showed the exact same information for all 3 processes. I thought this might mean since I wasn't creating or destroying variables they were sharing exactly the same memory (the child's memory space wasn't getting dirty), so I added some dummy code to do something similar to:

        $dummy += rand;

        No change in ps, top, or my custom perl code

        so I decided to try and install Gtop as the article you mentioned referenced - I was not able to get to the site that it referenced, so I am back to square one.

        How do I tell how do I profile how much total memory each process is using?

        It isn't like I am expecting you to answer - just saying that it seems odd that there is no easy way to tell.

        Cheers - L~R

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others having an uproarious good time at the Monastery: (2)
As of 2024-04-24 22:50 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found