How to use GPERFTool
AzerothCore integrates the google performance tools library that allows you to analyse the code execution of your application when it comes to CPU and Memory. In short: thread-friendly heap-checker, heap-profiler, and cpu-profiler.
Install (Ubuntu):
Run in a terminal: sudo apt-get install google-perftools libgoogle-perftools-dev
Note: dependencies above are already installed in our docker file
Usage (with the AzerothCore dashboard):
- To enable the gperftools you need to compile with the
-DWITH_PERFTOOLS=ON -DNOJEM=ON -DWITH_DYNAMIC_LINKING=0
compiler flag. You can use CUSTOMOPTIONS inconfig.sh
to set it for the dashboard compiler. You also need to set theCTYPE
conf to at leastRelWithDebInfo
(faster but less info) orDebug
(slower but more info). - Configure the variables inside the
config.sh
, at theGOOGLE PERF TOOLS
section, accordingly to your needs. - run the worldserver with the
sudo ./acore.sh run-worldserver
- run
sudo killall -12 worldserver
This command will start the monitoring process. - Run
sudo killall -12 worldserver
again to stop the process when you want. At this time you will have the .prof file ready in the folder configured below. - Run
google-pprof --callgrind <path/of/worldserver/bin> </path/of/prof/file> > worldserver.callgrind
This will generate a callgrind file that can be read with QCacheGrind, KCacheGrind or any other compatible tools.
This is what you will see (screenshot of KCacheGrind):