Commit Graph

1397 Commits

Author SHA1 Message Date
Bartosz Taudul
2c43e1337f Fast log10 is no longer needed. 2018-09-08 19:01:51 +02:00
Bartosz Taudul
2f9d0aa9eb Use improved algorithm in compare trace histogram. 2018-09-03 21:26:50 +02:00
Bartosz Taudul
384a42cc47 Display average and median times in compare traces. 2018-09-03 20:45:51 +02:00
Bartosz Taudul
29d649216e In compare traces put both total times in the same line. 2018-09-03 20:39:34 +02:00
Bartosz Taudul
9fb26b3622 If there's no group selected, dim group selection legend. 2018-09-03 20:36:40 +02:00
Bartosz Taudul
fc40c7bbf6 Calculate compare traces average, median. 2018-09-03 20:34:07 +02:00
Bartosz Taudul
b485aad2a3 Cosmetics. 2018-09-03 20:34:00 +02:00
Bartosz Taudul
e8b4f71f4a Properly initialize sortedNum in find zone. 2018-09-03 20:21:28 +02:00
Bartosz Taudul
a02121d78a Allow disabling average, median markers on frame set histogram. 2018-09-02 13:37:36 +02:00
Bartosz Taudul
0b0fa919d3 Find zone groups are now by default sorted by count. 2018-09-02 13:34:00 +02:00
Bartosz Taudul
fb013c0df5 Properly reset state when switching matched source locations. 2018-09-02 13:25:17 +02:00
Bartosz Taudul
08729c2b42 Allow disabling average and median time markers. 2018-09-02 13:06:09 +02:00
Bartosz Taudul
1bff8a7997 Draw group average and median times on histogram. 2018-09-02 13:00:21 +02:00
Bartosz Taudul
c3c48117d4 Display group average and median times. 2018-09-02 13:00:21 +02:00
Bartosz Taudul
2d3ce1bf25 Calculate group average and median times. 2018-09-02 13:00:21 +02:00
Bartosz Taudul
5733b420a1 Use the same algorithm for selection group binning. 2018-09-02 03:46:16 +02:00
Bartosz Taudul
c1630936d4 Use the improved method in find zone histogram. 2018-09-02 02:58:15 +02:00
Bartosz Taudul
854210a7e3 Fix find zone histogram selection start/end. 2018-09-02 02:09:29 +02:00
Bartosz Taudul
8152e213f8 Collapse separate find zone histogram paths into one. 2018-09-02 01:31:09 +02:00
Bartosz Taudul
f43b875b83 Display average and median zone time in find zone histogram. 2018-09-02 00:28:57 +02:00
Bartosz Taudul
f66ed00d71 Calculate sorted zone times for find zone histogram. 2018-09-02 00:19:15 +02:00
Bartosz Taudul
e81218ddaf Radically improve frame set histogram performance.
This change exploits the fact that frame set data is sorted, and the
histogram bins can be calculated as distances in the frame-time vectors.
2018-09-01 14:50:38 +02:00
Bartosz Taudul
1bef4b45b7 Display continuous/discontinuous info about frame sets. 2018-09-01 14:04:23 +02:00
Bartosz Taudul
213b33a4fa No need to check for zero value in a sorted set. 2018-09-01 13:55:25 +02:00
Bartosz Taudul
0c086e3a30 In-place merge new frames instead of re-sorting the whole set. 2018-09-01 13:34:02 +02:00
Bartosz Taudul
9f4d6692dc Proper way to get full frame count. 2018-09-01 12:38:12 +02:00
Bartosz Taudul
faea036c16 Ignore last, probably unfinished frame. 2018-09-01 02:07:52 +02:00
Bartosz Taudul
c8a0bfd9be Merge average and median lines, if they overlap. 2018-09-01 01:48:00 +02:00
Bartosz Taudul
8211eb1371 Display FPS ranges. 2018-09-01 01:48:00 +02:00
Bartosz Taudul
0825c40938 Display average and median frame times. 2018-09-01 01:48:00 +02:00
Bartosz Taudul
8df82278a5 Display frame set time as a percentage of profile time. 2018-09-01 01:48:00 +02:00
Bartosz Taudul
98b5363ebc Add frame set histogram. 2018-09-01 01:48:00 +02:00
Bartosz Taudul
9b8a0a8364 Display total frame set time. 2018-09-01 01:48:00 +02:00
Bartosz Taudul
27a2d8595d Time is int64_t. 2018-09-01 01:48:00 +02:00
Bartosz Taudul
cb47ac6165 Actually mark the data as used. 2018-09-01 01:01:41 +02:00
Bartosz Taudul
907da3265d Fix string handling. 2018-08-31 20:08:04 +02:00
Bartosz Taudul
9da3364c77 Display non-rounded FPS in a tooltip. 2018-08-31 18:58:39 +02:00
Bartosz Taudul
230ee71368 Do not recalculate frame stats, if frame data didn't change. 2018-08-31 18:51:00 +02:00
Bartosz Taudul
4ee8e7c372 Also display frames per second for average and median frame times. 2018-08-31 18:43:25 +02:00
Bartosz Taudul
0d6d296e94 Display average and median frame times. 2018-08-31 15:32:30 +02:00
Bartosz Taudul
d977fa004d Enable keyboard navigation. 2018-08-30 02:08:08 +02:00
Bartosz Taudul
0f5ee69668 Add missing include. 2018-08-29 23:25:42 +02:00
Bartosz Taudul
204cc019ea Add file storage helpers. 2018-08-29 23:22:44 +02:00
Bartosz Taudul
81655816f0 Display captured program name and capture time. 2018-08-29 01:02:29 +02:00
Bartosz Taudul
8f1acf2571 Store explicit program name and capture time. 2018-08-29 01:02:29 +02:00
Bartosz Taudul
bc6a553a3a Fetch thread names in memory events. 2018-08-28 01:48:19 +02:00
Bartosz Taudul
a5b99b54c8 Allow specifying FileWrite compression level.
Note that extreme compression level is not exposed in the update
utility.

