0
0
mirror of https://github.com/yse/easy_profiler.git synced 2025-01-14 00:27:55 +08:00

79 Commits

Author SHA1 Message Date
Victor Zarubkin
0dc5a71aad [ui] rearrange settings; some renames 2019-10-27 14:27:53 +03:00
Victor Zarubkin
33850d5abf [ui] histogram update: added avg, median times, added color square for block name, added borders 2019-10-26 01:04:21 +03:00
Victor Zarubkin
c74744fae4 [ui] added workaround for Qt memory leak on Linux when using multiple threads;
[ui] added median duration into tree stats;
[ui] added max rows count for "Call-stack" tree mode;
2019-10-24 19:21:31 +03:00
Victor Zarubkin
f547c62182 [ui] Use RoundProgressDialog instead of QProgressDialog 2019-10-22 09:58:25 +03:00
Victor Zarubkin
92a5ca4a75 Big bunch of changes:
* update copyright
* fix css parsing
* fix block name search
* add matching text highlighing for find results
* add calculation of block statistics for selected area
* new action: right-click on a block on "Diagram" selects region using left and right bounds of this block
* other optimizations
2019-10-20 16:12:37 +03:00
Victor Zarubkin
0ae430410d #106 [Core][UI] Added possibility to add user bookmarks with double-clicking on a timeline in the Diagram window.
#112 [UI] Fixed losing focus (and getting under MainWindow) for Blocks widget.
#0 [UI] UI styling, added custom window header and dialogs (could be turned off/on and adjusted position at [Settings -> Appearance] menu).
2018-06-09 02:18:39 +03:00
Victor Zarubkin
2b75e65535 #0 [UI] refactoring 2018-05-24 02:19:48 +03:00
Victor Zarubkin
ef7b41fd0d #91 [UI] Added snapshot tool stub; Working on saving blocks to file from UI 2018-04-22 03:34:26 +03:00
Victor Zarubkin
57dca48349 #31 [UI] Added arbitrary value tool-tip to Hierarchy tree widget (Try to move mouse cursor over Name column) 2018-03-26 21:38:41 +03:00
Victor Zarubkin
1db116c791 #31 [Gui] Fixed mouse indicator for complexity chart; fixed buildTree(); added stub for future export values to .csv 2018-02-20 22:11:43 +03:00
Victor Zarubkin
677a138fa3 #89 Trying to fix high-dpi displays problem 2018-02-01 23:17:01 +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
a7a58acd1d #31 [Gui] Big update for arbitrary values viewer. It is now viable and can be used to inspect user metrics. Currently arbitrary values viewer is built into blocks list widget. 2018-01-21 19:37:44 +03:00
Victor Zarubkin
4406664a7d #31 Basic arbitrary values viewer chart 2017-12-28 00:23:14 +03:00
Victor Zarubkin
123358b798 #31 [GUI] Arbitrary values viewer begin. Refactoring. 2017-12-07 22:36:53 +03:00
Victor Zarubkin
d24e4a9e7e #31 [GUI] Arbitrary values viewer progress 2017-11-30 22:21:08 +03:00
Victor Zarubkin
df93c146b2 #0 [GUI] Windows styling and consterxpr fix for some Qt versions 2017-11-27 22:43:01 +03:00
Victor Zarubkin
e4305bf10b #0 [GUI] Styling and optimization 2017-11-27 22:02:15 +03:00
Victor Zarubkin
010ac07ce0 #0 [GUI] Styling. Themes. 2017-11-26 15:37:39 +03:00
Victor Zarubkin
109c5fc47c #0 [GUI] Styling 2017-11-23 22:01:44 +03:00
Victor Zarubkin
3ab4b9e3c9 #0 [GUI] refactoring: removed SET_ICON macro 2017-10-04 21:38:18 +03:00
Oliver Daniell
f241444f1d Moved QFonts into EASY_GLOBALS and deferred instantiation of EASY_GLOBAS
until after QApplication.
2017-08-10 09:12:33 +01: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
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
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
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
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
Sergey Yagovtsev
297174942f Relicense under dual MIT/Apache 2.0 2017-03-30 06:18:29 +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
9c517c0201 Removed vertical spacing between blocks 2017-03-07 01:19:09 +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
Victor Zarubkin
829ca05e75 (GUI) Added new icon (:/Stop), increased default icon size 2016-12-18 19:16:21 +03:00
Victor Zarubkin
eafcb40970 (GUI) Added possibility to torn on/off decorated thread names (add/don't add "Thread" word info thread name. Example, "Render" convert to "Render Thread", "WorkerThread" "My thread" will not convert in any way). See Settings->View->Use decorated thread names.
* (GUI) Fixed lagging when painting very long block on large scale.
2016-12-14 21:47:33 +03:00
Victor Zarubkin
d4877b59b8 (GUI) Added new regime "Hide min-size blocks" to hide blocks which screen size is less than 'Min blocks size';
(GUI) Slightly more memory effective arch.
2016-12-12 21:39:16 +03:00
Victor Zarubkin
15f3c7fc87 (GUI) Added tooltips into Settings->View menu;
(GUI) More informative popup window view;
(GUI) Added hystogram for current selected block;
2016-12-04 16:51:27 +03:00
Victor Zarubkin
69a326c06b (EasyGraphicsView) Highlighting all similar blocks on diagram (only if they are visible!);
(GUI) Added possibility to select units in which time will be displayed
2016-11-30 21:59:40 +03:00
Victor Zarubkin
90705af989 (GUI) Added flag "add zero blocks to hierarchy". If it is false then blocks with zero duration will not be added into hierarchy tree in hierarchy window. This saves a lot of memory. 2016-11-26 18:08:02 +03:00
Victor Zarubkin
a7ac056021 (GUI) Added flag for enabling zero length blocks on diagram (if NOT enabled then such blocks would be resized to minimum length which is 250 ns. Otherwise you probably will not see blocks with zero length on diagram, but such blocks are still available at hierarchy window) 2016-11-23 22:54:59 +03:00
Victor Zarubkin
92b2b27a3b (GUI) Added search box into Hierarchy window;
(GUI) Added new option for building hierarchy for selected thread only (for memory economy)
2016-11-20 21:01:33 +03:00
Victor Zarubkin
65be64fb51 GUI: Added new settings into settings toolbar -> View. You can change blocks minimum size, spacing and narrow width value. 2016-11-19 04:52:45 +03:00
Victor Zarubkin
5c4904756f (EasyGraphicsScrollbar) Changed dash-line color to black for better perception 2016-11-16 23:13:43 +03:00
Victor Zarubkin
c0e2e345ec (EasyGraphicsScrollbar) Draw frame time marker on graphics scrollbar to visualize long frames 2016-11-13 22:02:47 +03:00
Sergey Yagovtsev
e5041a9b2b Multi-licensing in source codes 2016-11-13 16:39:59 +03:00
Victor Zarubkin
3b7266fb37 Prepare for saving profiled data (does not work yet);
* Remastered tool-bars and menus;
* Added new painting regime (Settings->View->Hide narrow children)
2016-09-29 22:40:19 +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
583410c929 (profiler_gui) Added events indicators (like context switch events at the bottom of each thread) 2016-09-23 23:50:43 +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
ce61ea1a77 small refactoring 2016-09-17 11:10:45 +03:00
Victor Zarubkin
925e2f1b26 (profiler_gui) New style for icons 2016-09-15 23:56:20 +03:00
Victor Zarubkin
d8296ad43a (profiler_gui) Project hierarchy change: moved sources to separate files 2016-09-15 22:30:32 +03:00
Victor Zarubkin
0166038e74 (profiler_gui) Enable/Disable statistics 2016-09-14 23:13:38 +03:00
Victor Zarubkin
5b620071b6 (profiler_gui) Adjust colors; Added keyboard handlers; Displaying additional info 2016-09-09 00:07:27 +03:00
Sergey Yagovtsev
68ee40a5ad Replace tab to whitespaces 2016-09-06 22:23:55 +03:00
Victor Zarubkin
591f613ff6 License text + small clean-up 2016-09-06 21:49:32 +03:00
Victor Zarubkin
9560c5b5cf (profiler_gui) Memory consumption optimization + File reading speed-up. 2016-08-30 22:51:18 +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
3a2c8aaef1 (profiler_gui) Small design tweaking;
(profiler_gui) Added possibility to change where chronometer (time-meter) item text will be painted: at the top of the scene, in the center or at the bottom of the scene. See menu View -> Chronometer text.
2016-08-24 01:00:24 +03:00
Victor Zarubkin
bb7e288c1c (EasyMainWindow) Separated loading of settings and geometry;
(profiler_gui) Added flag of connecting items expand status on scene and in the tree.
2016-08-23 23:50:30 +03:00
Victor Zarubkin
3d8a120502 (profiler_gui) New flags for expanding all items on file open and for collapsing all items after closing tree (Blocks hierarchy dock-window);
(EasyTreeWidget) Fix of invisible progress bar;
2016-08-23 22:44:04 +03:00
Victor Zarubkin
004c4a257f (EasyGraphicsView) Second click on selected item on graphics scene makes it expanded or collapsed;
(EasyGraphicsView) Scale indicator rework;
(EasyMainWindow) Added menu "View" with actions "Expand all" nad "Collapse all";
(EasyGraphicsScrollbar) Fixed wrong mouse position calculation when scaling (with mouse wheel) on minimap.
2016-08-21 22:44:03 +03:00
Victor Zarubkin
d4ebdeeda8 (EasyGraphicsView) Added painting of time scale on the bottom of the graphics scene;
(EasyGraphicsItem) Fixed algorithmic error in paint() (this fix has improved paint() performance);
(profiler_gui) Color mathing
2016-08-21 14:26:04 +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
24f181c040 (profiler GUI) high memory consumption optimizations: ~20 bytes per block 2016-08-11 23:43:34 +03:00
Victor Zarubkin
9f48bf6e21 (profiler_gui) refactoring;
(ProfGraphicsView) Added separate background drawer item; Added timeline scale drawing;
2016-08-10 22:08:27 +03:00
Victor Zarubkin
d8ccff0788 (profiler_gui/globals.h) auto toUnicode() return type 2016-08-09 01:29:24 +03:00
Victor Zarubkin
c28b720c71 Merge branch 'develop' of https://github.com/yse/easy_profiler into develop 2016-08-09 01:16:16 +03:00
Sergey Yagovtsev
fd0ef209f8 Select encoding for block`s name.
Create unused widget for threads.
2016-08-09 00:45:45 +03:00
Victor Zarubkin
97d009bd46 (ProfTreeWidget) Displays only relevant statistics;
(profiler_gui) Comments in globals.h
2016-08-09 00:14:58 +03:00
Sergey Yagovtsev
b257ef2c1d Merge commit 2016-08-08 22:54:20 +03:00
Sergey Yagovtsev
164eaa519d Warning fix 2016-08-08 22:45:57 +03:00
Victor Zarubkin
48e0906bf4 (ProfGraphicsView) using SELECTED_ITEM_COLOR constant 2016-08-08 22:35:21 +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
57654670f0 (ProfGraphicsView) Displaying additional chronometer item on mouse double click and move. This item is used just to measure time. This is not affecting tree displayed in ProfTreeWidget. 2016-08-06 14:50:31 +03:00
Victor Zarubkin
aac410d9f8 Merge branch 'develop' of https://github.com/yse/easy_profiler into develop 2016-08-04 23:35:49 +03:00
Victor Zarubkin
340a787358 (ProfGraphicsView) Fixed borders painting 2016-08-04 23:35:38 +03:00
Sergey Yagovtsev
8346e50688 (profiler GUI) Store settings for application. Now is main geometry and
columns settings in blocks tree widget and colorized settings.
2016-08-04 23:12:41 +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