Re: Profiling PHP

From: Date: Mon, 13 May 2002 15:53:58 +0000
Subject: Re: Profiling PHP
References: 1  Groups: php.dev 
Request: Send a blank email to php-dev+get-83996@lists.php.net to get a copy of this message
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


« previous php.dev (#83996) next »