% time update.exe long.tracy out.tracy
long.tracy (0.3.201) -> out.tracy (0.3.204)
update.exe long.tracy   0,00s user 0,00s system 0% cpu 13,464 total
% time update.exe --hc long.tracy outhc.tracy
long.tracy (0.3.201) -> outhc.tracy (0.3.204)
update.exe --hc long.trac  0,00s user 0,00s system 0% cpu 3:46,23 total
% ls -l long.tracy out*
-rw-r--r-- 1 wolf Brak 1621546031 07-30 22:51 long.tracy
-rw-r--r-- 1 wolf Brak 1621579467 08-26 16:44 out.tracy
-rw-r--r-- 1 wolf Brak 1397610127 08-26 16:48 outhc.tracy
2018-08-26 16:49:27 +02:00
Bartosz Taudul
b3b12f76f3 Add LZ4HC support to FileWrite. 2018-08-26 16:25:43 +02:00
Bartosz Taudul
d835d4da2a Remove display of found allocations count. 2018-08-25 15:07:23 +02:00
Bartosz Taudul
256d905ed5 Hide memory address search in "allocations" section. 2018-08-25 15:05:22 +02:00
Bartosz Taudul
6ad184447a Call stack window may now display frame addresses. 2018-08-21 17:55:59 +02:00
Bartosz Taudul
def6c674b2 Add crash notification to thread tooltip. 2018-08-20 14:37:14 +02:00
Bartosz Taudul
ebcdebaa69 Display crash marker on timeline. 2018-08-20 03:00:45 +02:00
Bartosz Taudul
5fa4cf6e5d Display crash information on visible threads lists. 2018-08-20 02:41:11 +02:00
Bartosz Taudul
b1227cf9fd Display crashed thread in red color. 2018-08-20 02:36:58 +02:00
Bartosz Taudul
99b7a39c52 Save/load crash information. 2018-08-20 02:27:24 +02:00
Bartosz Taudul
619fba41ab Display crash information in info window. 2018-08-20 02:23:55 +02:00
Bartosz Taudul
2a696418cd Cosmetics. 2018-08-20 02:23:55 +02:00
Bartosz Taudul
3b526b074e Send crash report. 2018-08-20 02:23:55 +02:00
Bartosz Taudul
366ea35593 Allow crash event reporting.
When crash happens there's no longer anything to profile -- don't wait
for unfinished zones to finish before sending client terminate
confirmation.
2018-08-20 01:03:16 +02:00
Bartosz Taudul
e0a4b9c56a Save/load host info. 2018-08-19 18:28:48 +02:00
Bartosz Taudul
71bfd15d9e Display host info. 2018-08-19 18:24:43 +02:00
Bartosz Taudul
203d9b4b85 Store host info. 2018-08-19 18:21:56 +02:00
Bartosz Taudul
6224daf9c9 Greatly simplify call stack tree calculation.
Instead of caching paths, compute accumulated cost of each path and only
then create the tree, going through each path just once.
2018-08-19 16:34:26 +02:00
Bartosz Taudul
e1821e439a Add icons to error pop-ups. 2018-08-19 02:59:12 +02:00
Bartosz Taudul
cb51fdec20 Fix multiple file name retrievals in a row. 2018-08-18 20:38:14 +02:00
Bartosz Taudul
42636cfe89 Allow viewing source files from within find zone menu. 2018-08-18 20:35:25 +02:00
Bartosz Taudul
2445cc72bc Add icons to memory menu. 2018-08-18 20:10:14 +02:00
Bartosz Taudul
235da1eded Use focused text for source locations count. 2018-08-18 20:01:57 +02:00
Bartosz Taudul
4060a59b4f Call stack tree nodes that have no siblings are expanded by default. 2018-08-18 20:00:24 +02:00
Bartosz Taudul
a4df805746 Allow filtering messages by thread. 2018-08-18 19:57:36 +02:00
Bartosz Taudul
59293b1850 Enable support for restrict time in call stack tree. 2018-08-18 19:44:29 +02:00
Bartosz Taudul
1410ba6f01 Increase readability. 2018-08-18 19:34:17 +02:00
Bartosz Taudul
79c437ba7f Let's not search in a map. 2018-08-18 19:29:04 +02:00
Bartosz Taudul
bd96c2ce51 Cache call stack tree paths. 2018-08-18 19:13:46 +02:00
Bartosz Taudul
7f0fb851b4 Force inline GetFrameTreeItem(). 2018-08-18 18:46:16 +02:00
Bartosz Taudul
7ef6944246 Remove compare menu visual aids if extended font is not available. 2018-08-18 16:32:26 +02:00
Bartosz Taudul
410616f7f8 Allow viewing source from zone trace. 2018-08-18 14:26:10 +02:00
Bartosz Taudul
fb876344e3 No need for indentVal outside of scope. 2018-08-18 14:14:33 +02:00
Bartosz Taudul
b9e83871a8 Add visual aids to compare menu. 2018-08-18 14:02:20 +02:00
Bartosz Taudul
2852784f55 Separate global and level indices for call stack tree. 2018-08-18 02:23:55 +02:00
Bartosz Taudul
0757930521 Only display "go to parent" if there is a parent. 2018-08-18 02:12:34 +02:00
Bartosz Taudul
69dd0b72c1 Just accept const char ptr in ImGuiColorTextEdit. 2018-08-18 01:16:15 +02:00
Bartosz Taudul
2c7d457755 Highlight source buttons, if source file is displayed. 2018-08-18 00:28:36 +02:00
Bartosz Taudul
e8da52324d Add memory icon to memory usage plot name. 2018-08-18 00:24:23 +02:00
Bartosz Taudul
07952f0a1f Add icons to options menu. 2018-08-18 00:21:01 +02:00
Bartosz Taudul
8db30a9016 Add icon to statistics menu. 2018-08-18 00:09:23 +02:00
Bartosz Taudul
816c91922e Add icons to memory menu. 2018-08-17 23:58:52 +02:00
Bartosz Taudul
441a5e257c Add wifi icon to "waiting for connection" window. 2018-08-17 23:56:06 +02:00
Bartosz Taudul
b613a60c88 Add icons to compare menu. 2018-08-17 23:54:40 +02:00
Bartosz Taudul
4c228fe862 Add icons to find zone menu. 2018-08-17 23:52:03 +02:00
Bartosz Taudul
350fb6a5b0 Add icons to zone info window buttons. 2018-08-17 23:47:01 +02:00
Bartosz Taudul
cdee1d4ce4 Remove obsolete frame rounding setting. 2018-08-17 23:27:14 +02:00
Bartosz Taudul
0aebf614db Add icons to pause/resume button. 2018-08-17 23:24:25 +02:00
Bartosz Taudul
940dda8fc1 Use helper header for icons. 2018-08-17 23:22:13 +02:00
Bartosz Taudul
e1e0e6e140 Centered text helper. 2018-08-17 23:07:58 +02:00
Bartosz Taudul
4c393a2b8d Allow opening source files from withing call stack tree. 2018-08-17 22:51:26 +02:00
Bartosz Taudul
4e23ce9a24 Shared index for all call stack tree nodes. 2018-08-17 22:31:55 +02:00
Bartosz Taudul
07d2aaa1ad Play a little animation when source file cannot be opened. 2018-08-17 22:23:16 +02:00
Bartosz Taudul
841f18885e Add simple animation controller. 2018-08-17 22:23:04 +02:00
Bartosz Taudul
12f2080387 Right click on call stack file name to view source. 2018-08-17 22:06:59 +02:00
Bartosz Taudul
5752156695 Use "call stack" instead of "callstack". 2018-08-17 22:00:35 +02:00
Bartosz Taudul
0de3e088d9 Use icons in main profiler window buttons. 2018-08-17 19:03:35 +02:00
Bartosz Taudul
92284b65e7 Use save file icon. 2018-08-17 18:36:06 +02:00
Bartosz Taudul
9b1af05472 Use power off icon. 2018-08-17 18:33:56 +02:00
Bartosz Taudul
5125c2487b Use exclamation icon instead of ascii representation. 2018-08-17 17:57:13 +02:00
Bartosz Taudul
2b3490e6f7 Handle window title setter callback in View. 2018-08-17 17:24:18 +02:00
Bartosz Taudul
b7ac41ab1b Make the warning signs stand out more. 2018-08-17 17:08:16 +02:00
Bartosz Taudul
b76707ffa1 Render main profiler view in whole window. 2018-08-17 17:00:56 +02:00
Bartosz Taudul
df7db3bd2b Notify profiler about root window size. 2018-08-17 16:54:56 +02:00
Bartosz Taudul
9416f5bb49 Add close button to loaded traces (not the window close one). 2018-08-17 16:34:58 +02:00
Bartosz Taudul
facae0b9e1 Draw text editor with potential source code. 2018-08-17 15:33:12 +02:00
Bartosz Taudul
d45efbe640 Don't reload source file, if it's already there. 2018-08-17 15:24:52 +02:00
Bartosz Taudul
5dc3d73ad6 Set cursor on proper line. 2018-08-17 15:21:37 +02:00
Bartosz Taudul
5cd61c4b07 Text editor needs fixed-width font. 2018-08-17 15:18:09 +02:00
Bartosz Taudul
5bd35eb34e Open file preview in text editor. 2018-08-17 14:54:28 +02:00
Bartosz Taudul
9dbc56beb6 Initialize text editor. 2018-08-17 14:44:41 +02:00
Bartosz Taudul
6bf7b85260 Add file existence check. 2018-08-17 13:35:33 +02:00
Bartosz Taudul
27b2851291 Declare Vector moves as noexcept. 2018-08-17 13:10:27 +02:00
Bartosz Taudul
8cbb518f28 Display average allocation sizes. 2018-08-14 18:48:29 +02:00
Bartosz Taudul
df14cf5330 Implement callstack tree of memory allocations. 2018-08-14 18:37:06 +02:00
Bartosz Taudul
c2c0f887aa Display srcloc, callstack counts. 2018-08-14 16:41:27 +02:00
Bartosz Taudul
a15a287a6b Don't over-allocate vectors, when exact needed size is known.
This reduces memory usage when loading saved traces. Memory usage
reduction observed on a selected number of traces:

