samples % lib function 4 0.0525 libdovecot.so.0.0.0 sha1_result_libmysqlcli(..) 7 0.0919 libdovecot.so.0.0.0 io_loop_handler_run 36 0.4729 libdovecot.so.0.0.0 imap_parser_reset 227 2.9817 libdovecot.so.0.0.0 pool_alloconly_unref 7339 96.4009 libdovecot.so.0.0.0 pool_alloconly_clear 7710 3.2463 libdovecot.so.0.0.0 safe_memset 7710 100.000 libdovecot.so.0.0.0 safe_memset [self]
1 0.0148 libdovecot.so.0.0.0 i_stream_limit_read 2 0.0296 libdovecot.so.0.0.0 i_stream_header_filt(..) 6 0.0888 libdovecot.so.0.0.0 imap_parser_destroy 8 0.1184 libdovecot.so.0.0.0 settings_parser_deinit 230 3.4039 libdovecot.so.0.0.0 imap_parser_reset 6510 96.3445 libdovecot.so.0.0.0 pool_alloconly_unref 598 0.2518 libdovecot.so.0.0.0 pool_alloconly_clear 7339 89.8286 libdovecot.so.0.0.0 safe_memset 598 7.3195 libdovecot.so.0.0.0 pool_alloconly_clear [self] 232 2.8397 libc-2.3.6.so (no symbols) 1 0.0122 libdovecot.so.0.0.0 body
4 0.0525 libdovecot.so.0.0.0 sha1_result_libmysqlclient_craps_all_over 7 0.0919 libdovecot.so.0.0.0 io_loop_handler_run 36 0.4729 libdovecot.so.0.0.0 imap_parser_reset 227 2.9817 libdovecot.so.0.0.0 pool_alloconly_unref 7339 96.4009 libdovecot.so.0.0.0 pool_alloconly_clear 7710 3.2463 libdovecot.so.0.0.0 safe_memset 7710 100.000 libdovecot.so.0.0.0 safe_memset [self]
Mostly safe_memset is called from pool_alloconly_clear.
I attach result from oprofile - functions (with call tree) that have more than 2% of all oprofile samples in libdovecot.so.
p_strdup is on the list, but it is lower than before last optimisations. As You see there is no other optimised functions :)
-- Len7hir