I spent some time today profiling the latest httpd-2.1 trunk on OS X, using
the Shark application from Apple's developer tools bundle.  Shark works
by sampling the program counter of a monitored process every N instructions or every N microseconds. It's somewhat like OProfile, but with a nice GUI for
visualizing the data.

The test case I monitored was:
* JMeter requesting a 1KB file from the httpd, one request at a time, with
  no delay between requests
* Prefork MPM with default config settings during build
* Symlink checking and .htaccess file checking turned off in the runtime config
* No server-side-include processing invoked
* No mod_cache

I found a lot of interesting things:

* Over 60% of the httpd's CPU time was spent in userspace, rather than
the kernel. That's higher than I'd expected for static file delivery.

* We're spending a surprising amount of time creating pollsets (please
  see my message on [EMAIL PROTECTED] earlier today for details).  It looks like
  this overhead is incurred both when opening files and when setting
  aside file buckets (within core_output_filter).

* Our old friends file_walk() and directory_walk() collectively account for over 8% of the total CPU time. It's probably possible to speed up both, but
  I haven't looked at them in detail in over a year.

* Another 2.5% of the total is in find_ct(), in mod_mime.c.

* mod_log_config comprises just under 5% of the total CPU usage.
Date/time formatting is part of the reason for this (even with the caching
  that's already in place).

* ap_set_last_modified() is another 2.5% of the total. Date/time formatting
  accounts for most of this.

* basic_http_header() accounts for another 2.5%. About a third of this time
  is spent formatting the Date field in the response header.

* ap_discard_request_body(): 1.5%.

At a high level, the call graph looks like this:
    Self    Total    Library  Symbol
    ----    -----    -------  ------
    0.0%    63.6%    httpd    main
    0.0%    63.6%    httpd     ap_mpm_run
    0.0%    63.6%    httpd      make_child
    0.0%    63.5%    httpd       child_main
    0.0%    62.2%    httpd        ap_run_process_connection
    0.0%    62.2%    httpd         ap_process_http_connection
    0.2%    45.9%    httpd          ap_process_request
    0.1%    20.4%    httpd           ap_invoke_handler
    0.4%    15.5%    httpd           ap_process_request_internal
    0.1%     4.8%    httpd           ap_run_log_transaction
    0.5%     2.4%    httpd           ap_core_output_filter
    0.0%     1.0%    httpd           ap_http_filter
    0.1%     0.6%    httpd           ap_finalize_request_protocol
    0.1%     0.1%    httpd           ap_core_input_filter
0.1% 0.1% httpd ap_update_child_status_from_indexes
    0.1%     0.1%    httpd           ap_run_quick_handler
    0.1%     0.1%    httpd           ap_update_child_status
    0.1%     0.1%    libapr-1.0      apr_file_read
    0.1%     0.1%    httpd           writev_it_all

The remaining ~37% of the samples are in kernel space.

At the end of this message I've included a more detailed profile, as generated by Shark's "report" feature. I've left out the kernel-space parts, as well as all functions in user-space whose total self+children time was less than 0.1% of the total. There are a few oddities in the data that I think represent sampling errors--e.g., call stacks that are impossible. But the overall pattern of the data was consistent across many test runs, so it appears
to be generally valid for performance optimization work.

Finally, I've saved the Shark data file, including annotated source code. It's available at <http://people.apache.org/~brianp/httpd- trunk-20050703.mshark>. Loading this data file into Shark is perhaps the best way to study the data.
A few important caveats, though:
* The data file is 10MB in size.
* It's in a binary format readable only by Shark on OS X (found under
/Developer/Applications/Performance Tools/ if you've installed Apple's
  "Developer Tools" or "Xcode" package).

-Brian

