Victor Zarubkin
e49b6179ef
New flexible block statuses instead of ENABLED, DISABLED: OFF, ON, FORCE_ON, OFF_RECURSIVE, ON_WITHOUT_CHILDREN, FORCE_ON_WITHOUT_CHILDREN
2016-09-20 22:57:34 +03:00
Sergey Yagovtsev
4c73886233
common code for linux and windows
2016-09-20 00:57:47 +03:00
Sergey Yagovtsev
38eecc722d
Refactoring of sockets
2016-09-19 23:59:55 +03:00
Sergey Yagovtsev
0ca2a4aef7
Add files
2016-09-18 19:11:22 +03:00
Sergey Yagovtsev
85e7145bf1
Merge commit
2016-09-18 19:02:12 +03:00
Sergey Yagovtsev
9b7b80febe
Check if receive return zero - set it to disconnect
2016-09-18 18:33:10 +03:00
Sergey Yagovtsev
2d4e22cc23
Add init and flush functions for EasySocket
2016-09-18 18:08:47 +03:00
Sergey Yagovtsev
6939f053c9
Add checkResult function for socket
2016-09-18 16:43:43 +03:00
Victor Zarubkin
b81779eaf6
refactoring
2016-09-17 15:37:16 +03:00
Victor Zarubkin
5d95cbd83b
(profiler_core) Added log messages output for Windows event tracer
2016-09-17 12:54:47 +03:00
Victor Zarubkin
ce61ea1a77
small refactoring
2016-09-17 11:10:45 +03:00
Victor Zarubkin
34bb8d8119
(profiler_core) Fixed potential problem with unloading dll/so during application work
2016-09-17 11:10:25 +03:00
Victor Zarubkin
6b07af9e05
(ETW) Event tracing fix for situation when application was not launched from Visual Studio: to be able to get process name application requires debug privilege level.
2016-09-17 01:05:50 +03:00
Sergey Yagovtsev
c316734e8f
Fix disconnect problem on downloading
2016-09-16 22:51:15 +03:00
Sergey Yagovtsev
82079f43da
linux client socket fix
2016-09-16 22:23:04 +03:00
Sergey Yagovtsev
52a9862963
Correct receiving
2016-09-16 02:11:11 +03:00
Sergey Yagovtsev
f4676ced6f
sleep for 1 second
2016-09-16 01:37:50 +03:00
Sergey Yagovtsev
4b71a64363
Merge commit
2016-09-16 00:53:27 +03:00
Sergey Yagovtsev
d5f6aa94b1
Add checking for empty sync list.
...
(cherry picked from commit ef60d553c064341ab714a79e8e12d5363b35081e)
2016-09-16 00:19:03 +03:00
Sergey Yagovtsev
ef60d553c0
Add checking for empty sync list.
2016-09-15 23:30:36 +03:00
Victor Zarubkin
4a40872183
(profiler_core) Added possibility to control event tracing priority level and to enable/disable event tracing at all.
2016-09-15 23:15:07 +03:00
Sergey Yagovtsev
61589c1154
Merge commit
2016-09-15 22:49:56 +03:00
Victor Zarubkin
f0ee9215bd
Warnings fix
2016-09-14 23:34:56 +03:00
Victor Zarubkin
795d347d2a
Linux build
2016-09-14 23:23:09 +03:00
Sergey Yagovtsev
80892e636e
Receive by EasySocket
2016-09-14 22:04:15 +03:00
Victor Zarubkin
86314b89ba
(profiler_core) Windows event tracing: if we can't get process name at the moment, write process id at least
2016-09-14 21:53:06 +03:00
Victor Zarubkin
fdee7226f8
(profiler_gui) More information in popup; Right way to remove QGraphicsProxyWidget from scene (it does not delete widget by itself)
2016-09-13 23:44:20 +03:00
Victor Zarubkin
313f981cc9
Fix CMakeLists.txt
2016-09-13 23:13:11 +03:00
Victor Zarubkin
1b33ad788d
(profiler_core) Further work with run-time enable/disable blocks;
...
(profiler_core) Fixed bug with memory corruption in chunk_allocator;
(profiler_core) Event tracing now gathering info about process which owns thread;
(profiler_core) Thread names are stored before other blocks now;
(profiler_core) Removed unused block types: context switch and thread sign;
(profiler_core) Added some description for API;
(profiler_gui) Context switch events now painted in different colors: red = switch to another process, coral = switch to registered thread in the same process, black = switch to kernel mode (thread id == 0).
(profiler_gui) Added popup windows with information about context-switch or block under mouse cursor;
2016-09-13 23:03:01 +03:00
Victor Zarubkin
f490641165
forgotten row
2016-09-13 22:53:07 +03:00
Sergey Yagovtsev
6d6ad61a18
Add connect button
2016-09-13 21:42:38 +03:00
Sergey Yagovtsev
3181b867b1
Windows socket connection
2016-09-12 22:10:45 +03:00
Sergey Yagovtsev
0fe6690545
Add server function for EasySock
2016-09-12 21:28:15 +03:00
Sergey Yagovtsev
7b502c5a5d
Fix typo
2016-09-12 20:16:05 +03:00
Sergey Yagovtsev
0a98d032d0
Windows almost work
2016-09-11 18:23:47 +03:00
Victor Zarubkin
d5d75d6340
(profiler_core) Further work with real-time enable/disable of blocks;
...
(profiler_core) Optimized storeBlock() algorithm, removed unnecessary std::vector;
(profiler_core) Writing to std::stringstream and then to file (prepare for streaming over WAN/LAN);
(profiler_core) Moved hached_cstr into separate header.
2016-09-11 16:57:35 +03:00
Sergey Yagovtsev
03765b08bc
Not compiling version of windows sock
2016-09-09 06:14:34 +03:00
Victor Zarubkin
9294ddb61b
(profiler_core) Prepare for blocks enable/disable;
...
(profiler_core) Changed order of read/write of context switches as a preparation work to statistics gathering taking into account context switches duration.
2016-09-09 00:09:47 +03:00
Sergey Yagovtsev
f95d88bb1a
Add interface for EasySocket
2016-09-08 23:34:04 +03:00
Sergey Yagovtsev
a422f69deb
More stability in networking
2016-09-08 23:15:01 +03:00
Victor Zarubkin
248348ee05
(EasyGraphicsView) Added widget displaying thread names on scene. Double click on thread name makes it current selected thread.
...
(EasyGraphicsView) Selected item's text is now painted bold + removed selected item color, but made selected item's border more wide.
(profiler_gui) Colors adjustment.
2016-09-08 22:42:35 +03:00
Sergey Yagovtsev
20d3fb47a6
First steps in network. Work on linux
2016-09-08 21:03:40 +03:00
Sergey Yagovtsev
1edb71a6eb
Minor style fix
2016-09-07 22:25:32 +03:00
Victor Zarubkin
68bbd0eef3
Merge branch 'event_tracing' of https://github.com/yse/easy_profiler into event_tracing
2016-09-07 21:52:40 +03:00
Sergey Yagovtsev
39e68b4adc
ci clang compiler fix attempt number three =|
2016-09-07 21:50:42 +03:00
Victor Zarubkin
6e845eece2
Using Google Material Design colors;
...
* At last, fixed bug with text paint on very large scene scale. Now you can scale the scene up to 10 ns scale!
2016-09-07 21:48:50 +03:00
Sergey Yagovtsev
9eb02316ba
ci clang compiler fix attempt number two =)
2016-09-07 21:45:25 +03:00
Sergey Yagovtsev
26fe3ca7e0
ci clang compiler fix attempt
2016-09-07 21:40:40 +03:00
Sergey Yagovtsev
cd39507389
Replace tab to whitespaces
2016-09-07 21:32:14 +03:00
Victor Zarubkin
3699a07e41
Merge branch 'event_tracing' of https://github.com/yse/easy_profiler into event_tracing
...
# Conflicts:
# src/profile_manager.cpp
2016-09-06 23:07:56 +03:00
Victor Zarubkin
10bb3da45b
(profiler_core) !! Non-blocking API using Thread-Local-Storage (threal_local or __declspec(thread) or __thread)
2016-09-06 23:03:05 +03:00
Sergey Yagovtsev
68ee40a5ad
Replace tab to whitespaces
2016-09-06 22:23:55 +03:00
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