On Sat, Dec 15, 2001 at 08:57:30PM -0500, Perrin Harkins wrote:
> > One place that Rob and I still haven't found a good solution for
> profiling
> > is trying to work out whether we should be focussing on optimising our
> > mod_perl code, or our IMAP config, or our MySQL DB, or our SMTP setup,
> or
> > our daemons' code, or...
> 
> Assuming that the mod_perl app is the front-end for users and that
> you're trying to optimize for speed of responses, you should just use
> DProf to tell you which subroutines are using the most wall clock time.
> (I think it's dprofpp -t or something.  Check the man page.)  If the sub
> that uses IMAP is the slowest, then work on speeding up your IMAP server
> or the way you access it.

> CPU utilization may not be all that telling, since database stuff often
> takes the longest but doesn't burn much CPU.

I agree 100%, wall clock time is the best metric.  Consider that most
apps are not CPU bound, they are I/O or network bound.  Wall clock
time measures that exactly.

Another useful tool is truss/strace.  Start up your server single
process (-X) and then attach to it with strace.  The -c and -r flags
to strace are quite handy..  For example here's the cumulative stats
for 'ls'

% time     seconds  usecs/call     calls    errors syscall
------ ----------- ----------- --------- --------- ----------------
 52.29    0.004508         751         6           read
 19.48    0.001679         560         3           write
 12.93    0.001115          56        20           close
  6.01    0.000518          23        23           old_mmap
  5.45    0.000470          21        22         2 open
  1.22    0.000105          21         5           munmap
  0.93    0.000080          40         2           getdents64
  0.71    0.000061           3        21           fstat64
  0.29    0.000025           4         7           brk
  0.24    0.000021          11         2           mprotect
  0.19    0.000016           8         2           ioctl
  0.12    0.000010          10         1           uname
  0.09    0.000008           3         3         2 rt_sigaction
  0.06    0.000005           5         1           fcntl64
------ ----------- ----------- --------- --------- ----------------
100.00    0.008621                   118         4 total

-- 
Paul Lindner   [EMAIL PROTECTED]    ||||| | | | |  |  |  |   |   |

    mod_perl Developer's Cookbook   http://www.modperlcookbook.org
         Human Rights Declaration   http://www.unhchr.ch/udhr/index.htm

Reply via email to