Tags: lwllvyb/easy_profiler
Tags
* (yse#31) Added possibility to save user metrics (a.k.a. arbitrary v… …alues) * `#include <easy/arbitrary_value.h>` * Use `EASY_VALUE("Name", variable_ref);` // See more options at `easy/arbitrary_value.h` * Added file converter (currently only .prof to .json is supported) * (yse#75) There is no need anymore to wait all threads finish their opened frames when dumping blocks to file/stream * (yse#81) Added CMake option to choose function names format * Added CMake option `EASY_PROFILER_NO_GUI` to build without `profiler_gui` * (yse#48) Minimized paddings in .prof file header * Bug fixes * Fixed `EASY_ENABLE_ALIGNMENT` build error * (yse#75) Fixed UI freeze when hitting `Cancel` button while transmitting profiled blocks from profiled application to the UI * Mac: Added support for building with Apple LLVM clang version < 8.0 * Add support for building with pre 2016 Apple LLVM clang * Automatically detect Apple clang that do not support thread_local * Clarify clang thread_local support code comment * (yse#72) Windows: VS2017 build fix * Unix: Context switch logger gets the processor cycle counter instead of time of a day * Other bug fixes * (yse#31) Added arbitrary values viewer * (yse#100) Added possibility to zoom in selected region * (yse#91) Added possibility to take a snapshot. Now you can save selected area to separate file. Works both with blue selection (hold right mouse button + move) and black ruler (double-click + hold mouse button + move) * Improved UI styles * Blocks histogram (under Diagram scene) is now resizeable * (yse#89) Added viewport info widget. See [Settings] -> [See viewport info] * Bug fixes * Fixed hierarchy building for zero duration blocks - events and arbitrary values are always visible * (yse#89) Trying to fix high-dpi displays problem (maybe not fixed 😞 ) * Other bug fixes
Beta version of release v2.0. Needed to test fonts issue on high-dpi displays.
Core * Added non-scoped block functionality for beginning and ending block manually from different functions. To open block use `EASY_NONSCOPED_BLOCK` macro, to close block use `PROFILER_END_BLOCK`. See yse#29 for more information * Added new API functions for getting current time (ticks) and converting it to nano- and microseconds: * `timestamp_t profiler::currentTime()` returns current time in ticks (or nanoseconds - depends on build options) * Add following cmake options to easy_profiler_core `CMakeLists.txt`: * `BUILD_WITH_CHRONO_STEADY_CLOCK` - use `std::chrono::steady_clock` as a timer. By default is `OFF` * `BUILD_WITH_CHRONO_HIGH_RESOLUTION_CLOCK` - use `std::chrono::high_resolution_clock` as a timer. By default is `OFF` If both is set to `ON` - use `std::chrono::high_resolution_clock`. If both is set to `OFF` - use `QueryPerformanceCounter/rtdsc` timer. **_Note_**: Do not forget clean `CMakeCache` file if you've changed an option. * Calculating total children duration per thread/frame/parent GUI * Displaying "total self %" (duration % excluding all children) per thread/frame/parent * Changed "Connect" button logic: if connected to the profiled application then additional click performs disconnect. Changed appropriate tool-tip. * Fixed displaying unicode text in popup and at histogram window * Display current opened file name at the window title; * Suggest save file name: using current system date and time as file name; * Checking for unsaved network session before opening new file and before exit. * Added "Use Right Mouse Button..." hint to Hierarchy window. See yse#35 yse#33 * Changed popup position on Diagram - now it is better positioned for small window also. * Added additional field "Self" to the popup on Diagram. Self stands for "self duration" (duration excluding all children). * Clear FPS Monitor contents after successful connect. * Minor fixes