0
0
mirror of https://github.com/yse/easy_profiler.git synced 2024-12-28 01:04:41 +08:00

70 Commits

Author SHA1 Message Date
Sergey Yagovtsev
bb889d4d31 Add bazel build for easy profiler core 2019-12-02 19:51:25 +03:00
Sergey Yagovtsev
53289cec81 Static thread local 2018-09-18 23:20:43 +03:00
Sergey Yagovtsev
99b761375b Remove ATOMIC_VAR_INIT 2018-09-18 22:41:58 +03:00
Victor Zarubkin
b3f6b4f61f #0 [Sample] Rollback - profiler_sample is standalone again (do not need to connect gui) 2018-04-26 00:34:39 +03:00
Victor Zarubkin
5e632bedee #31 [Core] Arbitrary values: replaced size_t with uint16_t; [Gui] Added support of arrays to arbitrary values tree 2018-03-07 20:52:39 +03:00
Victor Zarubkin
9860a565d3 #31 [Gui] Complexity charts for arbitrary value viewer 2018-02-09 21:06:18 +03:00
Victor Zarubkin
091d5447ce #0 Updated copyright dates; [Gui] thread_pool.cpp MSVC build fix; [Core] Renamed getCurrentTime() to profiler::clock::now() + renamed profiler::currentTime() to profiler::now() 2018-01-29 23:29:43 +03:00
Victor Zarubkin
1a333e4f01 #0 [Gui] Large portion of refactoring; Replaced bunch of threads with thread pool; Small fixes for arbitrary values viewer 2018-01-28 20:52:17 +03:00
Victor Zarubkin
a9e6ac084b Older compiler build 2017-12-28 00:41:32 +03:00
Sergey Yagovtsev
341a549f61 Sample: build when SAMPLE_NETWORK_TEST is undefined 2017-12-27 22:37:52 +03:00
Victor Zarubkin
b73044fddd #31 [Core] Fixed issue with storing arbitrary value while dumping. // [GUI] Further values viewer progress. 2017-12-14 23:12:27 +03:00
Rokas Kupstys
f007152d2c CMake script rework 2017-06-12 10:36:42 +03:00
Sergey Yagovtsev
99d6a21a4a minor changes in sample 2017-05-08 12:32:07 +03:00
Sergey Yagovtsev
0d8396b43a travis 2017-05-05 20:38:58 +03:00
Sergey Yagovtsev
98bcb8ce24 Add test for calculating cost of block 2017-05-05 20:30:01 +03:00
Sergey Yagovtsev
9184efb589 Add linux-specific test for calculating cost of gettime functions. Build with:
$ c++ -std=c++11 -O3 main_clock.cpp -o test_clock
2017-05-05 19:50:42 +03:00
Sergey Yagovtsev
3f0ceec589 fixed #34 it was frozen cause manual block was added without finish 2017-04-25 16:36:21 +03:00
Victor Zarubkin
c2b3a8f5dc (Core) Update #29 - added non-scoped block functionality for beginning and ending block manually from different functions.
(Core) Added new API functions for getting current time (ticks) and converting it to nano- and microseconds.
2017-04-17 22:27:10 +03:00
Victor Zarubkin
beba74d559 (GUI) Added real-time FPS Monitor which shows current max/avg frame time in GUI even if profiler is disabled. You just need to connect to the profiled app. You can close (hide) FPS Monitor and it would not send network requests to the profiled application anymore. You can increase/decrease FPS Monitor requests interval in "Settings -> FPS Monitor -> Request interval, ms". Right click on FPS Monitor window to show context menu in which you can clear contents or hide FPS Monitor. 2017-04-03 23:16:36 +03:00
Victor Zarubkin
edcf23e268 Amend last commit 2017-04-02 14:25:46 +03:00
Victor Zarubkin
a2b62613a2 (Core) Frame counter: significantly simplified interface - there is no need to start frame counter explicitly. Top block is frame. 2017-04-02 14:23:11 +03:00
Victor Zarubkin
10b04a4748 (Core) First step for getting frame time at run-time.
Now you can use EASY_FRAME_COUNTER (which is only frame-counter) or EASY_FRAME (which is EASY_FRAME_COUNTER + EASY_BLOCK) or EASY_FRAME_FUNCTION (which is EASY_FRAME_COUNTER + EASY_FUNCTION) to measure frame time even if profiler is disabled.
To get frame time you can use profiler::main_thread::frameTimeLocalMax to get maximum frame duration since last call or profiler::main_thread::frameTime to get last frame time.
--- NOTE: You have to put EASY_MAIN_THREAD to your main thread to be able to use profiler::main_thread functions.
If you do not want to then you can use same functions from profiler::this_thread, but you will have to call them from your main thread.
2017-03-31 21:17:08 +03:00
Victor Zarubkin
08372ac136 Update license 2017-03-30 06:55:15 +03:00
Sergey Yagovtsev
15912970db replace double quotes to angle brackets - fixed #28 2017-03-05 23:50:38 +03:00
Victor Zarubkin
6d3a4a0aed MinGW build fixes: Thanks to https://github.com/Nitrotoluol for help! 2017-02-14 21:22:26 +03:00
Victor Zarubkin
c0a23866ed Cross-compiler way of C++11 standard requirement (NOTICE: Need to test on Unix systems) 2017-02-08 21:47:20 +03:00
Sergey Yagovtsev
d564b6ef4e Saving files before refreshing line endings 2017-02-08 00:14:49 +03:00
Sergey Yagovtsev
68a05942fa Unix section for sample 2017-02-07 23:42:43 +03:00
Holger Rapp
7641951247 Fixes for clang 3.8.
- Disables warnings for no-braced-scalar-init which shows up for ATOMIC_VAR_INIT.
- Fixes compile warnings, mostly "moving a temporary objects prevents
  copy elision" (-Wpessimizing-move) and unused variables.
