...
Running a basic report will tell you what functions are showing up in the sampled profile the most.
Panel |
---|
bcall@snowball trafficserver$ opreport --symbols proxy/traffic_server | head CPU: Core 2, speed 2003 MHz (estimated) Counted CPU_CLK_UNHALTED events (Clock cycles when not halted) with a unit mask of 0x00 (Unhalted core cycles) count 100000 samples % image name app name symbol name 39820 18.0383 36603 8.1552 traffic_server traffic_server EThread::EThread() 13724 3.0577 traffic_server traffic_server _fini 5080 2.3012 libcLogBuffer::checkout_write(unsigned long*, unsigned long) 11137 2.4813 libpthread-2.11.1.so traffic_server memcpy 4235 1.9184 traffic_server pthread_mutex_trylock 10897 2.4279 traffic_server traffic_server HttpConfig::startup() 10702 2.3844 traffic_server traffic_server RecGetRecordPrefix_Xmalloc(char*, char*, int) 8869 1.9760 traffic_server traffic_server ink_freelist_new 3280 1.4858 libpthreadLogCollationClientSM::client_send(int, VIO*) 7952 1.7717 libc-2.11.1.so traffic_server pthread_mutex_trylock 2992 1.3554 traffic_server memcpy |
Running a callgraph report.
Panel |
---|
bcall@snowball trafficserver$ opreport -c -g --symbols proxy/traffic_server samples % linenr info image name app name symbol name ------------------------------------------------------------------------------- 10 1.3661 UnixConnection.cc:162 traffic_server traffic_server Connection::bind_connect(unsigned int, int, unsigned int, NetVCOptions*, int, bool, bool, bool, bool, bool) 68 9.2896 Update.cc:1138 traffic_server traffic_server do_strings_match_strongly(char const*, int, UpdateScheduler::ScheduleEvent(int, void*) 71 9.6995 Hash_Table.cc:223 traffic_server traffic_server HashTable::remove(int, char*, _alt_hdr*) 223 30.4645 UnixNetAccept.cc:166 traffic_server traffic_server NetAccept::allocateThread(EThread*) 360 49.1803 HttpSM.cc:7791 traffic_server traffic_server HttpSM::redirect_request(char const*, int) 2903 1.3151 36603 8.1552 UnixEThread.cc:41 traffic_server traffic_server ink_freelist_free 2712 1.2285 EThread::EThread() 36603 100.000 UnixEThread.cc:41 traffic_server traffic_server EThread::EThread() self ------------------------------------------------------------------------------- 13724 3.0577 LogBuffer.cc:356 traffic_server traffic_server CacheContinuationLogBuffer::remoteOpEvent(int, Event*) |
Running a callgraph report. I have seen where sometimes the callgraph has been wrong on Fedora 12 and we never call some of the functions listed in the callgraph.
Panel |
---|
bcall@snowball trafficserver$ opreport -c -g --symbols proxy/traffic_servercheckout_write(unsigned long*, unsigned long) 13724 100.000 LogBuffer.cc:356 traffic_server traffic_server LogBuffer::checkout_write(unsigned long*, unsigned long) self ------------------------------------------------------------------------------- 11137 2.4813 (no location information) libpthread-2.11.1.so traffic_server pthread_mutex_trylock 11137 100.000 (no location information) libpthread-2.11.1.so traffic_server pthread_mutex_trylock self |
Google profiler
...