On Wed, 1 Aug 2001, David Reid wrote: > What follows is a profile for beos bone running 1000 connections using > a single thread (-DONE_PROCESS). Columns are
Note that you should be careful not to run tests against the default root page on a new installation, since that page is _VERY_ expensive due to the content negotiation and multiviews stuff that is enabled by default. (not sure if you are doing that or not, although 35 stats per request makes it look that way, just a general warning to avoid arguably skewed profiling results) While it is "neat" to have the default index.html in 483 languages, I'm not sure it really serves a big purpose or is worth having multiviews and all the ick that comes with them enabled by default... but that's another issue and isn't on topic here. > > no. of calls > time in calls > time incl sub calls > function name > > Raises some interesting questions, like how many times do we call > ap_palloc/ap_pcalloc/lock/unlock and stat for 1000 requests? I've > chopped some of the lower order ones off the end to try and stop it > being too huge. > > It'd be interesting to know where the ap_pallocs & ap_pcalloc are as it > looks like we're using a good few pre request... > > david > > 1000 8181804 us 8181804 us - apr_poll > 35007 4432803 us 5258570 us - apr_stat > 46000 1465488 us 1465488 us - apr_dir_read > 1282672 886977 us 916273 us - apr_palloc > 332615 707237 us 1671528 us - apr_pcalloc > 1000 461027 us 461027 us - > apr_wait_for_io_or_timeout > 193121 428517 us 2109572 us - apr_lock_acquire > 33000 418006 us 7095035 us - find_ct > 211056 410955 us 1077082 us - apr_pstrndup > 123236 398136 us 757647 us - apr_pstrcat > 579363 374897 us 374897 us - apr_os_thread_current > 33000 356000 us 25587156 us - > ap_sub_req_lookup_dirent > 193121 329866 us 1452207 us - apr_lock_release > 226749 295152 us 298407 us - find_entry > 168944 283688 us 777633 us - apr_pstrdup > 376666 283454 us 283454 us - ap_get_module_config > 226244 278404 us 1080653 us - apr_hash_get > 146034 269905 us 1788740 us - ap_getword > 206263 244515 us 1700660 us - make_array_core > 88846 230707 us 2179511 us - apr_file_read > 1000 229883 us 51612922 us - read_types_multi > 28000 219124 us 1659640 us - analyze_ct > 148030 199447 us 352790 us - match > 73010 196125 us 716980 us - pcre_exec > 200014 177181 us 177181 us - ap_strchr > 106024 176245 us 1552243 us - apr_table_make > 1008 164273 us 194724 us - apr_file_open > 193121 162915 us 162915 us - _lock > 39000 156079 us 412767 us - add_any_filter > 34000 155962 us 2002941 us - file_walk > 193121 154447 us 154447 us - _unlock > 1000 144966 us 173946 us - apr_dir_open > 147454 144963 us 144963 us - ap_strchr_c > 34010 138327 us 667063 us - fill_out_finfo > 33000 137572 us 4554972 us - fill_in_sub_req_vars > 73010 135891 us 1021936 us - regexec > 67000 135139 us 581290 us - ap_make_dirstr_parent > 34000 130826 us 944637 us - ap_run_fixups > 1002 129017 us 129017 us - socket_cleanup > 1000 125067 us 167023 us - apr_accept > 68000 123319 us 123319 us - ap_strrchr > 1000 120452 us 120452 us - apr_sendv > 67239 118550 us 1020645 us - apr_array_make > 34000 112592 us 55125116 us - ap_run_type_checker > 1000 106790 us 106790 us - apr_shutdown > 4001 105946 us 121647 us - explode_time > 64000 105716 us 105716 us - variantsortf > 66010 104682 us 649072 us - ap_make_full_path > 33000 104306 us 2389954 us - > ap_set_sub_req_protocol > 67080 100737 us 100737 us - ap_strrchr_c > 29000 100372 us 728009 us - get_entry > 34085 96944 us 1044900 us - apr_pool_sub_make > 34085 96324 us 2463395 us - apr_pool_destroy > 1002 94602 us 94602 us - apr_file_write > 73010 92221 us 1281099 us - ap_regexec > 35088 88014 us 914043 us - apr_pool_clear > 1010 86373 us 86554 us - apr_unix_file_cleanup > 69173 83244 us 878847 us - free_blocks > 40000 76272 us 397446 us - ap_get_token > 1000 73591 us 948059 us - best_match > 34000 73282 us 716478 us - ap_parse_uri > 84000 69068 us 69068 us - zap_sp > 102030 68103 us 68103 us - > apr_ansi_time_to_apr_time > 33000 67656 us 1558135 us - make_sub_request > 33000 66369 us 546575 us - apr_table_copy > 28000 66354 us 66354 us - find_default_index > 34000 65111 us 738093 us - ap_make_method_list > 34000 64395 us 288935 us - core_create_req > 34000 63352 us 277029 us - fixup_redir > 81677 62973 us 83536 us - apr_array_push > 56000 60953 us 60953 us - mime_match > 34000 58938 us 328772 us - > apr_uri_parse_components > 34000 57657 us 427558 us - ap_run_create_request > 34000 56984 us 55112268 us - handle_multi > 28000 54628 us 264256 us - set_language_quality > 2000 52784 us 518063 us - apr_recv > 29000 52669 us 135273 us - apr_array_pstrcat > 28000 51303 us 234605 us - set_accept_quality > 37000 48278 us 529167 us - ap_add_output_filter > 2822 46962 us 2349790 us - apr_file_gets > 34084 46441 us 1171233 us - apr_pool_create > 34000 44940 us 152468 us - dav_type_checker > 35000 44727 us 156895 us - ap_allow_options > 31002 43589 us 43589 us - apr_table_get > 35014 42953 us 318038 us - create_empty_config > 34000 42939 us 429120 us - > ap_create_request_config > 34000 41962 us 149519 us - fixup_env_module > 40428 41726 us 41726 us - ap_str_tolower > 1000 39910 us 39910 us - apr_send > 32000 39335 us 2208454 us - ap_destroy_sub_req > 35105 38436 us 45105 us - new_block > 36000 36745 us 44024 us - try_alias_list > 3005 33178 us 69150 us - apr_vformatter > 39000 31655 us 31655 us - check_symlinks > 1000 31540 us 593147 us - directory_walk > 1000 31036 us 245138 us - set_neg_headers > 34000 29868 us 29868 us - fix_encoding > 34010 29820 us 29820 us - apr_unix_mode2perms > 13000 28333 us 238211 us - form_header_field > 34010 28046 us 28046 us - filetype_from_mode > 35088 27332 us 164610 us - run_cleanups > 33000 27326 us 27326 us - ap_copy_method_list > 15000 27288 us 86103 us - apr_brigade_write > 28000 27247 us 27247 us - is_variant_better > 34000 26629 us 26629 us - fixup_dir > 28000 26214 us 26214 us - set_mime_fields > 5000 25505 us 308508 us - ap_getline > 34000 25000 us 25000 us - check_safe_file > 35088 24288 us 24288 us - free_proc_chain > 34026 23080 us 23080 us - ap_set_module_config > 29000 22277 us 22277 us - clean_var_rec > 1000 22164 us 22164 us - dir_cleanup > 1000 21162 us 21162 us - sononblock > 28000 19955 us 19955 us - set_encoding_quality > 28000 19862 us 19862 us - set_charset_quality > 14000 19853 us 203264 us - process_item > 1000 19572 us 1361569 us - do_negotiation > 1000 18561 us 18561 us - get_local_addr > 1000 18459 us 356962 us - > config_log_transaction > 7000 17118 us 60283 us - apr_brigade_cleanup > 9024 16931 us 61080 us - apr_table_setn > 7000 16900 us 38728 us - heap_destroy > 5000 16706 us 182330 us - ap_http_filter > 1000 15533 us 57799060 us - > process_request_internal > 4000 15526 us 379491 us - core_output_filter > 1000 14701 us 1030723 us - ap_http_header_filter > 1000 14052 us 1640135 us - default_handler > 7000 13790 us 79470 us - apr_brigade_create > 1000 13749 us 2399978 us - ap_read_request > 10075 13546 us 44218 us - > apr_pool_cleanup_register > 11000 13305 us 34153 us - apr_array_cat > 7000 12800 us 2225556 us - ap_pass_brigade > 9090 12279 us 12279 us - ap_find_command > 3000 12262 us 21328 us - apr_off_t_toa > 1000 12052 us 1702747 us - ap_run_handler > 2000 11893 us 119786 us - > ap_merge_per_dir_configs > 1000 11856 us 1766694 us - get_mime_headers > 15000 10924 us 10924 us - check_brigade_flush > 2000 10620 us 114405 us - match_headers > 2000 10355 us 44104 us - location_walk > 6000 10144 us 68359 us - apr_array_append > 2000 9961 us 260083 us - apr_table_vdo > 14000 9703 us 9703 us - heap_read > 1 9257 us 70411679 us - worker_thread > 5000 9251 us 63164 us - apr_table_overlay > 2000 8892 us 97136 us - merge_core_dir_configs > 7000 8441 us 30580 us - apr_table_addn > 1002 8363 us 8363 us - apr_time_now > 6000 8248 us 218460 us - ap_get_brigade > 5000 7861 us 7861 us - apr_bucket_simple_copy > 3000 7769 us 17317 us - apr_table_mergen > 1000 7581 us 235904 us - read_request_line > 2000 7565 us 13744 us - apr_bucket_flush_create > 6000 7288 us 17457 us - ap_strcmp_match > 2000 7164 us 13645 us - apr_bucket_socket_create > 6000 7074 us 24406 us - apr_array_copy_hdr > 3000 7045 us 125276 us - apr_rfc822_date > 5002 7039 us 7039 us - ap_update_child_status > 1000 6913 us 133151 us - parse_accept_headers > 1000 6632 us 139120 us - basic_http_header > 1000 6485 us 819314 us - ap_lingering_close > 74 6424 us 6424 us - malloc_block > 5000 6416 us 26061 us - apr_bucket_simple_split > 9010 6386 us 6386 us - ap_os_is_path_absolute > 2826 6348 us 2371569 us - ap_cfg_getline > 5000 6277 us 43195 us - apr_bucket_shared_split > 3000 6254 us 62824 us - apr_brigade_destroy > 2002 6104 us 30528 us - apr_setsocketopt > 1000 5988 us 39456 us - ap_set_keepalive > 1000 5932 us 56512 us - socket_read > 1000 5850 us 247415 us - emulate_sendfile > 7003 5796 us 5796 us - conv_10 > 1000 5763 us 23457 us - uniq_field_values > 1000 5759 us 109004 us - ap_new_connection > 2000 5683 us 18141 us - ap_getword_white > 8000 5591 us 5591 us - apr_bucket_shared_destroy > 2000 5312 us 12721 us - apr_bucket_heap_make > 5000 5301 us 5301 us - ap_make_dirstr_prefix > 634 5236 us 36726 us - ap_find_command_in_modules > 1000 5205 us 297379 us - get_path_info > 2 4975 us 5031 us - ap_get_local_host > 1000 4902 us 1065852 us - ap_content_length_filter > 3000 4775 us 4775 us - sort_overlap > 1000 4737 us 60657868 us - ap_process_http_connection > 4000 4693 us 49577 us - do_header_line > 4000 4659 us 4659 us - ap_method_number_of > 1000 4613 us 61683802 us - process_socket > 4000 4600 us 34673 us - brigade_cleanup > 7000 4584 us 4584 us - constant_item > 2000 4506 us 4506 us - apr_table_unset > 1000 4474 us 13964 us - apr_bucket_file_create > 1000 4365 us 58240591 us - ap_process_request > 1000 4346 us 1522028 us - apr_table_overlap > 1000 4238 us 21393 us - ap_meets_conditions > 1000 4230 us 28034 us - ap_make_content_type > 1000 4146 us 273702 us - setup_choice_response > 3000 4063 us 4063 us - ap_strcasestr > 1000 4039 us 79460 us - ap_set_last_modified > 1000 3987 us 21628 us - ap_setup_client_block > 5012 3959 us 3959 us - apr_pool_cleanup_kill > 3000 3893 us 14502 us - ap_method_list_add > 3000 3865 us 128694 us - writev_it_all > 6000 3837 us 3837 us - do_nothing > 3000 3816 us 99691 us - apr_explode_time > 4000 3809 us 3809 us - conv_p2 > 2000 3755 us 33391 us - ap_set_content_length > 3000 3713 us 110882 us - apr_explode_gmt > 2000 3707 us 24275 us - apr_sockaddr_ip_get > 2000 3640 us 39891 us - apr_pvsprintf > 2360 3630 us 18216 us - ap_getword_conf > 3000 3589 us 3589 us - ap_no2slash > 2822 3551 us 2359337 us - cfg_getstr > 1000 3458 us 55459 us - ap_run_translate_name > 1000 3416 us 96606 us - log_request_time > 1000 3394 us 19418 us - ap_set_byterange > 1000 3386 us 6654 us - apr_bucket_file_make > 1000 3370 us 9942 us - action_handler > 1000 3335 us 3335 us - status_handler > 2172 3255 us 9827 us - substring_conf > 1000 3238 us 58851 us - ap_set_etag > 2000 3203 us 56250 us - ap_make_etag > 1000 3145 us 15834 us - ap_core_translate > 1000 3044 us 22999 us - translate_alias_redir > 1000 3026 us 1101119 us - ap_byterange_filter > 1000 3020 us 10891 us - apr_bucket_heap_create > 1000 2984 us 13259 us - check_dir_access > 1 2981 us 70421092 us - ap_mpm_run > 1000 2946 us 366282 us - multi_log_transaction > 4001 2881 us 2881 us - get_offset > 1000 2853 us 22365 us - ap_run_access_checker > 1000 2847 us 69571 us - fixup_vary > 1000 2794 us 372043 us - ap_run_log_transaction > 1000 2761 us 53152 us - check_pipeline_flush > 1862 2752 us 110402 us - ap_build_config_sub > 1000 2735 us 49738 us - ap_pre_http_connection > 1000 2726 us 60737294 us - ap_process_connection > 2000 2723 us 47434 us - apr_psprintf > 1000 2721 us 21527 us - apr_table_set > 2000 2713 us 26831 us - ap_add_input_filter > 1000 2708 us 61486 us - ap_run_insert_filter > 2000 2653 us 9852 us - apr_inet_ntop > 1000 2596 us 53362 us - ap_flush_conn > 4000 2564 us 2564 us - apr_bucket_destroy_noop > 2000 2557 us 2557 us - alias_matches > 1000 2557 us 48577 us - ap_http_insert_filter > 1000 2544 us 9920 us - ap_update_vhost_given_ip > 1000 2488 us 24167 us - ap_allow_methods > 1000 2478 us 34727 us - set_vlist_validator > 2000 2466 us 2466 us - inet_ntop4 > 1002 2450 us 25465 us - alloc_socket > 1000 2409 us 20252 us - ap_update_vhost_from_headers > 1000 2376 us 5947 us - apr_parse_addr_port > 1000 2369 us 1711861 us - ap_invoke_handler > 2000 2367 us 266957 us - apr_table_do > 1000 2351 us 13111 us - terminate_header > 1001 2344 us 138707 us - apr_socket_close > 1000 2333 us 19863 us - ap_save_brigade > 1000 2286 us 109492 us - ap_run_post_read_request > 1000 2257 us 60662802 us - ap_run_process_connection > 1000 2172 us 5558 us - apr_bucket_eos_create > 6 2170 us 1806175 us - ap_build_config > 2000 2126 us 23659 us - apr_socket_addr_get > 2000 2093 us 2093 us - find_allowdeny > 1000 2080 us 2080 us - ap_getparents > 8 2078 us 2078 us - _lock_cleanup > 3000 2054 us 2054 us - apr_bucket_shared_make > 3000 2032 us 2032 us - ap_find_token > 1000 2011 us 30915 us - apr_dir_close > 1000 1989 us 54445 us - ap_run_pre_connection > 1000 1977 us 9212 us - basic_http_header_check > 1000 1936 us 5302 us - ap_get_remote_host > 1000 1885 us 1885 us - cgi_handler > 1000 1830 us 5169 us - file_destroy > 1000 1784 us 10604 us - fix_hostname > 1000 1780 us 6502 us - ap_unescape_url > 1000 1754 us 5500 us - maybe_add_default_accepts > 1000 1747 us 14626 us - ap_run_header_parser > 1003 1733 us 43228 us - apr_snprintf > 1000 1698 us 6898 us - parse_negotiate_header > 2000 1686 us 1686 us - ap_remove_output_filter > 1000 1627 us 13484 us - core_input_filter > 1000 1603 us 4648 us - core_insert_filter > 1000 1582 us 17238 us - log_status > 1000 1580 us 5174 us - translate_userdir > 1000 1577 us 1577 us - imap_handler > 1000 1546 us 1546 us - apr_poll_revents_get > 2000 1540 us 1540 us - apr_bucket_socket_make > 2002 1533 us 1533 us - apr_cpystrn > 1000 1509 us 9628 us - log_remote_host > 2000 1507 us 1507 us - ap_update_mtime > 1014 1499 us 1499 us - ap_count_dirs > 1000 1488 us 4850 us - apr_itoa > 1000 1463 us 4871 us - do_cache_negotiated_docs > 1000 1451 us 25856 us - ap_discard_request_body > 1001 1413 us 37100 us - apr_explode_localtime > 1000 1402 us 11060 us - clf_log_bytes_sent > 1000 1397 us 8279 us - ap_some_auth_required > 1000 1386 us 13330 us - ap_create_conn_config > 2 1350 us 636207 us - mime_post_config > 1000 1333 us 12700 us - pfmt > 2000 1311 us 1311 us - apr_bucket_flush_make > 1000 1282 us 8864 us - format_integer > 1000 1273 us 1273 us - asis_handler > 1000 1271 us 1271 us - handle_autoindex > 1000 1208 us 1208 us - dav_handler > 1000 1206 us 4477 us - ap_get_remote_logname > 1000 1174 us 1174 us - handle_map_file > 1000 1160 us 8493 us - log_remote_logname > 1000 1151 us 1151 us - handle_dir > 1000 1145 us 4139 us - ap_get_limit_req_body > 1000 1138 us 4382 us - ap_satisfies > 1000 1118 us 4066 us - ap_requires > 1000 1090 us 1090 us - set_default_lang_quality > 1000 1053 us 1053 us - apr_brigade_length > 1000 1023 us 1023 us - ap_index_of_response > 1000 924 us 924 us - apr_sockaddr_port_get > 310 922 us 111264 us - invoke_cmd > 1001 912 us 912 us - apr_unix_perms2mode > 1002 877 us 877 us - set_socket_vars > 1000 874 us 874 us - find_default_server > 288 848 us 53242 us - ap_walk_config_sub > 1001 843 us 843 us - ap_get_server_version > 1000 840 us 840 us - ap_run_quick_handler > 1000 833 us 833 us - ap_finalize_request_protocol > 1000 816 us 816 us - ap_rationalize_mtime > 1000 804 us 804 us - log_request_line > 1000 685 us 685 us - apr_os_sock_get > 1000 683 us 683 us - log_remote_user > 1000 666 us 666 us - apr_bucket_eos_make > 1000 642 us 642 us - apr_bucket_setaside_noop > 505 607 us 8814 us - apr_hash_set > 752 597 us 597 us - apr_hash_next > 418 543 us 2054 us - ap_resolve_env > 302 541 us 3946 us - ap_set_config_vectors > 158 468 us 6466 us - get_extension_info > 72 420 us 60142 us - sort_hook > 16 405 us 2913 us - expand_array > 126 378 us 3768 us - push_item > 72 351 us 50288 us - prepare > 514 331 us 331 us - remove_unused_name_vhosts > 2 288 us 6750 us - ap_fini_vhost_config > 1 286 us 24950 us - ap_setup_prelinked_modules > 44 270 us 3743 us - ap_register_hooks > 2 268 us 345 us - apr_socket_create > 1 241 us 248 us - apr_shm_init > 106 226 us 6198 us - add_charset > 18 208 us 61646 us - ap_soak_end_container > 288 203 us 203 us - ap_add_node >
