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

179 Commits

Author SHA1 Message Date
Sergey Yagovtsev
76defe2372 Rename directory profiler to easy 2016-09-29 23:29:57 +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
eca7061fd0 Added menu Settings->Remote to control profiler event tracing and other future options 2016-09-28 00:37:20 +03:00
Victor Zarubkin
d099aa28bb Validating ip address 2016-09-27 23:45:33 +03:00
Victor Zarubkin
425ca67077 (EasyMainWindow) IP-Address validation 2016-09-27 22:43:02 +03:00
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
6e50f6517d (EasyMainWindow) save and restore last used ip-address and port 2016-09-27 21:57:46 +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
6cae6901de (profiler_gui) Removed unnecessary signals (rebuild may be needed) 2016-09-24 00:00:31 +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
79e503983c Merge branch 'develop' of https://github.com/yse/easy_profiler into develop 2016-09-21 22:09:09 +03:00
Victor Zarubkin
7f5b7c00a8 (profiler_gui) Added tool-button "Clear all";
(profiler_gui) Prepare for append blocks
2016-09-21 22:09:04 +03:00
Sergey Yagovtsev
7804cf8b92 Warning fix 2016-09-20 23:25:13 +03:00
Victor Zarubkin
d6269f17fe Merge branch 'develop' of https://github.com/yse/easy_profiler into develop 2016-09-20 22:57:52 +03:00
Victor Zarubkin
cd0ef96793 (EasyMainWindow) Adjust QLineEdit width on tool-bar 2016-09-20 22:30:39 +03:00
Sergey Yagovtsev
151c359f7f Linux build 2016-09-20 01:24:53 +03:00
Victor Zarubkin
89ff53c3c8 (profiler_gui) Main window refactoring 2016-09-18 20:20:37 +03:00
Sergey Yagovtsev
85e7145bf1 Merge commit 2016-09-18 19:02:12 +03:00
Sergey Yagovtsev
9b7b80febe Check if receive return zero - set it to disconnect 2016-09-18 18:33:10 +03:00
Sergey Yagovtsev
d2b4423c7b Remove obsolete code 2016-09-18 18:26:11 +03:00
Sergey Yagovtsev
a59a18be95 Some warning fix 2016-09-18 18:11:33 +03:00
Sergey Yagovtsev
2d4e22cc23 Add init and flush functions for EasySocket 2016-09-18 18:08:47 +03:00
Sergey Yagovtsev
c822809f4e Merge branch 'network_blocks' of github.com:yse/easy_profiler into network_blocks 2016-09-18 16:46:43 +03:00
Sergey Yagovtsev
9420f97a5a Set icon on connect 2016-09-18 16:46:35 +03:00
Sergey Yagovtsev
6939f053c9 Add checkResult function for socket 2016-09-18 16:43:43 +03:00
Victor Zarubkin
08a9cbf75d (profiler_gui) Save and restore windowState of EasyMainWindow;
(profiler_gui) Block descriptors list: added search box, search matches coloring, context menu event;
2016-09-17 18:43:06 +03:00
Victor Zarubkin
ef7469a880 (profiler_gui) First version of displaying and controlling blocks enable status 2016-09-17 15:39:31 +03:00
Sergey Yagovtsev
c316734e8f Fix disconnect problem on downloading 2016-09-16 22:51:15 +03:00
Sergey Yagovtsev
82079f43da linux client socket fix 2016-09-16 22:23:04 +03:00
Sergey Yagovtsev
c83fc4626b linux build 2016-09-16 02:12:56 +03:00
Sergey Yagovtsev
52a9862963 Correct receiving 2016-09-16 02:11:11 +03:00
Sergey Yagovtsev
f4676ced6f sleep for 1 second 2016-09-16 01:37:50 +03:00
Sergey Yagovtsev
4b71a64363 Merge commit 2016-09-16 00:53:27 +03:00
Victor Zarubkin
925e2f1b26 (profiler_gui) New style for icons 2016-09-15 23:56:20 +03:00
Sergey Yagovtsev
61589c1154 Merge commit 2016-09-15 22:49:56 +03:00
Victor Zarubkin
0166038e74 (profiler_gui) Enable/Disable statistics 2016-09-14 23:13:38 +03:00
Sergey Yagovtsev
80892e636e Receive by EasySocket 2016-09-14 22:04:15 +03:00
Victor Zarubkin
acad6b6b37 (profiler_gui) Added icons and main logo 2016-09-14 21:52:11 +03:00
Sergey Yagovtsev
6d6ad61a18 Add connect button 2016-09-13 21:42:38 +03:00
Sergey Yagovtsev
3181b867b1 Windows socket connection 2016-09-12 22:10:45 +03:00
Sergey Yagovtsev
0fe6690545 Add server function for EasySock 2016-09-12 21:28:15 +03:00
Sergey Yagovtsev
0a98d032d0 Windows almost work 2016-09-11 18:23:47 +03:00
Sergey Yagovtsev
a422f69deb More stability in networking 2016-09-08 23:15:01 +03:00
Sergey Yagovtsev
20d3fb47a6 First steps in network. Work on linux 2016-09-08 21:03:40 +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
b90e13509e small refactoring 2016-09-01 22:24:13 +03:00
Victor Zarubkin
cbcfe4c184 (EasyMainWindow) Memory leak issue 2016-08-30 23:15:16 +03:00
Victor Zarubkin
9560c5b5cf (profiler_gui) Memory consumption optimization + File reading speed-up. 2016-08-30 22:51:18 +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
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
5ab152620c (profiler_gui) Better way of setting fixed size of windows 2016-08-21 14:26:36 +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
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
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
Sergey Yagovtsev
fd0ef209f8 Select encoding for block`s name.
Create unused widget for threads.
2016-08-09 00:45:45 +03:00
Sergey Yagovtsev
164eaa519d Warning fix 2016-08-08 22:45:57 +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
Victor Zarubkin
888ea2e61c refactoring 2016-08-07 19:35:58 +03:00
Victor Zarubkin
67ed94c774 (ProfMainWindow) Saving last opened file path into QSettings 2016-08-06 14:48:38 +03:00
Victor Zarubkin
27ec6aee7e refactoring 2016-08-04 23:46:04 +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
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
bb0f2d3cd4 Added chronometer graphics item which shows time interval on graphics scene (Press right mouse button and move mouse on graphics scene). Also, all items from selected interval will be shown in tree widget. 2016-07-31 18:48:41 +03:00
Victor Zarubkin
c943431104 (GraphicsView) Using GraphicsScrollbar with qreal values instead of standard QScrollBar with int values.
(GraphicsView) Does not use standard QGraphicsView::scale and QGraphicsView::centerOn methods, does not use standard QScrollBar because of it's fast value overflow. Using manual offset for all scene items instead of standard scrolling.
2016-07-31 13:13:48 +03:00
Victor Zarubkin
9a616fc693 Merge branch 'develop' of https://github.com/yse/easy_profiler into develop
# Conflicts:
#	profiler_gui/main_window.cpp
#	src/reader.cpp
2016-07-10 01:36:02 +03:00
Victor Zarubkin
3978535a99 Added GraphicsScrollbar (still in development phase) for big graphics scene. Standard QScrollBar's int value gets overflow very fast when doing zoom-in for graphics scene. So it is necessary to create a Scrollbar with double value. 2016-07-10 01:31:45 +03:00
Sergey Yagovtsev
d356629e33 Open file by command line argument 2016-06-30 21:39:04 +03:00
Victor Zarubkin
5ca4158abf Highly optimized painting algorithm and memory consumption for Profiler GraphicsView 2016-06-30 02:57:57 +03:00
Victor Zarubkin
30d9e7645f (Graphics view) Disabled border lines painting because of vertical lines painting bug;
* (Graphics view) Changed height of blocks. Variable thread-block height;
* (Tree widget) Disabled sorting by name to save order of threads displayed on graphics view;
* (Profiler reader) Changed type of value returned by fillTreesFromFile().
2016-06-27 23:22:12 +03:00
Victor Zarubkin
89766e83b1 (Tree widget) Added possibility to colorize rows with profiler blocks' colors;
* (Tree widget) Added displaying frame statistics for blocks.
2016-06-27 22:11:26 +03:00
Victor Zarubkin
e6c105561a added main window with both graphics view and tree widget;
* further improvement of graphics view: highly improved scene scaling and added scene drag with left mouse button pressed.
2016-06-26 20:54:16 +03:00