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(a)lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/wikitech-l