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.
Run in a terminal: sudo apt-get install google-perftools libgoogle-perftools-dev
Note: dependencies above are already installed in our docker file
-DWITH_PERFTOOLS=ON -DNOJEM=ON -DWITH_DYNAMIC_LINKING=0
compiler flag. You can use CUSTOMOPTIONS in config.sh
to set it for the dashboard compiler. You also need to set the CTYPE
conf to at least RelWithDebInfo
(faster but less info) or Debug
(slower but more info).config.sh
, at the GOOGLE PERF TOOLS
section, accordingly to your needs.sudo ./acore.sh run-worldserver
sudo killall -12 worldserver
This command will start the monitoring process.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.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):