What follows is a profile for beos bone running 1000 connections using
a single thread (-DONE_PROCESS). Columns are
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