0
0
mirror of https://github.com/yse/easy_profiler.git synced 2025-01-01 20:06:16 +08:00

637 Commits

Author SHA1 Message Date
Victor Zarubkin
48fb240ca0 #37 Replaced std::string with char* for NonscopedBlock with manual memory management 2017-06-07 20:50:16 +03:00
Victor Zarubkin
43b6d1312b (GUI) Added possibility to display only frames (top-level blocks) on histogram to be able to find unexpected blocks on top level. Use [Settings] -> [Only frames on histogram] 2017-06-07 02:08:53 +03:00
Victor Zarubkin
8c4e26e3ec (GUI) Fix compiler warning 2017-06-07 01:47:05 +03:00
Victor Zarubkin
93c3066095 update #42 : Slightly better solution with less amount of black magic - different data structures for context switch events. Core API changed! 2017-06-07 01:39:45 +03:00
Sergey Yagovtsev
b14dbef78d update #42: linux build 2017-06-06 23:52:18 +03:00
Victor Zarubkin
4a9daf3bb4 update #42 : fixed possible statistics display bug; work around storing 64-bit thread id for context switch events (requires testing);
* (GUI) Added popup window when moving mouse cursor to thread name in Diagram window;
2017-06-06 20:46:06 +03:00
Sergey Yagovtsev
ec21fa0554 fix #40 2017-06-06 13:57:19 +03:00
Victor Zarubkin
6e35381517 (GUI) Removed leading "../" from file names in BlocksList widget - now it is more compact and readable 2017-06-05 21:27:55 +03:00
Victor Zarubkin
089fcf1e31 (GUI) Added an option to display thread ids in HEX mode;
* (GUI) Fixed problem with searching selected blocks in histogram when selecting block from BlocksList widget
2017-06-05 21:26:10 +03:00
Victor Zarubkin
65ac892e32 Fixing problems after changing thread_id_t to uint64_t from uint32_t: There is still a big problem with target-thread ids of context-switch events on *nix systems (it has been stored in block_id_t which is uint32_t and now it requires Core API changes to support new thread_id_t). Also there is a problem with statistics displaying (for top-level blocks parent_index had value of thread-id, it requires a work around now). 2017-06-05 21:24:01 +03:00
Sergey Yagovtsev
35b4796a62 *nix build 2017-06-05 13:18:28 +03:00
Sergey Yagovtsev
1c5084c6de for #41: minor beautifulize 2017-06-05 13:11:02 +03:00
Sergey Yagovtsev
39f0219ade Merge #41 into develop 2017-06-05 12:58:13 +03:00
Sergey Yagovtsev
ccd0626bf8 backward compatibility with old size of thread_id_t. For #41 2017-06-05 12:57:12 +03:00
Rokas Kupstys
08ae417931 Few more MacOS fixes.
Thread id changed to size_t, required for MacOS because older versions do not have integral thread ids and we must use a pointer returned by pthread_self()/
2017-05-23 19:49:21 +03:00
Josh Engebretson
a01187cf55 Networking fixes for MacOS
Qualify type for std::abs
2017-05-23 19:47:29 +03:00
Sergey Yagovtsev
f988cd4809 v1.2.0 v1.2.0 2017-05-08 12:32:56 +03:00
Sergey Yagovtsev
99d6a21a4a minor changes in sample 2017-05-08 12:32:07 +03:00
Victor Zarubkin
dbc2989788 Update README.md 2017-05-07 13:40:23 +03:00
Sergey Yagovtsev
ecbe7780e6 (Core) close #39 Add following cmake options to easy_profiler_core CMakeLists:
BUILD_WITH_CHRONO_STEADY_CLOCK - use std::chrono::steady_clock as a timer. By default is OFF
BUILD_WITH_CHRONO_HIGH_RESOLUTION_CLOCK - use std::chrono::high_resolution_clock as a timer. By default is OFF

If both is set to ON - use std::chrono::high_resolution_clock.
If both is set to OFF - use QueryPerformanceCounter/rtdsc timer.