5625.76 MB -> 5330.29 MB
3292.94 MB -> 2978.66 MB
632.77 MB  -> 479.58 MB
681.32 MB  -> 506.27 MB
11.9 GB    -> 11.22 GB
854.21 MB  -> 806.17 MB
10.57 GB   -> 7175.31 MB
67.38 MB   -> 66.63 MB
2026.12 MB -> 1744.2 MB
86.55 MB   -> 85.57 MB
343.64 MB  -> 244.81 MB
201.93 MB  -> 162.25 MB
2018-08-09 19:41:15 +02:00
Bartosz Taudul
a14a6fa8fb Don't shadow variables. 2018-08-09 19:41:15 +02:00
Bartosz Taudul
dbf4de0694 Allow exact size allocations in Vector. 2018-08-09 19:41:15 +02:00
Bartosz Taudul
68dd90cb94 Also display exact memory allocation size. 2018-08-09 02:27:55 +02:00
Bartosz Taudul
92c1685528 Fix shortening of negative memory values. 2018-08-09 02:25:47 +02:00
Bartosz Taudul
96ecf47ecf Add profiler FPS and memory usage to info window. 2018-08-08 20:53:01 +02:00
Bartosz Taudul
4a9cbafc7e Proper formatting of memory sizes. 2018-08-08 20:38:58 +02:00
Bartosz Taudul
7d465aab1d Add memory size formatting. 2018-08-08 20:38:58 +02:00
Bartosz Taudul
29c6498890 Add minimal trace info window. 2018-08-08 19:25:13 +02:00
Bartosz Taudul
a51da71fa4 Add lock, plot counts to worker. 2018-08-08 19:21:53 +02:00
Bartosz Taudul
237bb06dd6 Move frame set selection button to the right. 2018-08-08 18:40:31 +02:00
Bartosz Taudul
3e622cda6b Decapitalize "zone" in "Find Zone". 2018-08-08 18:40:20 +02:00
Bartosz Taudul
2a08687afe Left click on message marker displays it on the msg list. 2018-08-05 16:57:21 +02:00
Bartosz Taudul
1d6f388a81 Middle-click on message marker to center on it. 2018-08-05 16:47:49 +02:00
Bartosz Taudul
1d0203ac17 Abstracted away one-frame-decay values. 2018-08-05 16:45:34 +02:00
Bartosz Taudul
44e027ad11 Highlight message markers on timeline. 2018-08-05 16:37:51 +02:00
Bartosz Taudul
eb7064f13d Display frame set tooltip. 2018-08-05 13:33:18 +02:00
Bartosz Taudul
44fecc4390 Improve rendering of small discontinuous frames. 2018-08-05 13:29:44 +02:00
Bartosz Taudul
d36b0aff45 Fix progress of loading GPU zones. 2018-08-05 13:07:58 +02:00
Bartosz Taudul
d590fa7ce2 Display that frames are discontinuous in options. 2018-08-05 02:30:41 +02:00
Bartosz Taudul
cb9f243987 Fix navigation in discontinuous frames. 2018-08-05 02:27:59 +02:00
Bartosz Taudul
947f829797 Fix drawing discontinuous frames. 2018-08-05 02:23:26 +02:00
Bartosz Taudul
9d051cf5ee Add support for discontinuous frames. 2018-08-05 02:15:54 +02:00
Bartosz Taudul
cbb45160af Disable zoom anim on user interaction. 2018-08-05 01:23:00 +02:00
Bartosz Taudul
1b44b31eff Prevent range-zoom when range has zero length. 2018-08-05 01:20:26 +02:00
Bartosz Taudul
2acea5da3c Also draw zig-zag on too-small zones. 2018-08-04 23:32:53 +02:00
Bartosz Taudul
3869c1dbca Count frames from 1, not 0. 2018-08-04 23:21:58 +02:00
Bartosz Taudul
6b8a3b25ba Fix drawing of last frame. 2018-08-04 23:19:35 +02:00
Bartosz Taudul
9cd6932b13 Draw zig-zag in place of invisible (too small) frames. 2018-08-04 23:11:47 +02:00
Bartosz Taudul
f385e5520b Draw frame separators only if the frame set is selected. 2018-08-04 21:51:46 +02:00
Bartosz Taudul
1282aa9739 Darken frame set counter, if it is disabled. 2018-08-04 21:48:40 +02:00
Bartosz Taudul
37f42a52fb Proper frame names on frames graph. 2018-08-04 21:46:26 +02:00
Bartosz Taudul
acabdf3c2a Implement switching between frame sets. 2018-08-04 21:43:29 +02:00
Bartosz Taudul
88d9307d7a Allow disabling frame sets. 2018-08-04 21:26:01 +02:00
Bartosz Taudul
1ea1cd57b3 Use proper frame names. 2018-08-04 21:19:24 +02:00
Bartosz Taudul
aad3e941e5 Draw multiple frame sets. 2018-08-04 21:10:45 +02:00
Bartosz Taudul
83eac36949 Add FrameData vector accessor. 2018-08-04 21:10:45 +02:00
Bartosz Taudul
9b4348b497 Handle frame name queries. 2018-08-04 21:10:45 +02:00
Bartosz Taudul
4424a7d7e8 Last time should never be zero. 2018-08-04 21:10:45 +02:00
Bartosz Taudul
5e9b2e36be Make getting start of time less cryptic. 2018-08-04 21:10:45 +02:00
Bartosz Taudul
23dfc2e3fc Multiple frame sets support. 2018-08-04 21:10:45 +02:00
Bartosz Taudul
0b4c2724ce Add strings to map directly in StringDiscovery. 2018-08-04 17:10:45 +02:00
Bartosz Taudul
ada9f78678 Use StringDiscovery for plots. 2018-08-04 16:33:03 +02:00
Bartosz Taudul
d2c866377e Extract unique string discovery from worker.
This class is responsible for handling data sets that should be grouped
together, but which may come with different name pointers.

