I work on a very large web application written primarily in perl. We're currently looking at ways to improve performance for larger numbers of users. It's plain old cgi, not mod_perl. We know that moving to mod_perl would help a lot, but it's a huge job and we want to get an idea of how much it will really help.

I'd like to know how much time is spent parsing and compiling each of our scripts each time they're run. I had the idea that the first line of my program could call 'time' and subtract $^T from it. Does $^T get set early enough that this would give me reasonable data? From this test script, it seems like it might:

BEGIN { print "BEGIN: $^T\n"; } oh no!
The time is outputted before the compilation error.

I also thought about using the apache logs. I think I remember seeing a while ago that there's a way to record the total script time from there. I haven't looked into that yet. That would also hopefully include the overhead of apache starting a new process, so it might be more useful.

Any other ideas on measuring the startup overhead of running cgi scripts? Thanks.


In reply to measuring startup time: how early does $^T (start time of program) get set? by blahblahblah

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.