Note: Do not forget clean CMakeCache file if you've changed an option.
2017-05-06 11:54:24 +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
ed8e331876 travis fix 2017-05-05 19:56:48 +03:00
Sergey Yagovtsev
ef412ca961 travis fix 2017-05-05 19:55:35 +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
Victor Zarubkin
714e4e0bab (Core) #39 Added macros for possibility to choose std::chrono timer type: EASY_CHRONO_HIGHRES_CLOCK for high_resolution_clock and EASY_CHRONO_STEADY_CLOCK for steady_clock - Use it in CMakeLists.txt 2017-05-04 21:40:48 +03:00
Victor Zarubkin
50b3cc8b7a (Core) Fixed old typo in ProfileManager::setBlockStatus() 2017-05-03 21:18:14 +03:00
Victor Zarubkin
bf308dc299 (GUI) Fixed displaying unicode text in popup and at histogram window 2017-05-02 23:22:36 +03:00
Victor Zarubkin
35ca4ff370 (GUI) Display current opened file name at the window title;
* (GUI) Suggest save file name: using current system date and time as file name;
* (GUI) Checking for unsaved network session before opening new file and before exit.
2017-05-02 23:21:15 +03:00
Sergey Yagovtsev
97f09d9e71 Update README.md 2017-05-02 21:33:11 +04:00
Victor Zarubkin
e1bc731570 #37 enclosed MinGW specific 2017-05-01 04:03:26 +03:00
Victor Zarubkin
e862ba4c88 (GUI) #35 #33 Added "Use Right Mouse Button..." hint to Hierarchy window 2017-05-01 03:52:48 +03:00
Victor Zarubkin
4f941294fd (GUI) #37 replaced std::abs() with abs();
(GUI) Changed popup position on Diagram - now it is better positioned for small window also.
2017-04-30 01:09:06 +03:00
Victor Zarubkin
593395a4aa (Core) #37 No manual ~string() call 2017-04-30 00:17:15 +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
2e74f83569 (GUI) Displaying "total self %" (duration % excluding all children) per thread/frame/parent 2017-04-20 22:30:05 +03:00
Victor Zarubkin
d1e68e0cec (Core) Calculating total children duration per thread/frame/parent 2017-04-20 22:29:02 +03:00
Victor Zarubkin
dff1d8b2a4 (Core) Update #29 : fixed potential memory leak for NonscopedBlock + linux build 2017-04-17 23:31:07 +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
c93464968e (GUI) Minor cosmetic changes to the FPS Monitor 2017-04-17 22:15:40 +03:00
Victor Zarubkin
c202bd8cac (GUI) Added additional field "Self" to the popup on Diagram. Self stands for "self duration" (duration excluding all children). 2017-04-17 22:14:51 +03:00
Victor Zarubkin
0466ee3e85 (GUI) Changed "Connect" button logic: if connected to the profiled application then additional click performs disconnect. Changed appropriate tool-tip.
(GUI) Clear FPS Monitor contents after successful connect.
2017-04-17 22:13:22 +03:00
Victor Zarubkin
b8360cd2c2 (GUI) Changed default options in globals 2017-04-17 22:09:53 +03:00
Victor Zarubkin
c80247e645 Update version at readme 2017-04-11 20:00:57 +03:00
Sergey Yagovtsev
d02e568dae v1.1.0 v1.1.0 2017-04-10 23:39:00 +03:00
Victor Zarubkin
c7ba19cb4d (GUI) Fixed warnings 2017-04-10 22:04:09 +03:00
Victor Zarubkin
0d5acc75e2 Linux build: include math.h for fabs 2017-04-10 21:54:54 +03:00
Victor Zarubkin
cbb298dc19 (GUI) Added possibility to adjust selection boundaries with dragging (available for both rulers: black and blue) 2017-04-10 21:33:56 +03:00
Sergey Yagovtsev
f83601d170 Update README.md 2017-04-10 11:14:09 +03:00
Victor Zarubkin
f17aa956cd (Core) Add main thread check 2017-04-09 10:23:59 +03:00
Victor Zarubkin
f00d731da4 (Core) Fixed main thread name compare 2017-04-09 09:12:27 +03:00
Victor Zarubkin
11fd89e7eb Update README.md 2017-04-07 23:51:34 +03:00
Victor Zarubkin
a9d13deb18 (Core) Fixed serious error caused by invoking endBlock() while dumping blocks to stream/file 2017-04-06 23:10:14 +03:00
Victor Zarubkin
654bfdf9da (Core) Fix incorrect storing 2017-04-06 22:59:33 +03:00
Victor Zarubkin
631619865e (GUI) Minor changes to FPS Monitor: added antialiasing and possibility to change line width (via settings) 2017-04-05 22:37:40 +03:00
Victor Zarubkin
c8e97dac26 (Core) Fixed average frame duration calculation; Fixed addBlockDescription crash when dll/so has been unloaded and loaded again. 2017-04-05 22:36:06 +03:00
Victor Zarubkin
28cea458a4 (GUI) New icon for "Clear all" button 2017-04-05 22:34:18 +03:00
Victor Zarubkin
880b35e59a (GUI) FPS Monitor also works while capturing frames 2017-04-03 23:28:19 +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
8b7a68266c (Core) Added new API functions for requesting local-average frame duration (like local-max) 2017-04-03 23:08:52 +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
4b90fc3abb Update README.md 2017-03-30 07:03:11 +03:00
Victor Zarubkin
0f988a663f Update README.md 2017-03-30 06:58:28 +03:00
Victor Zarubkin
08372ac136 Update license 2017-03-30 06:55:15 +03:00
Victor Zarubkin
7f085ef8ac Merge branch 'develop' of https://github.com/yse/easy_profiler into develop 2017-03-30 06:49:06 +03:00
Victor Zarubkin
835e8f0a1f (GUI) Show capture dialog immediately if profiling session has been already enabled. You may now profile everything from the application launch (initialization etc.). 2017-03-30 06:48:58 +03:00
Victor Zarubkin
8ae5139b87 (Core): Trying to reduce data copying while sending profiled information 2017-03-30 06:47:00 +03:00
Sergey Yagovtsev
01ae19e56b Update Readme 2017-03-30 06:30:11 +03:00
Sergey Yagovtsev
f8dbf15ade Update Readme 2017-03-30 06:28:30 +03:00
Sergey Yagovtsev
5e41c946d1 Update Readme 2017-03-30 06:25:07 +03:00
Sergey Yagovtsev
873e7cd732 Update Readme 2017-03-30 06:20:25 +03:00
Sergey Yagovtsev
cd6b186ba4 Update Readme 2017-03-30 06:19:45 +03:00
Sergey Yagovtsev
297174942f Relicense under dual MIT/Apache 2.0 2017-03-30 06:18:29 +03:00
Victor Zarubkin
73fc9d53e8 GUI.HierarchyWidget: changed column names to more compact versions 2017-03-17 00:32:47 +03:00
Victor Zarubkin
b5b743d9ad resolve #20 : You can now turn on an option "Automatically adjust histogram height" (in Settings/View) and histogram height will be adjusted automatically to the visible region (but this restricts you from adjusting manually in zoom mode) 2017-03-13 20:31:59 +03:00
Victor Zarubkin
378533fb9e update #20 : GUI.Histogram: changed interface - Shift + LMB-click (or Wheel) will change top boundary, Ctrl + LMB-click (or Wheel) will change bottom boundary, Any-modifier (Shift, Ctrl, Alt) + RMB-click will pick "Expected frame time" from histogram;
GUI.Histogram: fixed possible concurrent access violations;
GUI.Histogram: optimized histogram painting - preparing image in separate thread, no real-time operations.
2017-03-13 00:43:15 +03:00
Victor Zarubkin
1af9c1bacc GUI.Diagram: changed timeline scale color from gray to darkGray 2017-03-13 00:38:31 +03:00
Victor Zarubkin
620a4da8d3 GUI.Histogram: Fixed possible concurrent access violation; Fixed typos and misspelt words 2017-03-07 19:59:57 +03:00
Victor Zarubkin
ffca37d06d GUI.GraphicsView: Removed unused code 2017-03-07 19:53:09 +03:00
Victor Zarubkin
5e0180f399 amend last commit (adjusted width) 2017-03-07 01:33:43 +03:00
Victor Zarubkin
5efe8c1132 GUI: Changed current-scale indicator appearance (bottom right of the screen) 2017-03-07 01:30:48 +03:00
Victor Zarubkin
9c517c0201 Removed vertical spacing between blocks 2017-03-07 01:19:09 +03:00
Victor Zarubkin
df0ee6ead9 update #20 - Added possibility to change Expected-frame-time via histogram: use Ctrl + LMB 2017-03-07 01:15:25 +03:00
Victor Zarubkin
339f392e7e Merge branch 'develop' of https://github.com/yse/easy_profiler into develop 2017-03-07 00:31:13 +03:00
Victor Zarubkin
648930eba8 update #20 - first manual version of histogram boundary control: Shift + Mouse Wheel == adjust top boundary (max duration); Ctrl + Mouse Wheel == adjust bottom boundary (min duration) 2017-03-07 00:29:34 +03:00
Sergey Yagovtsev
15912970db replace double quotes to angle brackets - fixed #28 2017-03-05 23:50:38 +03:00
Sergey Yagovtsev
6c13b48873 Merge branch 'develop' of github.com:yse/easy_profiler into develop 2017-03-05 23:01:10 +03:00
Sergey Yagovtsev
55000a6325 fixed #27 2017-03-05 22:59:03 +03:00
Victor Zarubkin
973c03f5f5 Removed unused old sources 2017-03-05 11:18:26 +03:00
Sergey Yagovtsev
072fb91467 fixes 26 2017-03-04 13:39:42 +03:00
Victor Zarubkin
95ad72c9a7 A couple of fixes for pull-request 2017-03-03 00:29:45 +03:00
Victor Zarubkin
a9dea6faa6 Merge branch 'rokups-feature/getters' into develop 2017-03-03 00:19:12 +03:00
Sergey Yagovtsev
a0e1ce459f Android build 2017-03-02 16:13:59 +03:00
Rokas Kupstys
8f7ffa9102 Fix atomic memory model in setEventTracingEnabled() 2017-03-02 10:28:43 +02:00
Rokas Kupstys
e7f5cc0748 New API:
* bool isEnabled()
* bool isListening()
* bool isEventTracingEnabled()
* bool isLowPriorityEventTracing()
2017-03-02 10:26:13 +02:00
Sergey Yagovtsev
d89e5ff590 Add select function for checking connection 2017-03-01 20:56:43 +03:00
Sergey Yagovtsev
c9f69f7b25 Update README.md 2017-03-01 13:20:51 +03:00
Rokas Kupstys
88c14e25f6 Fix multiple defined symbols of DEFAULT_ADDRESS on gcc+linux. 2017-03-01 11:12:35 +02:00