Sergey Yagovtsev
ede383be3c
Add licence text to some file
2016-09-06 22:15:50 +03:00
Victor Zarubkin
31705d5daf
(profiler_core) Better way of declaring generic stack
2016-09-06 22:00:53 +03:00
Victor Zarubkin
e4db8cabe4
(profiler_core) Measure core functions work time
2016-09-06 21:52:56 +03:00
Victor Zarubkin
591f613ff6
License text + small clean-up
2016-09-06 21:49:32 +03:00
Victor Zarubkin
f25ba79636
(profiler_core) Event tracing clean-up
2016-09-06 00:24:21 +03:00
Victor Zarubkin
33946770bb
(profiler_core) Windows build fix
2016-09-06 00:22:26 +03:00
Sergey Yagovtsev
9521f8ac02
Store context switch timestamp on linux.
...
It's need to run systemtap util for loading kernel module. This kernel module capture context switch timestamp and systemtap store it in the temp file.
Before running profiling application you should run systemtap script with root privileges as following:
\# stap -o /tmp/cs_profiling_info.log scripts/context_switch_logger.stp name APPLICATION_NAME
where APPLICATION_NAME is profiling application
2016-09-05 22:11:03 +03:00
Sergey Yagovtsev
6d1b9915d2
Get thread id on linux by syscall instead of std::this_thread
2016-09-05 22:02:32 +03:00
Victor Zarubkin
f5ed51e13a
Event tracing fixes! Now working :)
2016-09-04 19:35:58 +03:00
Victor Zarubkin
05b56dcec0
First debuggable version of system event tracing for visualizing thread context switches
2016-09-04 14:48:35 +03:00
Victor Zarubkin
937f7d8fec
(profiler_core) Correcting: checking built-in "_WIN32" instead of compiler dependant "WIN32"
2016-09-01 22:22:58 +03:00
Victor Zarubkin
9560c5b5cf
(profiler_gui) Memory consumption optimization + File reading speed-up.
2016-08-30 22:51:18 +03:00
Victor Zarubkin
71f95f2c87
(profiler_core) Simplifying API: there are ~1.5 times lower macros number for using profiler.
2016-08-28 23:40:23 +03:00
Victor Zarubkin
4ff13053ec
Remastering profiler API. Fixed read/write
2016-08-28 21:06:23 +03:00
Victor Zarubkin
aa0d96d0e6
Remastering profiler API. All projects are compiled successfully, but there is an error occured during read/write .prof file
2016-08-28 18:22:45 +03:00
Victor Zarubkin
439e1cfb44
Remastering profiler API (not compiling yet)
2016-08-28 02:41:02 +03:00
Victor Zarubkin
3e1b8ce46f
(profiler core) The right way of avoiding static analyzer warnings ^_^ No need to insert unnecessary checks
2016-08-21 14:46:16 +03:00
Sergey Yagovtsev
9f6ca63440
(profiler core) fix clang static analyzer warnings
2016-08-19 00:35:45 +03:00
Victor Zarubkin
be54030b1a
Merge branch 'serialized_optimize' of https://github.com/yse/easy_profiler into serialized_optimize
2016-08-18 23:26:54 +03:00
Victor Zarubkin
8f30948105
(profiler_gui) Reading file (MainWindow) and building blocks hierarchy (TreeWidget) in separate threads + displaying read progress;
...
(profiler_gui) Moving sources into separate files;
(profiler_gui) Rename Prof* classes into Easy*;
(EasyGraphicsView) Optimized performance by not painting items which were not expanded in TreeWidget. While there are no range selected for TreeWidget, only top-level blocks are painted on scene.
2016-08-18 23:26:41 +03:00
Victor Zarubkin
8c53d65362
(profiler core) Remove clang warning. Remove useless 2 bytes in memory per block
2016-08-14 23:13:18 +03:00
Victor Zarubkin
197a585307
(profiler core) Warning: .prof file format changed! New SerializedBlock format, less allocations and copy, only single allocation in fillTreesFromFile(). Memory consumption reduced. Also speed up statistics gathering by moving calculations into several threads.
2016-08-14 22:22:44 +03:00
Victor Zarubkin
d38c869330
Memory consumtion optimization (almost 2 times less memory used on Windows)
2016-08-14 16:05:10 +03:00
Victor Zarubkin
3fd0b77d16
(profiler core) Prepare for source file and line writing
2016-08-11 23:52:33 +03:00
Sergey Yagovtsev
98a3dd7114
Fix typo in SerializedBlock class name
2016-08-07 21:40:23 +03:00
Victor Zarubkin
3017be305a
(profiler reader) Gathering per frame statistics + refactoring;
...
(profiler GUI) Lightening profiler::colors to be more bright;
(ProfTreeWidget) Displaying per frame and per thread statistics;
(ProfGraphicsView) Draw chronometer item text in Difference mode to be more readable.
2016-08-07 19:38:31 +03:00
Victor Zarubkin
7366defa63
Silly mistake
2016-08-06 14:48:01 +03:00
Victor Zarubkin
4f0fabdfd6
(profiler Reader) Added block_index field and replaced pointers SerilizedBlock* to block indexes;
...
(profiler GUI) Added plain vector of ProfBlocks (additional information for gui) for fast access;
(ProfGraphicsView) Removed unnecessary methods; small refactoring;
(ProfTreeWidget) Removed unnecessary map of tree items;
(ProfGraphicsScrollbar) Added colorizing of minimap (green = low duration, red = long duration);
2016-08-04 22:38:45 +03:00
Victor Zarubkin
55cd5a5751
(profiler Reader) For memory consumption optimization created BlocksTreeRoot class and move thread_name field from BlocksTree to new created class;
...
(profiler Reader) Added self_duration field for statistics;
(profiler Reader) Removed #ifdef macros;
(profiler Reader) moved BlocksTree, BlocksTreeRoot and thread_blocks_tree_t types inside profiler namespace;
(profiler GUI) Added globals.h and globals.cpp containing global variables and signals; Added profiler_gui namespace;
(ProfTreeWidget) Added context menu "Select columns" to make it possible to hide columns;
(ProfTreeWidget) Added percent statistics for blocks (Self %, Parent % and Frame %); Added displaying of total thread duration;
(ProfGraphicsScrollbar) Added context menu to make it possible to choose which thread to display on minimap;
(ProfGraphicsView) Highlighting currently selected thread;
2016-08-03 23:00:04 +03:00
Victor Zarubkin
bfe2e44456
(profiler Core fix) Thread-safety fixes
2016-08-02 21:44:11 +03:00
Victor Zarubkin
fd67a3d81b
(profiler Optimizations) PROFILER_SET_THREAD_NAME uses static variable, so profiler::setThreadName() will be invoked only once;
...
(profiler Optimizations) removed unnecessary profiler::Block creation from profiler::setThreadName();
(profiler Optimizations) removed statics from getCurrentTime() function - more correct static usage.
2016-08-02 21:18:04 +03:00
Victor Zarubkin
bc44bec36d
Merge branch 'develop' of https://github.com/yse/easy_profiler into develop
2016-08-01 22:22:23 +03:00
Victor Zarubkin
7bf8d871c1
Proper LONGLONG value
2016-08-01 22:16:31 +03:00
Sergey Yagovtsev
dd2deaf36f
Add macro for specifying thread name
2016-07-31 22:12:11 +03:00
Sergey Yagovtsev
35faba94c9
Return current time in nanoseconds
2016-07-31 20:01:02 +03:00
Sergey Yagovtsev
2f833fc0a8
Add function getCurrentTime instead of std::chrono on windows
2016-07-31 19:21:09 +03:00
Victor Zarubkin
03fb3f271f
Scene paint fixes and optimization
2016-07-27 21:50:11 +03:00
Victor Zarubkin
9a616fc693
Merge branch 'develop' of https://github.com/yse/easy_profiler into develop
...
# Conflicts:
# profiler_gui/main_window.cpp
# src/reader.cpp
2016-07-10 01:36:02 +03:00
Victor Zarubkin
8b4bd91147
(profiler reader) Added calculation of maximum depth of the BlocksTree;
...
* Also added header into reader.cpp and added comments.
2016-07-10 01:31:06 +03:00
Sergey Yagovtsev
23a94d94e2
Add profiling blocks for reader
2016-07-04 22:53:48 +03:00
Sergey Yagovtsev
82e9920e15
Add dumpBLocksToFile function
2016-07-04 22:53:02 +03:00
Sergey Yagovtsev
980edd631a
Optimized reader
2016-07-04 21:44:07 +03:00
Victor Zarubkin
4b287b31fa
(BlocksTree) Reading total number of children (including grandchildren and so on)
2016-06-29 20:31:17 +03:00
Victor Zarubkin
30d9e7645f
(Graphics view) Disabled border lines painting because of vertical lines painting bug;
...
* (Graphics view) Changed height of blocks. Variable thread-block height;
* (Tree widget) Disabled sorting by name to save order of threads displayed on graphics view;
* (Profiler reader) Changed type of value returned by fillTreesFromFile().
2016-06-27 23:22:12 +03:00
Sergey Yagovtsev
415ef43bbb
Gather statistic for root nodes
2016-06-26 21:04:24 +03:00
Victor Zarubkin
36ec598697
statistics gathering
2016-06-26 02:15:39 +03:00
Victor Zarubkin
94add93883
const modifiers for const methods
2016-06-26 02:12:27 +03:00
Victor Zarubkin
bd09a0173f
statistics gathering
2016-06-26 00:56:24 +03:00
Victor Zarubkin
aa8fde2434
removed unnecessary memory allocation
2016-06-25 23:10:05 +03:00
Sergey Yagovtsev
281ba558ea
Warning fix
2016-06-22 23:58:07 +03:00
Sergey Yagovtsev
fb3837316c
Thread local for get current thread id
2016-06-22 23:57:11 +03:00
Sergey Yagovtsev
6999122455
Linux build
2016-06-21 00:13:45 +03:00
Sergey Yagovtsev
be11666ea3
Add inline function getCurrentThreadId
2016-06-20 23:21:54 +03:00
Sergey Yagovtsev
e61404c92c
Add function getThreadId
2016-06-20 23:10:14 +03:00
Sergey Yagovtsev
f0a0b51a85
Add reader in profiler lib
2016-06-19 23:46:42 +03:00
Sergey Yagovtsev
7713f91500
Create tree structure
2016-06-17 16:31:09 +03:00
Sergey Yagovtsev
309da55899
Move colors enumenator to main header
2016-03-03 15:48:00 +03:00
Sergey Yagovtsev
9fa0b890d8
Add colors header
2016-03-03 15:35:23 +03:00
Sergey Yagovtsev
b422da141d
1) Add documentation
...
2) Fix win warnings
2016-03-03 14:55:38 +03:00
Sergey Yagovtsev
4d1c6a0228
Set end of mark in constructor and test output to file on profile manager destructor
2016-02-20 18:17:00 +03:00
Sergey Yagovtsev
0d986a6464
Move serialized block in header
2016-02-24 06:31:05 +03:00
Sergey Yagovtsev
5dfb456176
Linux runtime fix
2016-02-24 00:08:13 +03:00
Sergey Yagovtsev
98f3da5122
Linux build
2016-02-20 19:21:14 +03:00
Sergey Yagovtsev
9cf3ca02b7
1) Removed Mark entity. Only Block with type
...
2) Added simple implementation of serializing blocks and storing it.
2016-02-20 05:24:12 +03:00
Sergey Yagovtsev
2bba307998
Added empty profiler macros. Enabled if defined FULL_DISABLE_PROFILER definition
2016-02-18 23:50:06 +03:00
Sergey Yagovtsev
dbe5af1125
Added logic of push/pop blocks
2016-02-18 19:27:17 +03:00
Smirnov Kirill
561f79e8e6
Some changes to Singleton implementation
2016-02-17 18:18:06 +03:00
Sergey Yagovtsev
d643242885
Added function beginBlock
2016-02-18 00:45:13 +03:00
Sergey Yagovtsev
a5730169cc
Fixed some warnings
2016-02-17 23:43:37 +03:00
Sergey Yagovtsev
434622e282
Linux build
2016-02-17 23:24:35 +03:00
Sergey Yagovtsev
b5848ea7a6
Added new line in files
2016-02-16 23:25:12 +03:00
Sergey Yagovtsev
c60ac3ea85
Initial commit
2016-02-16 23:21:12 +03:00