diff --git a/README.md b/README.md index 75d5d8a..2c167b1 100644 --- a/README.md +++ b/README.md @@ -14,6 +14,7 @@ Further notes on [performance](PERFORMANCE.md) and general [notes](NOTES.md) on the development progress can be found in the linked documents. + ### Installation Clone the repository and open a terminal session in its folder. @@ -111,6 +112,10 @@ Available Settings: - Enables thread/datarace sanitizer to be linked to the executable - Only one sanitizer can be active at once - Enabling has a performance hit (do not use in releases) +- `-DDEBUG_SYMBOLS=ON` + - default OFF + - Enables the build with debug symbols + - Use for e.g. profiling the release build ### Testing @@ -130,7 +135,7 @@ keep the repository in a state where the sanitizer reports errors. Consider reading [the section on common data races](https://github.com/google/sanitizers/wiki/ThreadSanitizerPopularDataRaces) to get an idea of what we try to avoid in our code. -### Profiling +### Profiling EasyProfiler To make profiling portable and allow us to later analyze the logs programaticly we use [easy_profiler](https://github.com/yse/easy_profiler) @@ -144,7 +149,7 @@ the `profiler_gui ` command. Please note that the profiler adds overhead when looking at sub millisecond method invokations as we do and it can not replace a seperate -profiler like `gperf` or `valgrind` for detailed analysis. +profiler like `gperf`, `valgrind` or `vtune amplifier` for detailed analysis. We still think it makes sense to add it in as an optional feature, as the customizable colors and fine grained events (including collection of variables) can be used to visualize the `big picture` of @@ -152,3 +157,12 @@ program execution. Also, we hope to use it to log 'events' like successful and failed steals in the future, as the general idea of logging information per thread efficiently might be helpful for further analysis. + + +### Profiling VTune Amplifier + +For detailed profiling of small performance hotspots we prefer +to use [Intel's VTune Amplifier](https://software.intel.com/en-us/vtune). +It gives insights in detailed microachitecture usage and performance +hotspots. Follow the instructions by Intel for using it. +