More detailed profile:
# Report 1 - httpd-trunk-20050703.mshark - Time Profile (CPU Cycles - G4+) of httpd
SharkProfileViewer
# Generated from the visible portion of the outline view
+ 63.6% start (httpd)
| + 63.6% _start (httpd)
| | + 63.6% main (httpd)
| | | + 63.6% ap_mpm_run (httpd)
| | | | + 63.6% make_child (httpd)
| | | | | + 63.5% child_main (httpd)
| | | | | | + 62.2% ap_run_process_connection (httpd)
| | | | | | | + 62.2% ap_process_http_connection (httpd)
| | | | | | | | + 45.9% ap_process_request (httpd)
| | | | | | | | | + 20.4% ap_invoke_handler (httpd)
| | | | | | | | | | + 19.7% ap_run_handler (httpd)
| | | | | | | | | | | + 18.3% default_handler (httpd)
| | | | | | | | | | | | + 8.1% ap_byterange_filter (httpd)
| | | | | | | | | | | | | + 7.7% ap_content_length_filter (httpd)
| | | | | | | | | | | | | | + 7.3% ap_http_header_filter (httpd)
| | | | | | | | | | | | | | | + 2.5% basic_http_header (httpd)
| | | | | | | | | | | | | | | | - 0.6% ap_recent_rfc822_date (httpd)
| | | | | | | | | | | | | | | | - 0.5% form_header_field (httpd)
| | | | | | | | | | | | | | | | - 0.4% apr_brigade_writev (libaprutil-1.0.dylib)
| | | | | | | | | | | | | | | | - 0.4% cached_explode (httpd)
| | | | | | | | | | | | | | | | 0.2% __stub_getrealaddr (libaprutil-1.0.dylib) | | | | | | | | | | | | | | | | 0.2% __memcpy (commpage [libSystem.B.dylib])
| | | | | | | | | | | | | | | |   0.1% ap_get_server_version (httpd)
| | | | | | | | | | | | | | | |   0.1% strlen (libSystem.B.dylib)
| | | | | | | | | | | | | | | |   0.1% dyld_stub_apr_table_unset (httpd)
| | | | | | | | | | | | | | | + 2.0% ap_set_keepalive (httpd)
| | | | | | | | | | | | | | | | - 0.8% apr_psprintf (libapr-1.0.dylib)
| | | | | | | | | | | | | | | | - 0.5% ap_find_token (httpd)
| | | | | | | | | | | | | | | | - 0.2% apr_table_mergen (libapr-1.0.dylib)
| | | | | | | | | | | | | | | | - 0.2% apr_table_get (libapr-1.0.dylib)
| | | | | | | | | | | | | | | |   0.1% __divdi3 (httpd)
| | | | | | | | | | | | | | | + 1.2% ap_core_output_filter (httpd)
| | | | | | | | | | | | | | | | - 1.1% ap_save_brigade (httpd)
| | | | | | | | | | | | | | | - 0.2% basic_http_header_check (httpd)
| | | | | | | | | | | | | | | - 0.2% ap_http_header_filter (httpd)
| | | | | | | | | | | | | | |   0.2% strlen (libSystem.B.dylib)
| | | | | | | | | | | | | | | - 0.1% apr_table_do (libapr-1.0.dylib)
| | | | | | | | | | | | | | | - 0.1% apr_table_setn (libapr-1.0.dylib)
| | | | | | | | | | | | | | | - 0.1% apr_array_make (libapr-1.0.dylib)
| | | | | | | | | | | | | | |   0.1% dyld_stub_strlen (httpd)
| | | | | | | | | | | | | | |   0.1% ap_pass_brigade (httpd)
| | | | | | | | | | | | | | |   0.1% ap_make_content_type (httpd)
| | | | | | | | | | | | | | | - 0.1% apr_brigade_write (libaprutil-1.0.dylib)
| | | | | | | | | | | | | | |   0.1% dyld_stub_apr_table_do (httpd)
| | | | | | | | | | | | | | - 0.3% ap_set_content_length (httpd)
| | | | | | | | | | | | | - 0.1% ap_http_header_filter (httpd)
| | | | | | | | | | | | + 2.6% ap_set_last_modified (httpd)
| | | | | | | | | | | | | + 2.2% apr_rfc822_date (libapr-1.0.dylib)
| | | | | | | | | | | | | | + 1.4% apr_time_exp_tz (libapr-1.0.dylib)
| | | | | | | | | | | | | | | + 1.4% explode_time (libapr-1.0.dylib)
| | | | | | | | | | | | | | | | - 1.3% gmtime_r (libSystem.B.dylib)
| | | | | | | | | | | | | | | |   0.1% notify_check (libSystem.B.dylib)
| | | | | | | | | | | | | |   0.2% __divdi3 (libapr-1.0.dylib)
| | | | | | | | | | | | | |   0.2% __moddi3 (libapr-1.0.dylib)
| | | | | | | | | | | | | | - 0.1% explode_time (libapr-1.0.dylib)
| | | | | | | | | | | | | - 0.1% apr_time_exp_tz (libapr-1.0.dylib)
| | | | | | | | | | | | |   0.1% ap_rationalize_mtime (httpd)
| | | | | | | | | | | | + 1.5% ap_discard_request_body (httpd)
| | | | | | | | | | | | | + 0.5% ap_http_filter (httpd)
| | | | | | | | | | | | | |   0.1% apr_table_get (libapr-1.0.dylib)
| | | | | | | | | | | | | |   0.1% ap_get_limit_req_body (httpd)
| | | | | | | | | | | | | | - 0.1% apr_bucket_eos_create (libaprutil-1.0.dylib)
| | | | | | | | | | | | |   0.2% __stub_getrealaddr (libapr-1.0.dylib)
| | | | | | | | | | | | | - 0.1% apr_brigade_create (libaprutil-1.0.dylib)
| | | | | | | | | | | | |   0.1% apr_file_open (libapr-1.0.dylib)
| | | | | | | | | | | | |   0.1% apr_unix_perms2mode (libapr-1.0.dylib)
| | | | | | | | | | | | | - 0.1% apr_brigade_cleanup (libaprutil-1.0.dylib) | | | | | | | | | | | | | 0.1% apr_pool_cleanup_register (libapr-1.0.dylib)
| | | | | | | | | | | | |   0.1% apr_bucket_alloc (libaprutil-1.0.dylib)
| | | | | | | | | | | | + 0.9% ap_meets_conditions (httpd)
| | | | | | | | | | | | | - 0.3% apr_table_get (libapr-1.0.dylib)
| | | | | | | | | | | | |   0.2% __divdi3 (httpd)
| | | | | | | | | | | | | - 0.1% ap_meets_conditions (httpd)
| | | | | | | | | | | | + 0.7% apr_file_open (libapr-1.0.dylib)
| | | | | | | | | | | | | - 0.2% apr_pollset_create (libapr-1.0.dylib)
| | | | | | | | | | | | |   0.1% apr_palloc (libapr-1.0.dylib)
| | | | | | | | | | | | |   0.1% __stub_getrealaddr (libapr-1.0.dylib)
| | | | | | | | | | | | |   0.1% __memcpy (commpage [libSystem.B.dylib])
| | | | | | | | | | | |   0.6% ap_core_output_filter (httpd)
| | | | | | | | | | | |   0.5% ap_http_header_filter (httpd)
| | | | | | | | | | | | - 0.4% ap_set_etag (httpd)
| | | | | | | | | | | | - 0.4% ap_set_content_length (httpd)
| | | | | | | | | | | | - 0.2% apr_table_setn (libapr-1.0.dylib)
| | | | | | | | | | | |   0.2% ap_set_keepalive (httpd)
| | | | | | | | | | | |   0.2% ap_save_brigade (httpd)
| | | | | | | | | | | | - 0.2% default_handler (httpd)
| | | | | | | | | | | | - 0.1% apr_bucket_file_create (libaprutil-1.0.dylib)
| | | | | | | | | | | |   0.1% apr_brigade_write (libaprutil-1.0.dylib)
| | | | | | | | | | | | - 0.1% ap_http_filter (httpd)
| | | | | | | | | | | |   0.1% strcasecmp (libSystem.B.dylib)
| | | | | | | | | | | |   0.1% ap_content_length_filter (httpd)
| | | | | | | | | | | |   0.1% ap_pass_brigade (httpd)
| | | | | | | | | | | | - 0.1% apr_brigade_create (libaprutil-1.0.dylib)
| | | | | | | | | | | |   0.1% ap_allow_standard_methods (httpd)
| | | | | | | | | | | |   0.1% ap_update_mtime (httpd)
| | | | | | | | | | | |   0.1% basic_http_header_check (httpd)
| | | | | | | | | | | + 0.3% status_handler (httpd)
| | | | | | | | | | | |   0.1% getpid (libSystem.B.dylib)
| | | | | | | | | | | - 0.2% cgi_handler (httpd)
| | | | | | | | | | | - 0.2% asis_handler (httpd)
| | | | | | | | | | | - 0.1% handle_map_file (httpd)
| | | | | | | | | | |   0.1% action_handler (httpd)
| | | | | | | | | | | - 0.1% handle_autoindex (httpd)
| | | | | | | | | | | - 0.1% apr_table_setn (libapr-1.0.dylib)
| | | | | | | | | | - 0.2% ap_run_insert_filter (httpd)
| | | | | | | | | | - 0.2% ap_invoke_handler (httpd)
| | | | | | | | | | - 0.1% ap_run_fixups (httpd)
| | | | | | | | | + 15.5% ap_process_request_internal (httpd)
| | | | | | | | | | + 8.9% ap_run_map_to_storage (httpd)
| | | | | | | | | | | + 8.7% core_map_to_storage (httpd)
| | | | | | | | | | | | + 6.5% ap_directory_walk (httpd)
| | | | | | | | | | | | | + 2.6% ap_merge_per_dir_configs (httpd)
| | | | | | | | | | | | | | + 1.7% merge_core_dir_configs (httpd)
| | | | | | | | | | | | | | | - 0.4% apr_array_append (libapr-1.0.dylib)
| | | | | | | | | | | | | | | 0.2% __memcpy (commpage [libSystem.B.dylib])
| | | | | | | | | | | | | | |   0.1% dyld_stub_apr_array_append (httpd)
| | | | | | | | | | | | | - 0.6% ap_make_dirstr_parent (httpd)
| | | | | | | | | | | | | - 0.6% apr_stat (libapr-1.0.dylib)
| | | | | | | | | | | | | - 0.3% prep_walk_cache (httpd)
| | | | | | | | | | | | |   0.1% strlen (libSystem.B.dylib)
| | | | | | | | | | | | |   0.1% dyld_stub_memcpy (httpd)
| | | | | | | | | | | | | - 0.1% apr_filepath_merge (libapr-1.0.dylib)
| | | | | | | | | | | | |   0.1% strcmp (libSystem.B.dylib)
| | | | | | | | | | | | | - 0.1% apr_filepath_root (libapr-1.0.dylib)
| | | | | | | | | | | | |   0.1% core_opts_merge (httpd)
| | | | | | | | | | | | |   0.1% strchr (libSystem.B.dylib)
| | | | | | | | | | | | |   0.1% __memcpy (commpage [libSystem.B.dylib])
| | | | | | | | | | | | | - 0.1% ap_directory_walk (httpd)
| | | | | | | | | | | | |   0.1% dyld_stub_apr_filepath_root (httpd)
| | | | | | | | | | | | + 2.1% ap_file_walk (httpd)
| | | | | | | | | | | | | - 1.4% ap_regexec (httpd)
| | | | | | | | | | | | | - 0.1% prep_walk_cache (httpd)
| | | | | | | | | | | | |   0.1% strrchr (libSystem.B.dylib)
| | | | | | | | | | | | | - 0.1% ap_core_input_filter (httpd)
| | | | | | | | | | | | - 0.1% core_map_to_storage (httpd)
| | | | | | | | | | + 2.8% ap_run_type_checker (httpd)
| | | | | | | | | | | + 2.5% find_ct (httpd)
| | | | | | | | | | | | - 0.5% ap_str_tolower (httpd)
| | | | | | | | | | | | - 0.3% apr_hash_get (libapr-1.0.dylib)
| | | | | | | | | | | | - 0.2% apr_table_setn (libapr-1.0.dylib)
| | | | | | | | | | | | - 0.1% find_ct (httpd)
| | | | | | | | | | | | - 0.1% ap_set_content_type (httpd)
| | | | | | | | | | | | - 0.1% find_entry (libapr-1.0.dylib)
| | | | | | | | | | | | - 0.1% ap_getword (httpd)
| | | | | | | | | | | |   0.1% bcmp (libSystem.B.dylib)
| | | | | | | | | | | |   0.1% strrchr (libSystem.B.dylib)
| | | | | | | | | | |   0.1% ap_add_output_filters_by_type (httpd)
| | | | | | | | | | - 1.3% ap_run_translate_name (httpd)
| | | | | | | | | | - 0.8% ap_run_fixups (httpd)
| | | | | | | | | | - 0.5% ap_run_access_checker (httpd)
| | | | | | | | | |   0.3% ap_getparents (httpd)
| | | | | | | | | | - 0.2% ap_run_header_parser (httpd)
| | | | | | | | | |   0.1% ap_location_walk (httpd)
| | | | | | | | | | - 0.1% ap_unescape_url (httpd)
| | | | | | | | | | - 0.1% ap_some_auth_required (httpd)
| | | | | | | | | | - 0.1% ap_process_request_internal (httpd)
| | | | | | | | | |   0.1% ap_satisfies (httpd)
| | | | | | | | | + 4.8% ap_run_log_transaction (httpd)
| | | | | | | | | | + 4.6% multi_log_transaction (httpd)
| | | | | | | | | | | + 4.4% config_log_transaction (httpd)
| | | | | | | | | | | | + 1.6% log_request_time (httpd)
| | | | | | | | | | | | | - 0.7% cached_explode (httpd)
| | | | | | | | | | | | | - 0.3% apr_snprintf (libapr-1.0.dylib)
| | | | | | | | | | | | |   0.2% __divdi3 (httpd)
| | | | | | | | | | | | |   0.1% __memcpy (commpage [libSystem.B.dylib])
| | | | | | | | | | | | - 0.5% ap_default_log_writer (httpd)
| | | | | | | | | | | | - 0.3% ap_escape_logitem (httpd)
| | | | | | | | | | | |   0.2% strlen (libSystem.B.dylib)
| | | | | | | | | | | |   0.2% __moddi3 (libapr-1.0.dylib)
| | | | | | | | | | | |   0.2% __divdi3 (libapr-1.0.dylib)
| | | | | | | | | | | | - 0.2% log_remote_host (httpd)
| | | | | | | | | | | | - 0.1% apr_itoa (libapr-1.0.dylib)
| | | | | | | | | | | | - 0.1% apr_off_t_toa (libapr-1.0.dylib)
| | | | | | | | | | | | - 0.1% log_remote_logname (httpd)
| | | | | | | | | | | |   0.1% dyld_stub_apr_palloc (httpd)
| | | | | | | | | | | - 0.1% ap_net_time_filter (httpd)
| | | | | | | | | | - 0.1% ap_run_log_transaction (httpd)
| | | | | | | | | + 2.4% ap_core_output_filter (httpd)
| | | | | | | | | | - 0.4% apr_pool_clear (libapr-1.0.dylib)
| | | | | | | | | | - 0.3% apr_brigade_cleanup (libaprutil-1.0.dylib)
| | | | | | | | | | - 0.3% writev_it_all (httpd)
| | | | | | | | | |   0.2% apr_socket_send (libapr-1.0.dylib)
| | | | | | | | | | - 0.1% run_cleanups (libapr-1.0.dylib)
| | | | | | | | | |   0.1% apr_pool_cleanup_kill (libapr-1.0.dylib)
| | | | | | | | | | - 0.1% apr_file_read (libapr-1.0.dylib)
| | | | | | | | | | - 0.1% apr_file_seek (libapr-1.0.dylib)
| | | | | | | | | |   0.1% __stub_getrealaddr (libaprutil-1.0.dylib)
| | | | | | | | | |   0.1% dyld_stub_apr_file_seek (httpd)
| | | | | | | | | |   0.1% apr_brigade_destroy (libaprutil-1.0.dylib)
| | | | | | | | | | - 0.1% ap_core_output_filter (httpd)
| | | | | | | | | - 1.0% ap_http_filter (httpd)
| | | | | | | | | - 0.6% ap_finalize_request_protocol (httpd)
| | | | | | | | |   0.1% ap_core_input_filter (httpd)
| | | | | | | | |   0.1% ap_update_child_status_from_indexes (httpd)
| | | | | | | | |   0.1% ap_run_quick_handler (httpd)
| | | | | | | | |   0.1% ap_update_child_status (httpd)
| | | | | | | | |   0.1% apr_file_read (libapr-1.0.dylib)
| | | | | | | | |   0.1% writev_it_all (httpd)
| | | | | | | | | - 0.1% ap_process_request (httpd)
| | | | | | | | + 15.4% ap_read_request (httpd)
| | | | | | | | | + 4.1% ap_rgetline_core (httpd)
| | | | | | | | | | + 3.1% ap_core_input_filter (httpd)
| | | | | | | | | | | + 2.9% apr_brigade_split_line (libaprutil-1.0.dylib)
| | | | | | | | | | | | + 2.1% socket_bucket_read (libaprutil-1.0.dylib)
| | | | | | | | | | | | | - 0.5% apr_socket_recv (libapr-1.0.dylib)
| | | | | | | | | | | | |   0.2% apr_pollset_poll (libapr-1.0.dylib)
| | | | | | | | | | | | |   0.2% apr_pollset_remove (libapr-1.0.dylib)
| | | | | | | | | | | | |   0.2% apr_pollset_add (libapr-1.0.dylib)
| | | | | | | | | | | | |   0.1% __divdi3 (libapr-1.0.dylib)
| | | | | | | | | | | | |   0.1% apr_allocator_alloc (libapr-1.0.dylib)
| | | | | | | | | | | | | 0.1% apr_wait_for_io_or_timeout (libapr-1.0.dylib) | | | | | | | | | | | | | 0.1% __stub_getrealaddr (libaprutil-1.0.dylib) | | | | | | | | | | | | | - 0.1% apr_bucket_heap_make (libaprutil-1.0.dylib)
| | | | | | | | | | | | |   0.1% __moddi3 (libapr-1.0.dylib)
| | | | | | | | | | | | | - 0.1% cthread_set_errno_self (libSystem.B.dylib)
| | | | | | | | | | | | |   0.1% kevent (libSystem.B.dylib)
| | | | | | | | | | | | | - 0.1% apr_bucket_socket_create (libaprutil-1.0.dylib) | | | | | | | | | | | | + 0.2% apr_bucket_shared_split (libaprutil-1.0.dylib)
| | | | | | | | | | | | |   0.1% __memcpy (commpage [libSystem.B.dylib])
| | | | | | | | | | | | | - 0.1% apr_bucket_simple_split (libaprutil-1.0.dylib)
| | | | | | | | | | | |   0.1% memchr (libSystem.B.dylib)
| | | | | | | | | | | | - 0.1% cerror (libSystem.B.dylib)
| | | | | | | | | | | | 0.1% apr_bucket_simple_split (libaprutil-1.0.dylib)
| | | | | | | | | | | |   0.1% apr_socket_recv (libapr-1.0.dylib)
| | | | | | | | | | - 0.3% ap_net_time_filter (httpd)
| | | | | | | | | |   0.1% apr_brigade_split_line (libaprutil-1.0.dylib)
| | | | | | | | | |   0.1% ap_get_brigade (httpd)
| | | | | | | | | + 4.0% ap_get_mime_headers_core (httpd)
| | | | | | | | | | + 1.7% ap_rgetline_core (httpd)
| | | | | | | | | | | - 0.7% ap_core_input_filter (httpd)
| | | | | | | | | | | - 0.2% apr_brigade_cleanup (libaprutil-1.0.dylib)
| | | | | | | | | | | - 0.1% ap_net_time_filter (httpd)
| | | | | | | | | | | - 0.1% apr_brigade_split_line (libaprutil-1.0.dylib)
| | | | | | | | | | |   0.1% ap_get_brigade (httpd)
| | | | | | | | | | |   0.1% apr_palloc (libapr-1.0.dylib)
| | | | | | | | | | |   0.1% __memcpy (commpage [libSystem.B.dylib])
| | | | | | | | | | - 1.0% apr_table_compress (libapr-1.0.dylib)
| | | | | | | | | | - 0.2% apr_table_addn (libapr-1.0.dylib)
| | | | | | | | | | - 0.1% ap_get_mime_headers_core (httpd)
| | | | | | | | | |   0.1% strcasecmp (libSystem.B.dylib)
| | | | | | | | | |   0.1% strchr (libSystem.B.dylib)
| | | | | | | | | |   0.1% table_reindex (libapr-1.0.dylib)
| | | | | | | | | |   0.1% ap_core_input_filter (httpd)
| | | | | | | | | |   0.1% dyld_stub_strchr (httpd)
| | | | | | | | | + 1.6% ap_update_vhost_from_headers (httpd)
| | | | | | | | | | + 0.6% apr_parse_addr_port (libapr-1.0.dylib)
| | | | | | | | | | |   0.3% strtol_l (libSystem.B.dylib)
| | | | | | | | | | |   0.1% __stub_getrealaddr (libapr-1.0.dylib)
| | | | | | | | | | - 0.2% ap_update_vhost_from_headers (httpd)
| | | | | | | | | | - 0.1% apr_table_get (libapr-1.0.dylib)
| | | | | | | | | |   0.1% atoi (libSystem.B.dylib)
| | | | | | | | | |   0.1% strtol_l (libSystem.B.dylib)
| | | | | | | | | | - 0.1% apr_itoa (libapr-1.0.dylib)
| | | | | | | | | |   0.1% dyld_stub_strtol_l (libSystem.B.dylib)
| | | | | | | | | + 1.1% ap_run_create_request (httpd)
| | | | | | | | | | + 0.6% core_create_req (httpd)
| | | | | | | | | | | - 0.2% apr_brigade_create (libaprutil-1.0.dylib)
| | | | | | | | | | | - 0.1% add_any_filter_handle (httpd)
| | | | | | | | | | - 0.3% http_create_request (httpd)
| | | | | | | | | - 0.8% ap_parse_uri (httpd)
| | | | | | | | | - 0.4% create_empty_config (httpd)
| | | | | | | | | - 0.3% apr_pool_create_ex (libapr-1.0.dylib)
| | | | | | | | | - 0.3% ap_run_post_read_request (httpd)
| | | | | | | | | - 0.3% ap_make_method_list (httpd)
| | | | | | | | | - 0.3% apr_time_now (libapr-1.0.dylib)
| | | | | | | | | - 0.2% ap_getword_white (httpd)
| | | | | | | | | - 0.2% apr_table_make (libapr-1.0.dylib)
| | | | | | | | | - 0.1% ap_read_request (httpd)
| | | | | | | | | - 0.1% apr_table_get (libapr-1.0.dylib)
| | | | | | | | |   0.1% __bzero (commpage [libSystem.B.dylib])
| | | | | | | | | - 0.1% add_any_filter_handle (httpd)
| | | | | | | | |   0.1% dyld_stub_apr_table_get (httpd)
| | | | | | | | |   0.1% ap_core_input_filter (httpd)
| | | | | | | | |   0.1% dyld_stub_apr_table_make (httpd)
| | | | | | | | |   0.1% apr_palloc (libapr-1.0.dylib)
| | | | | | | | |   0.1% ap_method_number_of (httpd)
| | | | | | | | - 0.5% apr_pool_destroy (libapr-1.0.dylib)
| | | | | | | | - 0.1% ap_process_http_connection (httpd)
| | | | | | | |   0.1% ap_update_child_status_from_indexes (httpd)
| | | | | | | |   0.1% ap_update_child_status (httpd)
| | | | | | + 0.7% ap_run_create_connection (httpd)
| | | | | | | + 0.6% core_create_conn (httpd)
| | | | | | | | - 0.3% apr_sockaddr_ip_get (libapr-1.0.dylib)
| | | | | | | | - 0.1% create_empty_config (httpd)
| | | | | | - 0.2% unixd_accept (httpd)
| | | | | | - 0.2% ap_process_connection (httpd)
| | | | | |   0.1% ap_process_http_connection (httpd)
| | | | | | - 0.1% ap_lingering_close (httpd)

Reply via email to