Hi,

I'm not sure what you are profiling, but when repeatingly requesting a
preview of an article containing 200000 bytes of data consisting of the
pattern "a a a a a a " I got the below results.  (The php parser doesn't
seem to depend on perl regexps.)

CPU: CPU with timer interrupt, speed 0 MHz (estimated)
Profiling through timer interrupt
samples  %        app name                 symbol name
994      23.4933  libpcre.so.3.12.1        /lib/libpcre.so.3.12.1
545      12.8811  libphp5.so               zendparse
369       8.7213  libphp5.so               lex_scan
256       6.0506  libc-2.11.2.so           memcpy
137       3.2380  libphp5.so               zend_hash_find
135       3.1907  libphp5.so               _zend_mm_alloc_canary_int
105       2.4817  libphp5.so               __i686.get_pc_thunk.bx
90        2.1272  libphp5.so               _zend_mm_free_canary_int
67        1.5835  libphp5.so               zif_strtr
59        1.3945  libphp5.so               zend_mm_add_to_free_list
48        1.1345  libphp5.so               zend_mm_remove_from_free_list

/Andreas

2011-05-03 14:40, Domas Mituzas skrev:
> some oprofile data showsthat pcre is few percent of execution time - and 
> there's really lots of Zend internals that stand in the way - memory 
> management (HPHP implements it as C++ object allocations via jemalloc), 
> symbol resolutions (native calls in C++), etc. 
> 
> Domas
> 
> samples  %        image name               app name                 symbol 
> name
> 492400    9.6648  libphp5.so               libphp5.so               
> _zend_mm_alloc_int
> 451573    8.8634  libc-2.7.so              libc-2.7.so              (no 
> symbols)
> 347812    6.8268  libphp5.so               libphp5.so               
> zend_hash_find
> 345665    6.7847  no-vmlinux               no-vmlinux               (no 
> symbols)
> 330513    6.4873  libphp5.so               libphp5.so               
> _zend_mm_free_int
> 225755    4.4311  libpcre.so.3.12.1        libpcre.so.3.12.1        (no 
> symbols)
> 159925    3.1390  libphp5.so               libphp5.so               
> zend_do_fcall_common_helper_SPEC
> 137709    2.7029  libphp5.so               libphp5.so               
> _zval_ptr_dtor
> 127233    2.4973  libxml2.so.2.6.31        libxml2.so.2.6.31        (no 
> symbols)
> 111249    2.1836  libphp5.so               libphp5.so               
> zend_hash_quick_find
> 93994     1.8449  libphp5.so               libphp5.so               
> _zend_hash_quick_add_or_update
> 84693     1.6623  libphp5.so               libphp5.so               
> zend_assign_to_variable
> 84256     1.6538  fss.so                   fss.so                   (no 
> symbols)
> 56474     1.1085  libphp5.so               libphp5.so               execute
> 49959     0.9806  libphp5.so               libphp5.so               
> zend_hash_destroy
> 48450     0.9510  libz.so.1.2.3.3          libz.so.1.2.3.3          (no 
> symbols)
> 46967     0.9219  libphp5.so               libphp5.so               
> ZEND_JMPZ_SPEC_TMP_HANDLER
> 46523     0.9131  libphp5.so               libphp5.so               
> _zend_hash_add_or_update
> 45747     0.8979  libphp5.so               libphp5.so               
> zend_str_tolower_copy
> 39154     0.7685  libphp5.so               libphp5.so               
> zend_fetch_dimension_address
> 35356     0.6940  libphp5.so               libphp5.so               
> ZEND_RECV_SPEC_HANDLER
> 33381     0.6552  libphp5.so               libphp5.so               
> compare_function
> 32660     0.6410  libphp5.so               libphp5.so               
> _zend_hash_index_update_or_next_insert
> 31815     0.6245  libphp5.so               libphp5.so               
> zend_parse_va_args
> 31689     0.6220  libphp5.so               libphp5.so               
> ZEND_SEND_VAR_SPEC_CV_HANDLER
> 31554     0.6193  libphp5.so               libphp5.so               _emalloc
> 30404     0.5968  libphp5.so               libphp5.so               
> _get_zval_ptr_var
> 29812     0.5851  libphp5.so               libphp5.so               
> ZEND_ASSIGN_REF_SPEC_CV_VAR_HANDLER
> 28092     0.5514  libphp5.so               libphp5.so               
> ZEND_DO_FCALL_SPEC_CONST_HANDLER
> 27760     0.5449  libphp5.so               libphp5.so               
> zend_hash_clean
> 27589     0.5415  libphp5.so               libphp5.so               
> zend_fetch_var_address_helper_SPEC_CONST
> 26731     0.5247  libphp5.so               libphp5.so               
> _zval_dtor_func
> 24732     0.4854  libphp5.so               libphp5.so               
> ZEND_ASSIGN_SPEC_CV_VAR_HANDLER
> 24732     0.4854  libphp5.so               libphp5.so               
> ZEND_RECV_INIT_SPEC_CONST_HANDLER
> 22587     0.4433  libphp5.so               libphp5.so               
> zend_send_by_var_helper_SPEC_CV
> 22176     0.4353  libphp5.so               libphp5.so               _efree
> 21911     0.4301  libphp5.so               libphp5.so               .plt
> 21102     0.4142  libphp5.so               libphp5.so               
> ZEND_SEND_VAL_SPEC_CONST_HANDLER
> 19556     0.3838  libphp5.so               libphp5.so               
> zend_fetch_property_address_read_helper_SPEC_UNUSED_CONST
> 18568     0.3645  libphp5.so               libphp5.so               
> zend_get_property_info
> 18348     0.3601  libphp5.so               libphp5.so               
> zend_std_get_method
> 18279     0.3588  libphp5.so               libphp5.so               
> zend_get_hash_value
> 17944     0.3522  libphp5.so               libphp5.so               
> php_var_unserialize
> 17461     0.3427  libphp5.so               libphp5.so               
> _zval_copy_ctor_func
> 17187     0.3373  libtidy-0.99.so.0.0.0    libtidy-0.99.so.0.0.0    (no 
> symbols)
> 16341     0.3207  libphp5.so               libphp5.so               
> zend_get_parameters_ex
> 16103     0.3161  libphp5.so               libphp5.so               
> zend_std_read_property
> 15662     0.3074  libphp5.so               libphp5.so               
> zend_hash_copy
> 14678     0.2881  libphp5.so               libphp5.so               
> zend_binary_strcmp
> 14556     0.2857  apc.so                   apc.so                   
> my_copy_hashtable_ex
> 14279     0.2803  libphp5.so               libphp5.so               
> _zend_mm_realloc_int
> 13993     0.2747  oprofiled                oprofiled                (no 
> symbols)
> 13680     0.2685  libphp5.so               libphp5.so               
> dom_nodelist_length_read
> 13265     0.2604  libphp5.so               libphp5.so               
> zval_add_ref
> 13166     0.2584  libphp5.so               libphp5.so               
> zend_objects_store_del_ref_by_handle
> 13084     0.2568  libphp5.so               libphp5.so               
> ZEND_INIT_METHOD_CALL_SPEC_CV_CONST_HANDLER
> 13030     0.2558  libphp5.so               libphp5.so               
> zend_assign_to_object
> 11822     0.2320  libphp5.so               libphp5.so               
> ZEND_INSTANCEOF_SPEC_CV_HANDLER
> 11511     0.2259  libphp5.so               libphp5.so               
> zend_fetch_property_address_read_helper_SPEC_CV_CONST
> 11425     0.2242  libphp5.so               libphp5.so               _estrndup
> 11340     0.2226  libphp5.so               libphp5.so               
> zendi_smart_strcmp
> 11227     0.2204  libphp5.so               libphp5.so               
> ZEND_JMPZ_SPEC_VAR_HANDLER
> 11174     0.2193  libphp5.so               libphp5.so               
> ZEND_FETCH_CLASS_SPEC_CONST_HANDLER
> 11080     0.2175  libphp5.so               libphp5.so               
> _zend_hash_init
> 10908     0.2141  libphp5.so               libphp5.so               
> zend_object_store_get_object
> 10623     0.2085  libphp5.so               libphp5.so               
> zend_assign_to_variable_reference
> 10577     0.2076  libphp5.so               libphp5.so               
> zend_hash_index_find
> 10231     0.2008  libphp5.so               libphp5.so               
> ZEND_JMP_SPEC_HANDLER
> 10227     0.2007  libphp5.so               libphp5.so               
> ZEND_RETURN_SPEC_CONST_HANDLER
> 9400      0.1845  libphp5.so               libphp5.so               
> _safe_emalloc
> 8973      0.1761  libphp5.so               libphp5.so               
> ZEND_BOOL_SPEC_TMP_HANDLER
> 8652      0.1698  libphp5.so               libphp5.so               
> zend_lookup_class_ex
> 8504      0.1669  libphp5.so               libphp5.so               
> ZEND_JMPZ_EX_SPEC_TMP_HANDLER
> 8489      0.1666  libphp5.so               libphp5.so               
> zend_call_function
> 8448      0.1658  libphp5.so               libphp5.so               
> convert_to_boolean
> 8307      0.1630  libphp5.so               libphp5.so               
> ZEND_JMPZ_SPEC_CV_HANDLER
> 8297      0.1629  libphp5.so               libphp5.so               
> zend_hash_rehash
> 8092      0.1588  libphp5.so               libphp5.so               
> ZEND_INIT_METHOD_CALL_SPEC_UNUSED_CONST_HANDLER
> 7855      0.1542  libphp5.so               libphp5.so               
> ZEND_RETURN_SPEC_VAR_HANDLER
> 7659      0.1503  libphp5.so               libphp5.so               
> instanceof_function_ex
> 7552      0.1482  libphp5.so               libphp5.so               
> ZEND_FE_FETCH_SPEC_VAR_HANDLER
> 7383      0.1449  libphp5.so               libphp5.so               
> ZEND_FETCH_OBJ_R_SPEC_UNUSED_CONST_HANDLER
> 7036      0.1381  libphp5.so               libphp5.so               
> is_identical_function
> 7012      0.1376  libphp5.so               libphp5.so               
> php_is_type
> 6907      0.1356  libphp5.so               libphp5.so               
> zend_hash_get_current_data_ex
> 6901      0.1355  libphp5.so               libphp5.so               
> ZEND_SEND_REF_SPEC_CV_HANDLER
> 6881      0.1351  libphp5.so               libphp5.so               
> concat_function
> 6860      0.1346  libphp5.so               libphp5.so               
> zend_hash_del_key_or_index
> 6843      0.1343  libphp5.so               libphp5.so               
> php_pcre_match_impl
> 6648      0.1305  libphp5.so               libphp5.so               
> zend_isset_isempty_dim_prop_obj_handler_SPEC_VAR_CV
> 6600      0.1295  libphp5.so               libphp5.so               
> ZEND_ASSIGN_DIM_SPEC_CV_UNUSED_HANDLER
> 6538      0.1283  libphp5.so               libphp5.so               _phpi_pop
> 6306      0.1238  libphp5.so               libphp5.so               
> zend_get_constant_ex
> 6254      0.1228  libphp5.so               libphp5.so               zif_strtr
> 5901      0.1158  libphp5.so               libphp5.so               
> zend_fetch_class
> 5829      0.1144  libphp5.so               libphp5.so               
> zif_dom_nodelist_item
> 5809      0.1140  libphp5.so               libphp5.so               
> sub_function
> 5805      0.1139  libphp5.so               libphp5.so               
> zend_std_write_property
> 5789      0.1136  libphp5.so               libphp5.so               
> ZEND_RETURN_SPEC_CV_HANDLER
> 5753      0.1129  libphp5.so               libphp5.so               _ecalloc
> 5678      0.1114  libmysqlclient.so.15.0.0 libmysqlclient.so.15.0.0 (no 
> symbols)
> 5650      0.1109  libphp5.so               libphp5.so               
> ZEND_ADD_ARRAY_ELEMENT_SPEC_CONST_UNUSED_HANDLER
> 5470      0.1074  libphp5.so               libphp5.so               
> ZEND_FETCH_W_SPEC_CONST_HANDLER
> 5262      0.1033  libphp5.so               libphp5.so               
> ZEND_SEND_VAL_SPEC_TMP_HANDLER
> 5259      0.1032  libphp5.so               libphp5.so               
> ZEND_ASSIGN_SPEC_CV_TMP_HANDLER
> 5128      0.1007  libphp5.so               libphp5.so               
> ZEND_FETCH_DIM_W_SPEC_CV_CV_HANDLER
> 
> 
> 
> _______________________________________________
> Wikitech-l mailing list
> Wikitech-l@lists.wikimedia.org
> https://lists.wikimedia.org/mailman/listinfo/wikitech-l
> 


_______________________________________________
Wikitech-l mailing list
Wikitech-l@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/wikitech-l

Reply via email to