It is a generalization of the plot merging functionality.
2018-08-04 16:25:11 +02:00
Bartosz Taudul
e174e2c12a Remove obsolete comment.
Nothing happens with the source data, as the strings are uniquely stored
in the StoreString() function.
2018-08-04 15:46:10 +02:00
Bartosz Taudul
6ef2d2d9a3 Track progress of loading plots. 2018-08-04 15:17:37 +02:00
Bartosz Taudul
8de214b4d5 Display number of events for items in options menu. 2018-08-04 15:09:52 +02:00
Bartosz Taudul
ea588072f2 Stop connection window from jumping around. 2018-08-04 14:50:31 +02:00
Bartosz Taudul
672925ac04 Add separators to frame numbers. 2018-07-29 21:56:30 +02:00
Bartosz Taudul
0d76ccfb71 Add days to time-to-string converter. 2018-07-29 21:14:56 +02:00
Bartosz Taudul
d04126eabe Make time-to-string more readable. 2018-07-29 21:09:11 +02:00
Bartosz Taudul
2eddbeb164 Use ctrl key to zoom-out using selection range. 2018-07-29 20:53:29 +02:00
Bartosz Taudul
1cf168c95e Fix impossible zoom animation. 2018-07-29 20:53:29 +02:00
Bartosz Taudul
310203101f Stop zoom-range-selection when zooming to range.
This also disables zoom range selection when middle click is used to
zoom view to a selected zone.
2018-07-29 20:53:29 +02:00
Bartosz Taudul
b4f4fcfde9 Add zoom-to-middle-mouse-button-selection-range. 2018-07-29 20:15:49 +02:00
Bartosz Taudul
18896044c4 Display explicit names of loaded things. 2018-07-29 16:56:46 +02:00
Bartosz Taudul
9f13475b52 Track trace version in worker. 2018-07-29 15:33:48 +02:00
Bartosz Taudul
13509c14f1 Save size of 'active' and 'frees' memory data structures. 2018-07-29 15:29:56 +02:00
Bartosz Taudul
00d07e39f7 Save threadExpand size to allow vector preallocation. 2018-07-29 15:19:44 +02:00
Bartosz Taudul
bff6eb4c34 Save source location zones counts.
This allows preallocation of zones-in-source-location vectors.
2018-07-29 14:58:01 +02:00
Bartosz Taudul
12b90d1630 Move tracy version to a separate header. 2018-07-29 14:20:44 +02:00
Bartosz Taudul
ccc5c37af5 Always count source location zones. 2018-07-29 14:16:13 +02:00
Bartosz Taudul
4456c8a454 Reserve space for string data. 2018-07-29 14:13:29 +02:00
Bartosz Taudul
766bf45a2b Fix initialization of atomics. 2018-07-28 20:13:06 +02:00
Bartosz Taudul
8ddf32bc6b Highlight zones with the same srcloc on hover. 2018-07-28 19:53:11 +02:00
Bartosz Taudul
648070e6a1 Include each loaded zone in sub progress. 2018-07-28 19:22:28 +02:00
Bartosz Taudul
4741dab833 Track sub progress. 2018-07-28 19:05:01 +02:00
Bartosz Taudul
a14238c199 Add sub progress display. 2018-07-28 18:56:52 +02:00
Bartosz Taudul
6a3a9c0bc5 Load second trace on a separate thread. 2018-07-28 18:47:33 +02:00
Bartosz Taudul
a46425f4e9 Adjust load stages. 2018-07-28 18:26:00 +02:00
Bartosz Taudul
0bf0ceed3d Track trace loading progress. 2018-07-28 17:59:17 +02:00
Bartosz Taudul
a54ff1f56d Use 'μ' instead of 'u' to indicate micro. 2018-07-28 01:06:36 +02:00
Bartosz Taudul
149812c071 Always keep main profiler window on bottom. 2018-07-26 23:38:45 +02:00
Bartosz Taudul
d84d0b7754 Don't try to read empty timelines. 2018-07-22 21:15:28 +02:00
Bartosz Taudul
25116a8059 Don't try to compress invalid thread. 2018-07-22 21:13:42 +02:00
Bartosz Taudul
010cf66e43 Call Vector destructors. 2018-07-22 21:01:45 +02:00
Bartosz Taudul
29159069ab Properly initialize child index. 2018-07-22 20:14:55 +02:00
Bartosz Taudul
7d7877517e Also remove child vectors from GPU events. 2018-07-22 19:47:01 +02:00
Bartosz Taudul
3a934b2ba3 Store children vectors in a separate data collection.
This reduces per-zone memory cost by 9 bytes if there are no children
and increases it by 4 bytes, if there are children. This is universally
a better solution, as the following data shows:

