in reply to Re^3: Why can code be so slow?
in thread Why can code be so slow?

This makes me wonder if I better keep using my own routines to get my parameters etc instead of using CPAN modules. Do these modules take their entire size as overhead or only the subroutines which get executed? I've also noticed a few weird things with a package I've made slurping more CPU (and memory) than it should take; I only use XML::Twig and XML::Simple in that package (for backwards compatibility for now)

Visual::XML::BEGIN is which I really wonder about ; only 3 calls and 17.5 time for executing these; while its merely a package of 3 routines made as proxy to be backwards compatible using XML::Twig with XML::Simple calls...

%Time ExclSec CumulS #Calls sec/call Csec/c  Name
 42.0   0.120  0.188     16   0.0075 0.0118  Visual::XML::Podcast::BEGIN
 17.5   0.050  0.278     10   0.0050 0.0278  main::BEGIN
 17.5   0.050  0.060      3   0.0166 0.0199  Visual::XML::BEGIN
 3.50   0.010  0.010     47   0.0002 0.0002  strict::bits
 3.50   0.010  0.010      1   0.0100 0.0100  utf8::AUTOLOAD
 3.50   0.010  0.010     29   0.0003 0.0003  XML::Twig::BEGIN
 3.50   0.010  0.010      3   0.0033 0.0033  LWP::Simple::BEGIN
 3.50   0.010  0.010      1   0.0100 0.0100  Visual::XML::Podcast::itunes::BEGIN
 3.50   0.010  0.010      7   0.0014 0.0014  IO::File::BEGIN
 0.00   0.000 -0.000     31   0.0000      -  strict::import
 0.00   0.000 -0.000      1   0.0000      -  vars::BEGIN
 0.00   0.000 -0.000      1   0.0000      -  warnings::BEGIN
 0.00   0.000 -0.000      3   0.0000      -  warnings::register::import
 0.00   0.000 -0.000      6   0.0000      -  warnings::register::mkMask
 0.00   0.000 -0.000     29   0.0000      -  vars::import

Replies are listed 'Best First'.
Re^5: Why can code be so slow?
by jbert (Priest) on May 02, 2007 at 16:19 UTC
    It looks like a lot of your time is being spent BEGIN time, at startup. You might want to try the approach I suggest here: Re^3: Why can code be so slow? to see if startup time is dominating your application.

    If it is, the best solution is probably to avoid repeated startup (by using mod_perl or FastCGI) rather than optimising startup by avoiding CPAN modules.