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

710 Commits

Author SHA1 Message Date
Victor Zarubkin
245bc6c386 (EasyChronometerItem) Fixed an error of displaying text on large scale 2016-08-30 20:47:49 +03:00
Victor Zarubkin
eaa79a4c4c (profiler_core) Fixed logic mistake in base api 2016-08-30 20:46:39 +03:00
Victor Zarubkin
61c40c2512 (EasyGraphicsView) Design tweaking 2016-08-28 23:40:51 +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
988d9da391 (EasyTreeWidget) Trying to fix slow clear() 2016-08-28 21:10:16 +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
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
8b0f99ced0 (EasyGraphicsScrollbar) Displaying indicators for sliders at the top and the bottom of the mini-map view 2016-08-23 22:44:59 +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
355e3f519b (EasyGraphicsView) High painting performance optimization. No lags on 10 million blocks scene. (of course, not all 10 mil. of blocks are visible at the same moment) 2016-08-23 22:42:20 +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
4e5305ee74 (EasyGraphicsView) Refused of using QPainter::setClipRect() because of it is buggy when used with very big coordinates;
(EasyGraphicsView) New items borders drawing style.
2016-08-21 18:04:38 +03:00
Victor Zarubkin
1b3806ded2 (EasyGraphicsView) Removed debug output; Added vertical scrolling to the current thread on mouse wheel from EasyGraphicsScrollbar 2016-08-21 17:12:28 +03:00
Sergey Yagovtsev
3393072b81 Add analytics 2016-08-21 17:04:57 +03:00
Victor Zarubkin
721c145450 (profiler_gui) Added possibility of changing current scale using mouse wheel on minimap under graphics scene 2016-08-21 16:48:42 +03:00
Victor Zarubkin
beadd01c0c Merge remote-tracking branch 'origin/serialized_optimize' into develop 2016-08-21 14:48:36 +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
Victor Zarubkin
e40da7921d (EasyGraphicsView) Revert code analyzer fix: No need to check for nullptr because if it is null then there are no free memory in the system and the program will crash anyway. 2016-08-21 14:33:22 +03:00
Victor Zarubkin
9804378b1a Merge branch 'serialized_optimize' of https://github.com/yse/easy_profiler into serialized_optimize 2016-08-21 14:28:09 +03:00
Victor Zarubkin
5ab152620c (profiler_gui) Better way of setting fixed size of windows 2016-08-21 14:26:36 +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
Sergey Yagovtsev
9a1a4524f8 Add build status 2016-08-21 12:45:30 +03:00
Sergey Yagovtsev
16fe89c13d Increase speed of building 2016-08-21 12:34:06 +03:00
Sergey Yagovtsev
9b7a6a920a Remove qt55-meta package 2016-08-21 12:20:32 +03:00
Sergey Yagovtsev
32f7fa8aff Add 5.5 ppa source repo 2016-08-21 12:16:56 +03:00
Sergey Yagovtsev
76f2676693 Add 5.3 ppa source repo 2016-08-21 12:06:07 +03:00
Sergey Yagovtsev
ebc1a046e3 Travis attempt 2016-08-21 11:55:10 +03:00
Sergey Yagovtsev
48653c07c2 Check qt version 2016-08-19 01:47:53 +03:00
Sergey Yagovtsev
7d542cadda Ubuntu build 2016-08-19 01:40:14 +03:00
Sergey Yagovtsev
fffb18ca3a One more travis attempt number 60 2016-08-19 01:33:40 +03:00
Sergey Yagovtsev
3af94fb002 One more travis attempt. Almost working 2016-08-19 01:25:30 +03:00
Sergey Yagovtsev
3e9f3811f9 One more travis attempt 2016-08-19 01:19:41 +03:00
Sergey Yagovtsev
a682c0c35d One more travis attempt 2016-08-19 01:08:20 +03:00
Sergey Yagovtsev
843a692be6 Build travis empty commit 2016-08-19 00:56:40 +03:00
Sergey Yagovtsev
0ba6612a21 Travis one more attempt 2016-08-19 00:53:23 +03:00
Sergey Yagovtsev
9f6ca63440 (profiler core) fix clang static analyzer warnings 2016-08-19 00:35:45 +03:00
Sergey Yagovtsev
485c2a64ac (profiler gui) fix potencial zero pointer 2016-08-19 00:35:20 +03:00
Sergey Yagovtsev
7a87d681a1 (profiler gui) fix style warning by cppcheck analizer 2016-08-19 00:35:05 +03:00
Sergey Yagovtsev
fa15edf2ea Linux build 2016-08-18 23:50:53 +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
13997f6187 (profiler core) revert variables order change (prevois change may affect file read/write) 2016-08-14 16:50:17 +03:00
Victor Zarubkin
bcfa8d362d (profiler sample) Default value changed for OBJECTS 2016-08-14 16:05:40 +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
Victor Zarubkin
cdd74503eb (ProfGraphicsScrollbar) overflow guard (it seems that this is because of floating point precision) 2016-08-11 23:48:29 +03:00
Victor Zarubkin
24f181c040 (profiler GUI) high memory consumption optimizations: ~20 bytes per block 2016-08-11 23:43:34 +03:00
Sergey Yagovtsev
6df717781a Sample with more real blocks 2016-08-10 22:38:55 +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
66709981a8 (ProfGraphicsView) Fixed Windows compile errors 2016-08-09 01:24:49 +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
af2e606e08 (ProfGraphicsView) Updating scene rect when scrolling to selected item; 2016-08-09 00:15:40 +03:00
Victor Zarubkin
97d009bd46 (ProfTreeWidget) Displays only relevant statistics;
(profiler_gui) Comments in globals.h
2016-08-09 00:14:58 +03:00
Victor Zarubkin
dd31bb080b (ProfGraphicsScrollbar) Draw indicators if slider width is too small 2016-08-08 23:39:37 +03:00
Victor Zarubkin
b2ac7e0fbd (ProfGraphicsView) Scroll verticalScrollBar to selected item also 2016-08-08 23:18:13 +03:00
Victor Zarubkin
c6fb0bfeb9 Merge remote-tracking branch 'origin/develop' into develop 2016-08-08 23:11:27 +03:00
Victor Zarubkin
e8bdffbc7b (ProfGraphicsView) Selected item painted always, even if it is hidden because of small size. 2016-08-08 23:03:11 +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
f0f82c01e2 (ProfGraphicsView) Selecting items on scene;
(ProfGraphicsView) Clickable indicators of ProfChronometerItem;
(ProfTreeWidget) Jump to items on scene from ProfTreeWidget;
(profiler GUI) Fixed typos and warnings;
2016-08-08 22:17:56 +03:00
Sergey Yagovtsev
00602398fb Merge branch 'develop' of https://github.com/yse/easy_profiler into develop 2016-08-07 21:40:49 +03:00
Sergey Yagovtsev
98a3dd7114 Fix typo in SerializedBlock class name 2016-08-07 21:40:23 +03:00
Victor Zarubkin
30f0261bae (ProfGraphicsView) refactoring 2016-08-07 20:16:15 +03:00
Victor Zarubkin
cae3ab989e (profiler reader app) Setting file name manually when launching application without arguments 2016-08-07 19:39:33 +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
888ea2e61c refactoring 2016-08-07 19:35:58 +03:00
Victor Zarubkin
b39057049e (profiler) Proper color names and 6 new colors 2016-08-07 19:31:09 +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
67ed94c774 (ProfMainWindow) Saving last opened file path into QSettings 2016-08-06 14:48:38 +03:00
Victor Zarubkin
7366defa63 Silly mistake 2016-08-06 14:48:01 +03:00
Victor Zarubkin
27ec6aee7e refactoring 2016-08-04 23:46:04 +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
4b43bebc4a Remove obsolete code 2016-08-04 23:29:08 +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
Sergey Yagovtsev
57d8bc85e3 Set to windows application on win platform for profiler gui 2016-08-04 23:12:05 +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
4db8d4fbb6 (GraphicsScrollbar) Added mini-map which shows duration of blocks relative to each other;
(GraphicsScrollbar) Also added displaying of chronometer item position in graphics scrollbar.
2016-08-03 00:06:36 +03:00
Victor Zarubkin
aa7996c1c5 (ProfGraphicsView) Chronometer item text is displaying correctly taking into account visibleSceneRect borders 2016-08-02 22:24:22 +03:00
Victor Zarubkin
773f978bdc (ProfTreeWidget) Displaying thread names in the tree 2016-08-02 22:22:41 +03:00
Victor Zarubkin
bfe2e44456 (profiler Core fix) Thread-safety fixes 2016-08-02 21:44:11 +03:00
Victor Zarubkin
5d6cf9e5b4 (ProfTreeWidget fix) Fixed compiler warning 2016-08-02 21:21:12 +03:00
Victor Zarubkin
4b0d8e5e63 (profiler Reader fix) Added thread_name assignment into BlocksTree::makeMove() 2016-08-02 21:20:38 +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
6445be6e41 Add test for performance 2016-08-01 22:25:26 +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
b0f6b3f268 (GraphicsView) Fixed test();
(GraphicsView) Added a lot of comments;
(GraphicsView) Changed base unit from milliseconds to microseconds;
(GraphicsScrollbar) Fixed fluttering on very small scale;
(GraphicsView)+(TreeWidget) Chronometer item behavior: if selection made from left to right - selecting all items by intersection with rectangle; if selection made from right to left - selecting all items which are strictly inside selection rectangle.
2016-08-01 22:21:59 +03:00
Victor Zarubkin
7bf8d871c1 Proper LONGLONG value 2016-08-01 22:16:31 +03:00
Victor Zarubkin
146b0ccdfc Sample dump to file 2016-08-01 22:15:40 +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