+++ /home/wolf/desktop/tracy-old/android.tracy +++
Vectors: 2794480
Size 0: 2373070 (84.92%)
Size 1: 70237 (2.51%)
Size 2+: 351173 (12.57%)
+++ /home/wolf/desktop/tracy-old/asset-new.tracy +++
Vectors: 1799227
Size 0: 1482691 (82.41%)
Size 1: 93272 (5.18%)
Size 2+: 223264 (12.41%)
+++ /home/wolf/desktop/tracy-old/asset-new-id.tracy +++
Vectors: 1977996
Size 0: 1640817 (82.95%)
Size 1: 97198 (4.91%)
Size 2+: 239981 (12.13%)
+++ /home/wolf/desktop/tracy-old/asset-old.tracy +++
Vectors: 1782395
Size 0: 1471437 (82.55%)
Size 1: 88813 (4.98%)
Size 2+: 222145 (12.46%)
+++ /home/wolf/desktop/tracy-old/big.tracy +++
Vectors: 180794047
Size 0: 172696094 (95.52%)
Size 1: 2799772 (1.55%)
Size 2+: 5298181 (2.93%)
+++ /home/wolf/desktop/tracy-old/darkrl.tracy +++
Vectors: 12014129
Size 0: 11611324 (96.65%)
Size 1: 134980 (1.12%)
Size 2+: 267825 (2.23%)
+++ /home/wolf/desktop/tracy-old/mem.tracy +++
Vectors: 383097
Size 0: 321932 (84.03%)
Size 1: 854 (0.22%)
Size 2+: 60311 (15.74%)
+++ /home/wolf/desktop/tracy-old/new.tracy +++
Vectors: 77536
Size 0: 63035 (81.30%)
Size 1: 8886 (11.46%)
Size 2+: 5615 (7.24%)
+++ /home/wolf/desktop/tracy-old/selfprofile.tracy +++
Vectors: 22940871
Size 0: 22704868 (98.97%)
Size 1: 73000 (0.32%)
Size 2+: 163003 (0.71%)
+++ /home/wolf/desktop/tracy-old/tbrowser.tracy +++
Vectors: 962682
Size 0: 695380 (72.23%)
Size 1: 43007 (4.47%)
Size 2+: 224295 (23.30%)
+++ /home/wolf/desktop/tracy-old/virtualfile_hc.tracy +++
Vectors: 529170
Size 0: 449386 (84.92%)
Size 1: 15694 (2.97%)
Size 2+: 64090 (12.11%)
+++ /home/wolf/desktop/tracy-old/zfile_hc.tracy +++
Vectors: 264849
Size 0: 220589 (83.29%)
Size 1: 9386 (3.54%)
Size 2+: 34874 (13.17%)
2018-07-22 16:05:50 +02:00
Bartosz Taudul
eb1475ebd4 Add single-value Vector constructor. 2018-07-22 16:01:58 +02:00
Bartosz Taudul
be40ee9dbc Fix crash when there's no callstack. 2018-07-22 00:13:23 +02:00
Bartosz Taudul
59c188a18d Invalid callstack is 0, not UINT64_MAX. 2018-07-22 00:13:11 +02:00
Bartosz Taudul
fbfc0e151d Replace combo lists with radio buttons. 2018-07-22 00:04:41 +02:00
Bartosz Taudul
d1cef20c0b Allow sorting groups by time. 2018-07-21 23:58:50 +02:00
Bartosz Taudul
59e0f3d490 Use precalculated zone group time. 2018-07-21 23:54:35 +02:00
Bartosz Taudul
cacbac8915 Calculate and display group times. 2018-07-21 23:53:11 +02:00
Bartosz Taudul
d03356c1f5 Rename "threads" to "groups" in find zone data structs. 2018-07-21 23:41:50 +02:00
Bartosz Taudul
36c207fb51 Fix some unused variables. 2018-07-21 21:35:35 +02:00
Bartosz Taudul
9291a88020 Zones can be now also grouped by call stack. 2018-07-21 20:26:13 +02:00
Bartosz Taudul
3c6baf53da Memory alloc range hover also works on allocation lists. 2018-07-19 15:55:15 +02:00
Bartosz Taudul
389e0facd3 Draw memory allocation range on mouse hover on mem event. 2018-07-19 15:43:45 +02:00
Bartosz Taudul
108ba20af8 Fix closing memory allocation info window. 2018-07-18 00:25:02 +02:00
Bartosz Taudul
e8726c72b1 Display memory allocation range on memory plot. 2018-07-18 00:21:16 +02:00
Bartosz Taudul
9ab09d9867 Only show "same zone" if zones are valid. 2018-07-17 23:32:29 +02:00
Bartosz Taudul
84d0f1a3ea Indicate inspected memory address on alloc list. 2018-07-17 23:17:46 +02:00
Bartosz Taudul
cf3bf4378b No need to return MemEvent ptr from DrawAddress(). 2018-07-17 23:13:56 +02:00
Bartosz Taudul
18a460e782 Clicking on mem address in alloc list displays info window. 2018-07-17 23:08:10 +02:00
Bartosz Taudul
0889334462 Add memory allocation info window. 2018-07-17 23:03:03 +02:00
Bartosz Taudul
6485a090ed Separate small callstack button setup. 2018-07-17 22:53:38 +02:00
Bartosz Taudul
fc310ce15a Fix check. 2018-07-17 18:29:07 +02:00
Rokas Kupstys
8a8faa3d6c Added __has_include(<execution>) back. 2018-07-17 19:25:26 +03:00
Rokas Kupstys
5c75fe292f Fix msvc builds when required c++ standard version is set to lower than c++17.
Also use latest available c++ standard which allows using older VS versions that only support c++14.
2018-07-17 18:29:48 +03:00
Rokas Kupstys
ab8d2c553a Merged in rokups/tracy/fix-unix-build (pull request #15)
Fix build errors with some compilers due to using std::max(float, double).
2018-07-17 14:21:20 +00:00
Rokas Kupstys
064385fc62 Define ImVec2 math operators only when IMGUI_DEFINE_MATH_OPERATORS is undefined. 2018-07-17 16:37:45 +03:00
Rokas Kupstys
abfa90012f Fix build errors with some compilers due to using std::max(float, double). 2018-07-17 16:36:41 +03:00
Bartosz Taudul
807d2a02bc Display collapsed zones counts with separators. 2018-07-16 01:24:43 +02:00
Bartosz Taudul
acf3bc7d43 Show only contended locks by default. 2018-07-15 20:29:35 +02:00
Bartosz Taudul
c6ea032de3 GPU source location may not yet be available. 2018-07-15 19:00:40 +02:00
Bartosz Taudul
21da3bca63 Don't create lz4buf on stack. 2018-07-14 16:02:33 +02:00
Bartosz Taudul
561d2dc360 Use the fastest mutex available.
The selection is based on the following test results:

MSVC:
=== Lock test, 6 threads ===
=> NonRecursiveBenaphore
     No contention: 11.641 ns/iter
     2 thread contention: 141.559 ns/iter
     3 thread contention: 242.733 ns/iter
     4 thread contention: 409.807 ns/iter
     5 thread contention: 561.544 ns/iter
     6 thread contention: 785.845 ns/iter
=> std::mutex
     No contention: 19.190 ns/iter
     2 thread contention: 39.305 ns/iter
     3 thread contention: 58.999 ns/iter
     4 thread contention: 59.532 ns/iter
     5 thread contention: 103.539 ns/iter
     6 thread contention: 110.314 ns/iter
=> std::shared_timed_mutex
     No contention: 45.487 ns/iter
     2 thread contention: 96.351 ns/iter
     3 thread contention: 142.871 ns/iter
     4 thread contention: 184.999 ns/iter
     5 thread contention: 336.608 ns/iter
     6 thread contention: 542.551 ns/iter
=> std::shared_mutex
     No contention: 10.861 ns/iter
     2 thread contention: 17.495 ns/iter
     3 thread contention: 31.126 ns/iter
     4 thread contention: 40.468 ns/iter
     5 thread contention: 15.677 ns/iter
     6 thread contention: 64.505 ns/iter

Cygwin (clang):
=== Lock test, 6 threads ===
=> NonRecursiveBenaphore
     No contention: 11.536 ns/iter
     2 thread contention: 121.082 ns/iter
     3 thread contention: 396.430 ns/iter
     4 thread contention: 672.555 ns/iter
     5 thread contention: 1327.761 ns/iter
     6 thread contention: 14151.955 ns/iter
=> std::mutex
     No contention: 62.583 ns/iter
     2 thread contention: 3990.464 ns/iter
     3 thread contention: 7161.189 ns/iter
     4 thread contention: 9870.820 ns/iter
     5 thread contention: 12355.178 ns/iter
     6 thread contention: 14694.903 ns/iter
=> std::shared_timed_mutex
     No contention: 91.687 ns/iter
     2 thread contention: 1115.037 ns/iter
     3 thread contention: 4183.792 ns/iter
     4 thread contention: 15283.491 ns/iter
     5 thread contention: 27812.477 ns/iter
     6 thread contention: 35028.140 ns/iter
=> std::shared_mutex
     No contention: 91.764 ns/iter
     2 thread contention: 1051.826 ns/iter
     3 thread contention: 5574.720 ns/iter
     4 thread contention: 15721.416 ns/iter
     5 thread contention: 27721.487 ns/iter
     6 thread contention: 35420.404 ns/iter

Linux (x64):
=== Lock test, 6 threads ===
=> NonRecursiveBenaphore
     No contention: 13.487 ns/iter
     2 thread contention: 210.317 ns/iter
     3 thread contention: 430.855 ns/iter
     4 thread contention: 510.533 ns/iter
     5 thread contention: 1003.609 ns/iter
     6 thread contention: 1787.683 ns/iter
=> std::mutex
     No contention: 12.403 ns/iter
     2 thread contention: 157.122 ns/iter
     3 thread contention: 186.791 ns/iter
     4 thread contention: 265.073 ns/iter
     5 thread contention: 283.778 ns/iter
     6 thread contention: 270.687 ns/iter
=> std::shared_timed_mutex
     No contention: 21.509 ns/iter
     2 thread contention: 150.179 ns/iter
     3 thread contention: 256.574 ns/iter
     4 thread contention: 415.351 ns/iter
     5 thread contention: 611.532 ns/iter
     6 thread contention: 944.695 ns/iter
=> std::shared_mutex
     No contention: 20.805 ns/iter
     2 thread contention: 157.034 ns/iter
     3 thread contention: 244.025 ns/iter
     4 thread contention: 406.269 ns/iter
     5 thread contention: 387.985 ns/iter
     6 thread contention: 468.550 ns/iter

Linux (arm64):
=== Lock test, 6 threads ===
=> NonRecursiveBenaphore
     No contention: 20.891 ns/iter
     2 thread contention: 211.037 ns/iter
     3 thread contention: 409.962 ns/iter
     4 thread contention: 657.441 ns/iter
     5 thread contention: 828.405 ns/iter
     6 thread contention: 1131.827 ns/iter
=> std::mutex
     No contention: 50.884 ns/iter
     2 thread contention: 103.620 ns/iter
     3 thread contention: 332.429 ns/iter
     4 thread contention: 620.802 ns/iter
     5 thread contention: 783.943 ns/iter
     6 thread contention: 834.002 ns/iter
=> std::shared_timed_mutex
     No contention: 64.948 ns/iter
     2 thread contention: 173.191 ns/iter
     3 thread contention: 490.352 ns/iter
     4 thread contention: 660.668 ns/iter
     5 thread contention: 1014.546 ns/iter
     6 thread contention: 1451.553 ns/iter
=> std::shared_mutex
     No contention: 64.521 ns/iter
     2 thread contention: 195.222 ns/iter
     3 thread contention: 490.819 ns/iter
     4 thread contention: 654.786 ns/iter
     5 thread contention: 955.759 ns/iter
     6 thread contention: 1282.544 ns/iter
2018-07-14 00:39:01 +02:00
Bartosz Taudul
a26ab263dd Select/unselect all plot visibility. 2018-07-14 00:10:38 +02:00
Bartosz Taudul
f4f7e58e88 Add select/unselect all threads visibility option. 2018-07-14 00:08:37 +02:00
Arvid Gerstmann
0b1c2ebc8f Define M_PI_2 if not already done 2018-07-13 23:41:12 +02:00
Bartosz Taudul
96042891f7 Reintroduce explicit template type for std::lock_guard.
Requested in issue #4 for support of older MSVC versions.
2018-07-13 12:30:29 +02:00
Bartosz Taudul
90a874f311 Require MSVC 15.7 for <execution> support. 2018-07-13 12:26:02 +02:00
Bartosz Taudul
c8b5b9447d Ignore dangling memory frees in on-demand mode. 2018-07-12 01:35:32 +02:00
Bartosz Taudul
e5064dec1e Store on-demand connection state. 2018-07-12 01:21:04 +02:00
Bartosz Taudul
d1ddaa8d59 Store frame offset in trace dumps. 2018-07-10 22:56:41 +02:00
Bartosz Taudul
fe449f366f Use frame offset for frame count and missed frames display. 2018-07-10 22:51:24 +02:00
Bartosz Taudul
a78981e040 Store on-demand frame offset. 2018-07-10 22:42:00 +02:00
Bartosz Taudul
6a9caabc63 Send on-demand initial payload message. 2018-07-10 22:37:39 +02:00
Bartosz Taudul
c056f3be41 Send keep alive messages to determine if client disconnected. 2018-07-10 21:39:17 +02:00
Bartosz Taudul
a5381337f6 Don't use obsolete function. 2018-07-10 20:49:29 +02:00
Bartosz Taudul
045f792e84 Keep one profiler window size for all captures. 2018-07-10 20:47:09 +02:00
Bartosz Taudul
c7952e4d4f Move "without profiling" to tooltip in zone info window. 2018-06-29 19:02:44 +02:00
Bartosz Taudul
4ae317109d Improve compare menu histogram tooltip. 2018-06-29 18:57:49 +02:00
Bartosz Taudul
b190a15ef6 Display numerical thread id in memory plot tooltip. 2018-06-29 18:54:19 +02:00
Bartosz Taudul
9329c761f6 Improve plot tooltips. 2018-06-29 18:52:28 +02:00