httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Ian Holsman <i...@apache.org>
Subject Re: 2.0 performance Re: Breaking something? Now is the time?
Date Fri, 28 Jun 2002 20:57:26 GMT
we might be able to remove the 'vary' processing that mod_cache does
by changing the keygeneration function to add the contents of the vary 
request header as part of the key.
(and then switching this version on with a directive)

Bill Stoddard wrote:
>>Bill Stoddard wrote:
>>
>>
>>>Yes, please, we need some performance measurements.  I've been doing some
>>>profiling of Apache 2.0 on AIX and even with mod_mem_cache, we
>>
>>still serve
>>
>>>static files with keep-alive at about half the rate of iPlanet. The sad
>>>thing is I don't see any single smoking guns. Just lots of little stuff
>>>everywhere.
>>>
>>>
>>
>>Indeed, all the big problems have been fixed, and what remains is a long
>>list of small things to optimize.  My list includes:
>>
>>  * the buffering of keepalive responses < 8KB (which turns sendfile
>>    operations into mmap+memcpy)
>>  * lots of string operations in directory_walk/location_walk/file_walk
>>  * the code that creates and destroys a temporary brigade for each line
>>    in order to read the request header
>>  * our memory usage is a bit higher than it probably should be
>>  * regex comparisons in file_walk and mod_setenvif
>>  * mod_mime's find_ct() does too much string manipulation
>>  * apr_table_get (even with all the optimizations that we've
>>already done)
>>
>>Do you have additional things that you've found in your profiling?
>>
>>Thanks,
>>--Brian
> 
> 
> mod_mem_cache bypasses most all of those things. Using mod_mem_cache to
> cache a buffer in heap (contents of a 500 byte file).  I have even hack the
> code slightly to turn off the pipelined request optimization. I am playing
> with a new tool so I don't fully grok the output just yet but here is what I
> see serving a single keep alive request out of mod_mem_cache.
> 
> All modules are DSOs (and the link overhead shows this). The divisions are
> real killers (at least on this machine). Suggests that we need a call,
> apr_time_now_sec() to fetch the time with seconds resolution (configurable).
> Now we do multiplications to convert to uS then do divisions to convert back
> to seconds in a number of routines. The time spent in ap_brigade_puts is
> suprising...  This particular run indicate that it tool 74355 instructions
> to serve a keep alive request. This profile is taken on unmodified Apache
> 2.0 code. Well almost... the avoid_xlc_bug is a hack to get around a bug in
> the xlc optimizer.  I'll gladly post the hack to the list if you want to see
> it. The density of RING macros in the core_input_filter f*cks up the xlc
> optimizer...
> 
> Space                      %    Ticks
> =====                     ====  =====
> User                      15.2  11300
> Shared Library            56.5  42028
> Kernel                    28.3  21027
> 
> Total                           74355 (Footprint = 84.523 KB)
> 
> Pid   Process Name         %    Ticks
> ===== ============        ====  =====
> 23454 httpd              100.0  74355
> 
> Tid   Process Name         %    Ticks
> ===== ============        ====  =====
> 49159 httpd              100.0  74355
> 
> 
> ./httpd :
> 
> Subroutine Name          Source File                  Visit Enter  %   Ticks
> ===============          ===========                  ===== ===== ==== =====
> .core_input_filter       core.c                       51    11     1.6 1165
> .ap_rgetline_core        protocol.c                   66    6      1.4 1061
> .net_time_filter         core.c                       36    12     0.8 615
> .core_output_filter      core.c                       17    3      0.7 520
> .add_any_filter_handle   util_filter.c                12    6      0.6 478
> ._ptrgl                  ptrgl.s                      74    74     0.6 444
> .form_header_field       http_protocol.c              50    10     0.5 390
> .ap_get_brigade          util_filter.c                50    25     0.4 325
> .fix_hostname            vhost.c                      2     1      0.3 259
> .add_any_filter          util_filter.c                1     1      0.3 257
> .ap_getword_white        util.c                       28    2      0.3 254
> .ap_find_token           util.c                       5     3      0.3 229
> .ap_get_mime_headers     protocol.c                   16    1      0.3 228
> ._moveeq                 moveeq.s                     14    14     0.3 217
> .pcre_exec               pcre.c                       4     1      0.3 209
> .ap_recent_rfc822_date   util_time.c                  15    1      0.3 190
> .match                   pcre.c                       1     1      0.2 181
> .ap_pass_brigade         util_filter.c                14    7      0.2 169
> .ap_set_keepalive        http_protocol.c              12    1      0.2 152
> .apr_brigade_write       glink.s                      25    25     0.2 150
> .ap_content_length_filter protocol.c                   6     1      0.2 145
> .ap_read_request         protocol.c                   18    1      0.2 132
> .ap_http_header_filter   http_protocol.c              15    1      0.2 132
> .apr_palloc              glink.s                      22    22     0.2 132
> .isspace                 glink.s                      22    22     0.2 132
> .read_request_line       protocol.c                   11    1      0.2 121
> .log_error_core          log.c                        4     4      0.2 120
> .apr_brigade_puts        glink.s                      20    20     0.2 120
> .apr_table_get           glink.s                      19    19     0.2 114
> .apr_brigade_create      glink.s                      17    17     0.1 102
> .ap_http_filter          http_protocol.c              8     2      0.1 99
> .ap_log_error            log.c                        8     4      0.1 88
> .basic_http_header       http_protocol.c              13    1      0.1 84
> .ap_update_child_status_from_indexes scoreboard.c                 2     2
> 0.1 80
> .ap_make_content_type    protocol.c                   7     1      0.1 78
> .apr_brigade_destroy     glink.s                      12    12     0.1 72
> .ap_save_brigade         util_filter.c                3     1      0.1 70
> .ap_discard_request_body http_protocol.c              4     1      0.1 68
> .ap_meets_conditions     http_protocol.c              8     1      0.1 67
> .apr_setsocketopt        glink.s                      11    11     0.1 66
> .cached_explode          util_time.c                  5     1      0.1 65
> .regexec                 pcreposix.c                  3     1      0.1 60
> .core_create_req         core.c                       5     1      0.1 58
> .ap_get_remote_host      core.c                       1     1      0.1 56
> .remove_any_filter       util_filter.c                3     3      0.1 48
> .strlen                  glink.s                      8     8      0.1 48
> .check_pipeline_flush    http_request.c               5     1      0.1 45
> .writev_it_all           core.c                       2     1      0.1 45
> .ap_run_create_request   request.c                    3     1      0.1 45
> .avoid_xlc_bug           core.c                       11    11     0.1 44
> .ap_parse_uri            protocol.c                   3     1      0.1 44
> .basic_http_header_check http_protocol.c              3     1      0.1 41
> .ap_run_insert_filter    request.c                    3     1      0.1 38
> .http_create_request     http_core.c                  4     1      0.1 38
> .ap_process_http_connection http_core.c                  5     0      0.1 38
> .terminate_header        http_protocol.c              4     1      0.1 38
> .apr_table_make          glink.s                      6     6      0.0 36
> .apr_brigade_split_line  glink.s                      6     6      0.0 36
> .ap_run_post_read_request protocol.c                   2     1      0.0 34
> .ap_run_log_transaction  protocol.c                   2     1      0.0 33
> .core_insert_filter      core.c                       1     1      0.0 32
> .ap_set_byterange        http_protocol.c              3     1      0.0 32
> .ap_update_vhost_from_headers vhost.c                      3     1      0.0
> 31
> .fixup_vary              http_protocol.c              3     1      0.0 30
> .apr_brigade_length      glink.s                      5     5      0.0 30
> .ap_remove_output_filter util_filter.c                3     3      0.0 30
> .ap_byterange_filter     http_protocol.c              4     1      0.0 29
> .ap_run_quick_handler    config.c                     2     1      0.0 28
> .lookup_builtin_method   http_protocol.c              1     1      0.0 27
> .ap_process_request      http_request.c               5     1      0.0 27
> .ap_make_method_list     http_protocol.c              3     1      0.0 25
> .apr_brigade_split       glink.s                      4     4      0.0 24
> .apr_table_addn          glink.s                      4     4      0.0 24
> .memset                  glink.s                      4     4      0.0 24
> .strchr                  glink.s                      4     4      0.0 24
> .__divi64                glink.s                      4     4      0.0 24
> .apr_brigade_partition   glink.s                      4     4      0.0 24
> .ap_add_output_filters_by_type core.c                       1     1      0.0
> 23
> .create_empty_config     config.c                     3     1      0.0 21
> .ap_set_content_type     http_protocol.c              2     1      0.0 21
> .ap_method_number_of     http_protocol.c              3     1      0.0 20
> .ap_get_remote_logname   core.c                       1     1      0.0 20
> .ap_set_content_length   protocol.c                   3     1      0.0 20
> .ap_index_of_response    http_protocol.c              1     1      0.0 19
> .ap_finalize_request_protocol protocol.c                   2     1      0.0
> 19
> .ap_add_output_filter_handle util_filter.c                3     3      0.0
> 18
> .apr_table_setn          glink.s                      3     3      0.0 18
> .ap_update_child_status  scoreboard.c                 2     2      0.0 14
> .strncasecmp             glink.s                      2     2      0.0 12
> .apr_table_unset         glink.s                      2     2      0.0 12
> .apr_pstrcatv            glink.s                      2     2      0.0 12
> .apr_array_make          glink.s                      2     2      0.0 12
> .isdigit                 glink.s                      2     2      0.0 12
> .ap_add_input_filter_handle util_filter.c                2     2      0.0 12
> .apr_time_now            glink.s                      2     2      0.0 12
> .apr_table_do            glink.s                      2     2      0.0 12
> .ap_regexec              util.c                       2     1      0.0 9
> .ap_add_output_filter    util_filter.c                1     1      0.0 8
> .ap_get_limit_req_body   core.c                       1     1      0.0 7
> .apr_psprintf            glink.s                      1     1      0.0 6
> .apr_uri_parse           glink.s                      1     1      0.0 6
> .apr_table_mergen        glink.s                      1     1      0.0 6
> .apr_pstrmemdup          glink.s                      1     1      0.0 6
> .apr_bucket_eos_create   glink.s                      1     1      0.0 6
> .apr_table_overlap       glink.s                      1     1      0.0 6
> .apr_brigade_cleanup     glink.s                      1     1      0.0 6
> .apr_bucket_flush_create glink.s                      1     1      0.0 6
> .apr_parse_addr_port     glink.s                      1     1      0.0 6
> .apr_pool_create_ex      glink.s                      1     1      0.0 6
> .apr_pstrdup             glink.s                      1     1      0.0 6
> .apr_pool_destroy        glink.s                      1     1      0.0 6
> .apr_sendv               glink.s                      1     1      0.0 6
> .apr_off_t_toa           glink.s                      1     1      0.0 6
> .ap_get_server_version   core.c                       1     1      0.0 5
> .ap_explode_recent_gmt   util_time.c                  1     1      0.0 4
> .ap_graceful_stop_signalled worker.c                     1     1      0.0 3
> .ap_create_request_config config.c                     1     1      0.0 1
> 
> Shlib Subroutine         Source File                  Visit Enter  %   Ticks
> ================         ===========                  ===== ===== ==== =====
> .apr_brigade_puts        apr_brigade.c                20    20     4.4 3259
> .__divu64                divu64.s                     9     9      4.0 3006
> .apr_palloc              apr_pools.c                  120   120    2.9 2160
> .apr_table_get           apr_tables.c                 33    28     2.9 2145
> .__divi64                divi64.s                     5     5      1.9 1413
> .apr_brigade_write       apr_brigade.c                54    25     1.7 1262
> .strlen                  strlen.s                     35    35     1.7 1260
> .apr_table_setn          apr_tables.c                 27    13     1.4 1025
> .__is_wctype_std         libc/__is_wctype_std.c       49    49     1.3 980
> .strcasecmp              libaixinet/strcasecmp.c      10    10     1.1 829
> .memset                  memset.s                     11    11     1.1 805
> .apr_setsocketopt        sockopt.c                    13    13     1.0 779
> ._moveeq                 moveeq.s                     26    25     1.0 768
> .memchr                  libc/memchr.c                11    11     1.0 718
> .apr_bucket_alloc        apr_buckets_alloc.c          34    30     0.9 664
> .apr_vformatter          apr_snprintf.c               8     2      0.9 663
> .apr_brigade_cleanup     apr_brigade.c                59    19     0.8 632
> .apr_brigade_create      apr_brigade.c                66    22     0.8 594
> .apr_pool_cleanup_register apr_pools.c                  50    25     0.8 575
> .apr_brigade_split_line  apr_brigade.c                32    6      0.7 534
> .config_log_transaction  mod_log_config.c             47    1      0.7 525
> .apr_array_push_noclear  apr_tables.c                 24    22     0.7 502
> .isspace                 libc/isspace.c               46    23     0.6 460
> .apr_bucket_free         apr_buckets_alloc.c          34    30     0.5 402
> .isupper                 libc/isupper.c               40    20     0.5 400
> ._ptrgl                  ptrgl.s                      64    64     0.5 384
> .make_array_core         apr_tables.c                 28    13     0.5 362
> .process_item            mod_log_config.c             28    14     0.5 350
> .tolower                 libc/tolower.c               40    20     0.5 340
> .apr_table_unset         apr_tables.c                 3     2      0.5 339
> .apr_table_vdo           apr_tables.c                 10    2      0.4 322
> ._ptrgl                  ptrgl.s                      53    53     0.4 318
> .apr_bucket_simple_split apr_buckets_simple.c         20    10     0.4 310
> .heap_bucket_read        apr_buckets_heap.c           31    31     0.4 279
> .apr_palloc              glink.s                      45    45     0.4 270
> .apr_bucket_simple_copy  apr_buckets_simple.c         28    14     0.4 266
> ._moveeq                 moveeq.s                     18    18     0.4 264
> .allocator_alloc         apr_pools.c                  5     5      0.4 263
> .strchr                  strchr.s                     5     5      0.4 263
> .heap_bucket_destroy     apr_buckets_heap.c           40    17     0.3 259
> .match_headers           mod_setenvif.c               10    1      0.3 247
> .match_boyer_moore_horspool apr_strmatch.c               6     6      0.3
> 233
> .allocator_free          apr_pools.c                  5     5      0.3 229
> .apr_pool_cleanup_kill   apr_pools.c                  14    14     0.3 217
> .strncasecmp             libaixinet/strcasecmp.c      3     3      0.3 216
> .match_boyer_moore_horspool_nocase apr_strmatch.c               23    3
> 0.3 212
> .apr_table_overlap       apr_tables.c                 13    1      0.3 205
> .apr_brigade_destroy     apr_brigade.c                36    12     0.3 204
> .conv_10                 apr_snprintf.c               17    3      0.3 193
> .apr_table_make          apr_tables.c                 30    10     0.3 190
> .apr_brigade_length      apr_brigade.c                5     5      0.3 190
> .apr_bucket_shared_split apr_buckets_refcount.c       20    10     0.2 180
> .apr_bucket_alloc        glink.s                      30    30     0.2 180
> .pthread_mutex_lock      libpthreads/mutex.c          6     3      0.2 177
> .apr_pstrdup             apr_strings.c                25    7      0.2 168
> .time_base_to_time       libc/POWER/time_base_to_time.c 12    3      0.2 168
> .overlap_hash            apr_tables.c                 4     4      0.2 168
> .cache_url_handler       mod_cache.c                  19    1      0.2 165
> ._moveeq                 moveeq.s                     15    15     0.2 157
> .apr_table_addn          apr_tables.c                 8     4      0.2 156
> .apr_pstrcatv            apr_strings.c                11    2      0.2 154
> .unserialize_table       mod_mem_cache.c              14    4      0.2 151
> .apr_brigade_partition   apr_brigade.c                8     4      0.2 144
> .find_entry              cache_hash.c                 3     1      0.2 140
> .apr_pool_cleanup_register glink.s                      23    23     0.2 138
> .ap_cache_check_freshness cache_util.c                 8     1      0.2 134
> .apr_palloc              glink.s                      22    22     0.2 132
> .apr_off_t_toa           apr_strings.c                10    2      0.2 128
> .gettimeofday            libc/gettimeofday.c          12    3      0.2 126
> .apr_brigade_split       apr_brigade.c                8     4      0.2 120
> .pthread_mutex_unlock    libpthreads/mutex.c          6     3      0.2 120
> .apr_uri_parse           apr_uri.c                    3     1      0.2 120
> .tolower                 glink.s                      20    20     0.2 120
> .socket_bucket_read      apr_buckets_socket.c         12    2      0.2 118
> .apr_bucket_shared_destroy glink.s                      19    19     0.2 114
> .apr_bucket_shared_destroy apr_buckets_refcount.c       19    19     0.2 114
> .apr_table_mergen        apr_tables.c                 2     1      0.1 111
> .apr_table_set           apr_tables.c                 4     1      0.1 109
> .apr_pvsprintf           apr_pools.c                  4     2      0.1 98
> .apr_bucket_heap_make    apr_buckets_heap.c           9     3      0.1 96
> ._ptrgl                  ptrgl.s                      16    16     0.1 96
> .apr_recv                sendrecv.c                   7     2      0.1 95
> .strlen                  glink.s                      14    14     0.1 84
> .open_entity             mod_mem_cache.c              9     1      0.1 84
> .read_real_time          read_real_time.s             3     3      0.1 84
> ._ptrgl                  ptrgl.s                      14    14     0.1 84
> .apr_pool_cleanup_kill   glink.s                      13    13     0.1 78
> .apr_time_now            time.c                       9     3      0.1 75
> .cache_select_url        cache_storage.c              8     1      0.1 73
> .read                    libc/read.c                  5     2      0.1 70
> .apr_pool_create_ex      apr_pools.c                  3     1      0.1 67
> .apr_bucket_shared_copy  apr_buckets_refcount.c       8     4      0.1 64
> .apr_itoa                apr_strings.c                5     1      0.1 64
> .run_cleanups            apr_pools.c                  8     1      0.1 62
> .apr_mmap_create         mmap.c                       5     1      0.1 62
> .apr_parse_addr_port     sockaddr.c                   5     1      0.1 61
> .memchr                  glink.s                      10    10     0.1 60
> .apr_table_setn          glink.s                      10    10     0.1 60
> .islower                 libc/islower.c               6     3      0.1 60
> .apr_bucket_simple_split glink.s                      10    10     0.1 60
> .isdigit                 libc/isdigit.c               6     3      0.1 60
> .read_headers            mod_mem_cache.c              11    1      0.1 60
> .ap_cache_get_cachetype  cache_util.c                 3     1      0.1 57
> ._Errno                  libc/errno.c                 6     3      0.1 57
> .apr_pool_destroy        apr_pools.c                  7     1      0.1 53
> .apr_bucket_heap_create  apr_buckets_heap.c           6     2      0.1 52
> .cache_out_filter        mod_cache.c                  6     1      0.1 50
> .strcasecmp              glink.s                      8     8      0.1 48
> .apr_table_get           glink.s                      8     8      0.1 48
> .log_request_time        mod_log_config.c             4     1      0.1 48
> .apr_thread_mutex_unlock thread_mutex.c               6     3      0.1 48
> .__pthread_geterrno_addr libpthreads/lib_lock.c       4     4      0.1 48
> .apr_thread_mutex_lock   thread_mutex.c               6     3      0.1 48
> .read_body               mod_mem_cache.c              4     1      0.1 47
> .apr_pstrmemdup          apr_strings.c                6     2      0.1 46
> .apr_sendv               sendrecv.c                   2     1      0.1 46
> .ap_cache_tokstr         cache_util.c                 5     1      0.1 45
> .strlen                  glink.s                      7     7      0.1 42
> .ap_cache_liststr        cache_util.c                 4     2      0.1 42
> .apr_array_make          apr_tables.c                 6     2      0.1 40
> .apr_bucket_eos_create   apr_buckets_eos.c            6     2      0.1 40
> .file_make_mmap          apr_buckets_file.c           4     1      0.1 39
> .spin_unlock_global_ppc_up locks_ppc_up.s               3     3      0.1 39
> .ap_cache_current_age    cache_util.c                 2     1      0.1 38
> .multi_log_transaction   mod_log_config.c             2     1      0.0 37
> .apr_table_do            apr_tables.c                 4     2      0.0 36
> .memcmp                  memcmp.s                     1     1      0.0 36
> .apr_psprintf            apr_pools.c                  4     2      0.0 36
> ._ptrgl                  ptrgl.s                      6     6      0.0 36
> .apr_bucket_mmap_make    apr_buckets_mmap.c           4     1      0.0 36
> .apr_bucket_free         glink.s                      6     6      0.0 36
> .apr_os_file_put         open.c                       3     1      0.0 35
> .spin_lock_global_ppc_up locks_ppc_up.s               3     3      0.0 33
> .file_bucket_read        apr_buckets_file.c           3     1      0.0 33
> .cache_run_open_entity   cache_storage.c              2     1      0.0 32
> .apr_file_write          readwrite.c                  2     1      0.0 32
> .apr_pstrndup            apr_strings.c                4     1      0.0 31
> .cache_update            cache_cache.c                5     1      0.0 31
> .mmap_bucket_destroy     apr_buckets_mmap.c           5     1      0.0 31
> .apr_atomic_dec          apr_atomic.c                 4     1      0.0 31
> .memset                  glink.s                      5     5      0.0 30
> .apr_bucket_file_make    apr_buckets_file.c           3     1      0.0 30
> .strlen                  glink.s                      5     5      0.0 30
> .apr_bucket_shared_make  apr_buckets_refcount.c       5     5      0.0 30
> .apr_bucket_shared_make  glink.s                      5     5      0.0 30
> .apr_atomic_inc          apr_atomic.c                 4     1      0.0 29
> .apr_bucket_file_create  apr_buckets_file.c           3     1      0.0 28
> .memcache_gdsf_algorithm mod_mem_cache.c              3     2      0.0 28
> .write                   libc/write.c                 2     1      0.0 27
> .mmap_bucket_read        apr_buckets_mmap.c           2     1      0.0 27
> .decrement_refcount      mod_mem_cache.c              2     1      0.0 26
> .ap_headers_insert_output_filter mod_headers.c                1     1
> 0.0 25
> .mmap_cleanup            mmap.c                       2     1      0.0 25
> .apr_palloc              glink.s                      4     4      0.0 24
> .ap_log_error            glink.s                      4     4      0.0 24
> ._ptrgl                  ptrgl.s                      4     4      0.0 24
> .apr_allocator_alloc     glink.s                      4     4      0.0 24
> .apr_bucket_simple_copy  glink.s                      4     4      0.0 24
> .apr_table_make          glink.s                      4     4      0.0 24
> ._ptrgl                  ptrgl.s                      4     4      0.0 24
> .apr_allocator_free      glink.s                      4     4      0.0 24
> .cache_read_entity_headers cache_storage.c              3     1      0.0 22
> .cache_pq_change_priority cache_pqueue.c               3     1      0.0 21
> .apr_bucket_socket_create apr_buckets_socket.c         3     1      0.0 21
> .writev                  libc/write.c                 2     1      0.0 20
> .apr_bucket_flush_create apr_buckets_flush.c          3     1      0.0 20
> .pthread_mutex_lock      glink.s                      3     3      0.0 18
> .islower                 glink.s                      3     3      0.0 18
> .gettimeofday            glink.s                      3     3      0.0 18
> ._Errno                  glink.s                      3     3      0.0 18
> .pthread_mutex_unlock    glink.s                      3     3      0.0 18
> .apr_pstrdup             glink.s                      3     3      0.0 18
> .cache_generate_key_default cache_storage.c              2     1      0.0 17
> .cache_pq_percolate_down cache_pqueue.c               2     1      0.0 17
> .minchild                cache_pqueue.c               1     1      0.0 17
> .log_request_line        mod_log_config.c             1     1      0.0 16
> .file_bucket_destroy     apr_buckets_file.c           3     1      0.0 15
> .log_remote_user         mod_log_config.c             1     1      0.0 15
> .clf_log_bytes_sent      mod_log_config.c             2     1      0.0 15
> .apr_bucket_eos_make     apr_buckets_eos.c            2     2      0.0 14
> .cache_hash_get          cache_hash.c                 2     1      0.0 14
> .log_remote_host         mod_log_config.c             2     1      0.0 14
> .free_proc_chain         apr_pools.c                  1     1      0.0 14
> .constant_item           mod_log_config.c             7     7      0.0 14
> .apr_mmap_delete         mmap.c                       2     1      0.0 13
> .cache_find              cache_cache.c                2     1      0.0 13
> .apr_thread_mutex_lock   glink.s                      2     2      0.0 12
> .apr_thread_mutex_unlock glink.s                      2     2      0.0 12
> .apr_pstrdup             glink.s                      2     2      0.0 12
> .apr_vformatter          glink.s                      2     2      0.0 12
> .kread                   glink.s                      2     2      0.0 12
> .read                    glink.s                      2     2      0.0 12
> .ap_cache_liststr        glink.s                      2     2      0.0 12
> .apr_setsocketopt        glink.s                      2     2      0.0 12
> .apr_palloc              glink.s                      2     2      0.0 12
> .apr_pool_cleanup_run    apr_pools.c                  3     1      0.0 12
> .apr_bucket_heap_create  glink.s                      2     2      0.0 12
> .strcasecmp              glink.s                      2     2      0.0 12
> .ap_pass_brigade         glink.s                      2     2      0.0 12
> .apr_recv                glink.s                      2     2      0.0 12
> .apr_mmap_offset         common.c                     1     1      0.0 10
> .cache_read_entity_body  cache_storage.c              2     1      0.0 10
> .format_integer          mod_log_config.c             2     1      0.0 9
> .log_remote_logname      mod_log_config.c             2     1      0.0 9
> .memcache_inc_frequency  mod_mem_cache.c              1     1      0.0 7
> .apr_bucket_flush_make   apr_buckets_flush.c          1     1      0.0 7
> .apr_bucket_socket_make  apr_buckets_socket.c         1     1      0.0 7
> .cache_find              glink.s                      1     1      0.0 6
> .ap_set_content_type     glink.s                      1     1      0.0 6
> .apr_pstrdup             glink.s                      1     1      0.0 6
> .apr_bucket_eos_create   glink.s                      1     1      0.0 6
> .apr_bucket_file_create  glink.s                      1     1      0.0 6
> .apr_os_file_put         glink.s                      1     1      0.0 6
> .apr_atomic_dec          glink.s                      1     1      0.0 6
> .apr_thread_mutex_unlock glink.s                      1     1      0.0 6
> .apr_atomic_inc          glink.s                      1     1      0.0 6
> .apr_thread_mutex_lock   glink.s                      1     1      0.0 6
> .apr_pool_cleanup_register glink.s                      1     1      0.0 6
> .memcmp                  glink.s                      1     1      0.0 6
> .ap_cache_tokstr         glink.s                      1     1      0.0 6
> .ap_cache_check_freshness glink.s                      1     1      0.0 6
> .cache_select_url        glink.s                      1     1      0.0 6
> .ap_cache_get_cachetype  glink.s                      1     1      0.0 6
> .cache_read_entity_body  glink.s                      1     1      0.0 6
> .apr_brigade_create      glink.s                      1     1      0.0 6
> .ap_run_insert_filter    glink.s                      1     1      0.0 6
> .ap_meets_conditions     glink.s                      1     1      0.0 6
> .ap_add_output_filter    glink.s                      1     1      0.0 6
> .apr_time_now            glink.s                      1     1      0.0 6
> .apr_table_set           glink.s                      1     1      0.0 6
> .apr_psprintf            glink.s                      1     1      0.0 6
> .strncasecmp             glink.s                      1     1      0.0 6
> .apr_pstrndup            glink.s                      1     1      0.0 6
> .isspace                 glink.s                      1     1      0.0 6
> .strchr                  glink.s                      1     1      0.0 6
> .ap_remove_output_filter glink.s                      1     1      0.0 6
> .memset                  glink.s                      1     1      0.0 6
> .mmap                    glink.s                      1     1      0.0 6
> .munmap                  glink.s                      1     1      0.0 6
> .apr_getsocketopt        sockopt.c                    1     1      0.0 6
> .apr_pool_cleanup_register glink.s                      1     1      0.0 6
> .apr_pool_cleanup_run    glink.s                      1     1      0.0 6
> .kwrite                  glink.s                      1     1      0.0 6
> .kwritev                 glink.s                      1     1      0.0 6
> .apr_pstrmemdup          glink.s                      1     1      0.0 6
> .memset                  glink.s                      1     1      0.0 6
> .brigade_cleanup         apr_brigade.c                6     6      0.0 6
> .isdigit                 glink.s                      1     1      0.0 6
> .apr_getsocketopt        glink.s                      1     1      0.0 6
> .apr_bucket_mmap_make    glink.s                      1     1      0.0 6
> .apr_bucket_heap_make    glink.s                      1     1      0.0 6
> .apr_mmap_offset         glink.s                      1     1      0.0 6
> .apr_mmap_delete         glink.s                      1     1      0.0 6
> .apr_file_write          glink.s                      1     1      0.0 6
> .__divi64                glink.s                      1     1      0.0 6
> .apr_off_t_toa           glink.s                      1     1      0.0 6
> .memchr                  glink.s                      1     1      0.0 6
> .apr_mmap_create         glink.s                      1     1      0.0 6
> .ap_get_remote_logname   glink.s                      1     1      0.0 6
> .cache_hash_get          glink.s                      1     1      0.0 6
> .ap_get_remote_host      glink.s                      1     1      0.0 6
> .apr_itoa                glink.s                      1     1      0.0 6
> .cache_pq_change_priority glink.s                      1     1      0.0 6
> .write                   glink.s                      1     1      0.0 6
> .writev                  glink.s                      1     1      0.0 6
> .cache_update            glink.s                      1     1      0.0 6
> .ap_regexec              glink.s                      1     1      0.0 6
> .apr_table_get           glink.s                      1     1      0.0 6
> .strlen                  glink.s                      1     1      0.0 6
> .apr_allocator_alloc     apr_pools.c                  4     4      0.0 4
> .apr_allocator_free      apr_pools.c                  4     4      0.0 4
> .log_status              mod_log_config.c             1     1      0.0 4
> .apr_allocator_owner_get apr_pools.c                  2     2      0.0 4
> .eos_bucket_read         apr_buckets_eos.c            1     1      0.0 4
> .apr_allocator_mutex_get apr_pools.c                  2     2      0.0 4
> .apr_bucket_destroy_noop apr_buckets.c                3     3      0.0 3
> .memcache_get_pos        mod_mem_cache.c              1     1      0.0 3
> .pfmt                    mod_log_config.c             1     1      0.0 3
> .apr_bucket_setaside_noop apr_buckets.c                1     1      0.0 2
> 




Mime
View raw message