- Adds some necessary fields to make the sample compile after having
  build the core library.
2017-02-07 17:19:58 +01:00
Sergey Yagovtsev
80ebd76116 Interface changing:
1 - Rename startListeningToCature to startListen
2 - Specify listen port by startListen function parameter
2016-12-01 23:25:54 +03:00
Sergey Yagovtsev
f8ab7f0d91 Merge remote-tracking branch 'origin/develop' into rename_to_easy 2016-10-21 22:15:32 +03:00
Sergey Yagovtsev
76defe2372 Rename directory profiler to easy 2016-09-29 23:29:57 +03:00
Sergey Yagovtsev
477e643040 Disable EasyProfiler by default. For building with profiler define macro BUILD_WITH_EASY_PROFILER 2016-09-29 23:08:20 +03:00
Victor Zarubkin
eca7061fd0 Added menu Settings->Remote to control profiler event tracing and other future options 2016-09-28 00:37:20 +03:00
Victor Zarubkin
8fd70c5420 Many new features:
* Reading blocks from stream without temporary file;
* Reading blocks description from stream;
* Control blocks statuses over network: connect to the application, refresh blocks list, change block's status, launch profiling.
2016-09-25 11:49:49 +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
61589c1154 Merge commit 2016-09-15 22:49:56 +03:00
Sergey Yagovtsev
80892e636e Receive by EasySocket 2016-09-14 22:04:15 +03:00
Victor Zarubkin
bf02f32482 small refactoring 2016-09-13 23:03:16 +03:00
Sergey Yagovtsev
6d6ad61a18 Add connect button 2016-09-13 21:42:38 +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
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
Victor Zarubkin
40a8ee3d16 Material design colors 2016-09-07 22:37:05 +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
68ee40a5ad Replace tab to whitespaces 2016-09-06 22:23:55 +03:00
Victor Zarubkin
f5ed51e13a Event tracing fixes! Now working :) 2016-09-04 19:35:58 +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
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