mirror of
https://github.com/yse/easy_profiler.git
synced 2024-12-27 00:31:02 +08:00
Update README.md
This commit is contained in:
parent
fd856478e5
commit
32d446f2c4
28
README.md
28
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 <profiler/profiler.h>
|
||||
|
||||
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 <profiler/profiler.h>
|
||||
|
||||
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 <profiler/profiler.h>
|
||||
|
||||
void foo() {
|
||||
EASY_FUNCTION(0xfff080aa);
|
||||
EASY_FUNCTION(0xfff080aa); // Function block with custom color
|
||||
// some code
|
||||
}
|
||||
```
|
||||
|
Loading…
x
Reference in New Issue
Block a user