>tom, my direct reply to you bounced, but this should probably be on the
>list anyhow...
>   ----- Transcript of session follows -----
>... while talking to mail.perl.com.:
>>>> MAIL From:<[EMAIL PROTECTED]>
><<< 550 Your site is blacklisted as a spam haven.
>554 <[EMAIL PROTECTED]>... Service unavailable

Hm... you must be using an open relay.  I don't have covalent listed
here.  I see a uunet bounce, which is not unlikely.  They're terrible,
because they sell to everyone, and then don't enforce any AUP on
their downstream resellers.

I don't tend to trust timing under a second.  The quantum fluctuations
in the universe are too hard to predict. :-)

I would like to console people against using the fancy IO 
modules, or at least, not to do so without knowing what they're
getting into.  Look at where we are now:

% wc `perl -MIO -e 'print join("\n", sort values %INC, "")'`
     124     696    4166 /usr/local/lib/perl5/5.6.0/Carp.pm
     580    2465   17661 /usr/local/lib/perl5/5.6.0/Class/Struct.pm
     400    1495   10455 /usr/local/lib/perl5/5.6.0/Cwd.pm
     313    1589   10377 /usr/local/lib/perl5/5.6.0/Exporter.pm
     225     784    5651 /usr/local/lib/perl5/5.6.0/Exporter/Heavy.pm
      92     339    2813 /usr/local/lib/perl5/5.6.0/File/Spec.pm
     442    1574   10276 /usr/local/lib/perl5/5.6.0/File/Spec/Unix.pm
     115     398    2806 /usr/local/lib/perl5/5.6.0/File/stat.pm
     406    1350   10265 /usr/local/lib/perl5/5.6.0/IO/Socket/INET.pm
     143     429    3075 /usr/local/lib/perl5/5.6.0/IO/Socket/UNIX.pm
    7168   24137  178650 /usr/local/lib/perl5/5.6.0/OpenBSD.i386-openbsd/Config.pm
     230    1052    5995 /usr/local/lib/perl5/5.6.0/OpenBSD.i386-openbsd/Errno.pm
     222     725    5216 /usr/local/lib/perl5/5.6.0/OpenBSD.i386-openbsd/Fcntl.pm
      47     101     669 /usr/local/lib/perl5/5.6.0/OpenBSD.i386-openbsd/IO.pm
     239     769    5005 /usr/local/lib/perl5/5.6.0/OpenBSD.i386-openbsd/IO/Dir.pm
     169     549    3956 /usr/local/lib/perl5/5.6.0/OpenBSD.i386-openbsd/IO/File.pm
     594    2180   14772 /usr/local/lib/perl5/5.6.0/OpenBSD.i386-openbsd/IO/Handle.pm
     252     755    5375 /usr/local/lib/perl5/5.6.0/OpenBSD.i386-openbsd/IO/Pipe.pm
      77     235    1709 /usr/local/lib/perl5/5.6.0/OpenBSD.i386-openbsd/IO/Seekable.p
m
     428    1419   10219 /usr/local/lib/perl5/5.6.0/OpenBSD.i386-openbsd/IO/Socket.pm
     452    1401   10554 /usr/local/lib/perl5/5.6.0/OpenBSD.i386-openbsd/Socket.pm
     127     473    3554 /usr/local/lib/perl5/5.6.0/OpenBSD.i386-openbsd/XSLoader.pm
      52     161    1050 /usr/local/lib/perl5/5.6.0/SelectSaver.pm
     139     541    3754 /usr/local/lib/perl5/5.6.0/Symbol.pm
     161     609    4081 /usr/local/lib/perl5/5.6.0/Tie/Hash.pm
     109     390    2479 /usr/local/lib/perl5/5.6.0/strict.pm
      79     370    2589 /usr/local/lib/perl5/5.6.0/vars.pm
     318    1124   11975 /usr/local/lib/perl5/5.6.0/warnings.pm
      30      85     722 /usr/local/lib/perl5/5.6.0/warnings/register.pm
   13733   48195  349869 total

Incredible.

Moreover, that requires 116 happy trips through the kernel's namei().
It syscalls open() a remarkable 57 times, 17 of which failed but
leaving 38 that were successful.  It also syscalled read() a curiously
identical 57 times, ingesting a total of 180,265 plump bytes.  To
top it off, this INCREASES YOUR RESIDENT SET SIZE BY TWO MEGABYTES!

Happy mallocking,  Oh, and the answer you're looking for on CGI.pm is:

% wc `perl -MCGI -le 'print for values %INC'`
    1368    6920   43710 /usr/local/lib/perl5/5.6.0/overload.pm
    6481   26122  200840 /usr/local/lib/perl5/5.6.0/CGI.pm
    7849   33042  244550 total

You have 16 trips through namei, 7 successful opens, 2 unsuccessful ones, 
and 213k of data read in.

The following numbers show memory sizes (virtual and resident) for
v5.6 of Perl on four different operating systems, The three calls
each are without any modules, with just -MCGI, and with -MIO (never
with both):

                OpenBSD       FreeBSD      Redhat       Solaris   
                vsz   rss     vsz  rss     vsz  rss    vsz    rss
    Raw Perl    736   772     832 1208    2412  980    2928  2272 
    w/ CGI     1220  1464    1308 1828    2972 1768    3616  3232
    w/ IO      2292  2580    2456 3016    4080 2868    5384  4976

Anybody who's thinking of choosing one of these might do well to
stare at those numbers for a while.  

--tom

Reply via email to