Re: Profiling PHP
| From: | Rasmus Lerdorf | Date: | Mon, 13 May 2002 15:56:53 +0000 |
| Subject: | Re: Profiling PHP | ||
| References: | 1 | Groups: | php.dev |
| Request: | Send a blank email to php-dev+get-83997@lists.php.net to get a copy of this message | ||
oprofile only works under Linux and it is driven by a kernel module.
On Mon, 13 May 2002, Zeev Suraski wrote:
> The link you specified doesn't work (it's .net)... Nice touch on their part
> on having a page that doesn't render under IE :)
>
> Anyway, the important question is whether you're using it under Linux or
> some other OS. Under Linux, unless it has some kernel module, it's going
> to be horribly inaccurate. After finding this page, it does appear as if
> it's using a kernel module. Congrats to Linux for finally having a usable
> profiler!
>
> It's pretty consistent with the results I got using NuMega's profiler about
> a year ago (I don't remember the exact numbers, but the functions are more
> or less the same).
>
> Zeev
>
> At 18:43 13/05/2002, Rasmus Lerdorf wrote:
> >I did specify the profiler on line 4 of the message. And it is a pretty
> >good one actually.
> >
> >On Mon, 13 May 2002, Zeev Suraski wrote:
> >
> > > We already tried our best to optimize most of the functions that show up in
> > > profiling. Not surprisingly, they are mostly the infrastructure
> > functions...
> > >
> > > What profiler are you using? If it's under Linux, chances are it's
> > > *extremely* inaccurate. Profiling under Linux is horrible.
> > >
> > > Zeev
> > >
> > > At 17:42 13/05/2002, Rasmus Lerdorf wrote:
> > > >I did a quick little profile of a lightly hit PHP server running a variety
> > > >of PHP apps such as IMP, Gallery and a couple of small MySQL-driven apps.
> > > >A semi-representative tiny snapshot of what I would consider normal usage
> > > >of PHP. I threw oprofile at it (oprofile.sourceforge.org) and here are
> > > >the results:
> > > >
> > > >Cpu type: PIII
> > > >Cpu speed was (MHz estimation) : 868.000000
> > > >Counter 0 counted CPU_CLK_UNHALTED events (clocks processor is not halted)
> > > >with a unit mask of 0x00 (Not set) count 600000
> > > >vma samples %-age symbol name
> > > >001a56bc 1018 19.7096 zendparse
> > > >001a9f4c 369 7.14424 lex_scan
> > > >001b1ea4 349 6.75702 _emalloc
> > > >001d4ca0 326 6.31171 execute
> > > >001b21b8 301 5.82769 _efree
> > > >001cdaf8 238 4.60794 zend_inline_hash_func
> > > >001ca85c 238 4.60794 zend_hash_add_or_update
> > > >001f5960 171 3.31075 mail_msgno
> > > >001b3028 170 3.29138 _mem_block_check
> > > >0015dcb4 127 2.45886 php_var_unserialize
> > > >001ccae0 120 2.32333 zend_hash_find
> > > >001baf6c 81 1.56825 _zval_ptr_dtor
> > > >001c443c 69 1.33591 _zval_dtor
> > > >0015701c 66 1.27783 smart_str_print_unsigned
> > > >001cbda8 53 1.02614 zend_hash_destroy
> > > >001db270 51 0.987415 _get_zval_ptr
> > > >001ca5f8 48 0.929332 _zend_is_inconsistent
> > > >00156c08 43 0.832527 smart_str_appendl_ex
> > > >001cb9b8 41 0.793804 zend_hash_rehash
> > > >001cc6cc 39 0.755082 zend_hash_copy
> > > >001f64d0 36 0.696999 mail_gc_msg
> > > >0015ef14 33 0.638916 process_nested_data
> > > >001563b0 33 0.638916 php_var_serialize_intern
> > > >001b27fc 31 0.600194 _estrndup
> > > >00208200 29 0.561471 mm_blocknotify
> > > >0015ee18 28 0.54211 var_push
> > > >001c45c0 27 0.522749 zval_add_ref
> > > >0015f2b4 26 0.503388 parse_iv2
> > > >001bdaf0 25 0.484027 destroy_op_array
> > > >001c4970 24 0.464666 _zval_ptr_dtor_wrapper
> > > >001cb3b4 22 0.425944 zend_hash_index_update_or_next_insert
> > > >001b2440 21 0.406583 _erealloc
> > > >001c3560 20 0.387222 zend_str_tolower
> > > >001b9970 20 0.387222 zendlex
> > > >001c3dfc 19 0.367861 zend_ptr_stack_n_push
> > > >001d398c 18 0.3485 zend_fetch_var_address
> > > >001c83cc 17 0.329138 add_next_index_long
> > > >001c45d0 17 0.329138 _zval_copy_ctor
> > > >001bdcd0 16 0.309777 init_op
> > > >
> > > >Not all that useful. Would be cool to run this for longer on a busy site
> > > >to get more accurate numbers. It does give some indication of where small
> > > >code optimizations would make the biggest overall difference.
> > > >
> > > >-Rasmus
> > > >
> > > >
> > > >--
> > > >PHP Development Mailing List
> > > ><http://www.php.net/>
> > > >To unsubscribe, visit:
> > > >http://www.php.net/unsub.php
> > >
>