From 32d446f2c46c0c443903e9cdb2046ae2037d3c87 Mon Sep 17 00:00:00 2001 From: Victor Zarubkin Date: Thu, 15 Sep 2016 00:33:47 +0300 Subject: [PATCH] Update README.md --- README.md | 28 ++++++++++++++++++---------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index 0777b42..a8b07cb 100644 --- a/README.md +++ b/README.md @@ -8,11 +8,18 @@ # About -Lightweight profiler library for c++ +Lightweight profiler library for c++ You can profile any function in you code. Furthermore this library provide measuring time of any block of code. -Also the library can capture system's context switch events between threads. Captured information includes duration, -target thread id, thread owner process id, thread owner process name. +For example, information for 12 millions of blocks is using less than 300Mb of memory. +Working profiler slows your application execution for only 1-2%. + +Disabled profiler will not affect your application execution in any way. You can leave it in your Release build +and enable it in run-time at any moment during application launch to see what is happening at the moment. + +Also the library can capture system's context switch events between threads. Context switch information includes +duration, target thread id, thread owner process id, thread owner process name. + You can see the results of measuring in simple GUI application which provides full statistics and renders beautiful time-line. # Build @@ -41,7 +48,8 @@ If you are using QtCreator IDE you can just open `CMakeLists.txt` file in root d If you are using Visual Studio you can generate solution by cmake generator command. ### Way 1 -Specify path to cmake scripts in Qt5 dir (usually in lib/cmake subdir), for example: +Specify path to cmake scripts in Qt5 dir (usually in lib/cmake subdir) and execute cmake generator command, +for example: ```batch $ mkdir build $ cd build @@ -70,7 +78,7 @@ This code snippet will generate block with function name and Magenta color: #include void frame() { - EASY_FUNCTION(profiler::colors::Magenta); + EASY_FUNCTION(profiler::colors::Magenta); // Magenta block with name "frame" prepareRender(); calculatePhysics(); } @@ -78,19 +86,19 @@ void frame() { To profile any block you may do this as following. You can specify these blocks also with Google material design colors or just set name of the block -(in this case it will have default color which is Amber100): +(in this case it will have default color which is `Amber100`): ```cpp #include void frame() { // some code - EASY_BLOCK("Calculating sum"); + EASY_BLOCK("Calculating sum"); // Block with default color int sum = 0; for (int i = 0; i < 10; ++i) sum += i; EASY_END_BLOCK; - EASY_BLOCK("Calculating multiplication", profiler::colors::Blue50); + EASY_BLOCK("Calculating multiplication", profiler::colors::Blue500); // Blue block int mul = 1; for (int i = 1; i < 11; ++i) mul *= i; @@ -98,13 +106,13 @@ void frame() { } ``` -You can also use your color set. EasyProfiler is using standard 32-bit ARGB color format. +You can also use your own colors. easy_profiler is using standard 32-bit ARGB color format. Example: ```cpp #include void foo() { - EASY_FUNCTION(0xfff080aa); + EASY_FUNCTION(0xfff080aa); // Function block with custom color // some code } ```