0
0
mirror of https://github.com/yse/easy_profiler.git synced 2024-12-30 02:16:55 +08:00

67 Commits

Author SHA1 Message Date
Victor Zarubkin
4a05cafab4 Writing signature and version into file to let reader check if file is valid;
* Added output messages
2016-09-27 22:28:04 +03:00
Victor Zarubkin
30de452113 Trying to fix problem with c++11 magic statics (there is no support for visual studio 2013 and earlier, gcc < 4.3 and clang < 2.9);
Wrapped "final" keyword for different compilers support;
Block descriptors now stored in unordered_map to make it easy to control theirs visibility level and to make it safe to unload dll/so during application execution.
2016-09-22 23:06:43 +03:00
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
85e7145bf1 Merge commit 2016-09-18 19:02:12 +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
34bb8d8119 (profiler_core) Fixed potential problem with unloading dll/so during application work 2016-09-17 11:10:25 +03:00
Sergey Yagovtsev
4b71a64363 Merge commit 2016-09-16 00:53:27 +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
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
Sergey Yagovtsev
0fe6690545 Add server function for EasySock 2016-09-12 21:28:15 +03:00
Sergey Yagovtsev
542783573d Linux build 2016-09-11 19:34:01 +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
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
20d3fb47a6 First steps in network. Work on linux 2016-09-08 21:03:40 +03:00
Victor Zarubkin
40a8ee3d16 Material design colors 2016-09-07 22:37:05 +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
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
cd39507389 Replace tab to whitespaces 2016-09-07 21:32:14 +03:00
Sergey Yagovtsev
d39fecaac1 Clang build 2016-09-07 21:29:37 +03:00
Victor Zarubkin
449610028a (profiler_core) Linux build: avoid gcc warning about unused variable 2016-09-06 23:16:15 +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
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
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
342a95108c Merge branch 'new_api' of https://github.com/yse/easy_profiler into new_api 2016-09-01 22:24:59 +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
Sergey Yagovtsev
88de665df9 clang warning fix 2016-08-31 21:51:22 +03:00
Sergey Yagovtsev
d8f44ba559 Gcc compile fix 2016-08-31 21:51:00 +03:00
Victor Zarubkin
eaa79a4c4c (profiler_core) Fixed logic mistake in base api 2016-08-30 20:46:39 +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
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
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
13997f6187 (profiler core) revert variables order change (prevois change may affect file read/write) 2016-08-14 16:50:17 +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
b39057049e (profiler) Proper color names and 6 new colors 2016-08-07 19:31:09 +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
Sergey Yagovtsev
dd2deaf36f Add macro for specifying thread name 2016-07-31 22:12:11 +03:00
Sergey Yagovtsev
82e9920e15 Add dumpBLocksToFile function 2016-07-04 22:53:02 +03:00
Victor Zarubkin
94add93883 const modifiers for const methods 2016-06-26 02:12:27 +03:00
Victor Zarubkin
aa8fde2434 removed unnecessary memory allocation 2016-06-25 23:10:05 +03:00
Victor Zarubkin
dba149c1e6 refactoring: proper types 2016-06-25 17:17:44 +03:00