apr-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Marc Slemko <ma...@znep.com>
Subject Re: profile...
Date Wed, 01 Aug 2001 16:04:12 GMT
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
> 


Mime
View raw message