Bartosz Taudul
3e4d3efbdb
Extract frame number getter.
2019-08-26 19:01:51 +02:00
Bartosz Taudul
e5a11ad593
Allow sorting CPU data table by different columns.
2019-08-25 00:17:06 +02:00
Bartosz Taudul
faac08865a
Display basic information about CPU usage.
2019-08-18 12:28:38 +02:00
Bartosz Taudul
8e71e2dba5
Draw per-CPU global context switch data.
2019-08-16 18:22:57 +02:00
Bartosz Taudul
9e0fe226df
Add small font.
2019-08-16 16:02:57 +02:00
Bartosz Taudul
659907c972
Store srcloc identifiers using 16 bit.
...
This reduces various structure sizes by 2 bytes. Memory usage reduction
on various traces:
big 11 GB -> 10.62 GB
chicken 2436 MB -> 2342 MB
drl-light-big 1761 MB -> 1706 MB
q3bsp-mt 6469 MB -> 6277 MB
2019-08-15 20:15:48 +02:00
Bartosz Taudul
7549c50bab
Fix time range reset condition.
2019-08-14 21:53:09 +02:00
Bartosz Taudul
26f417a841
Add option to display running time in find zone menu.
2019-08-14 21:33:43 +02:00
Bartosz Taudul
9ec0724ffb
Support dynamic recalculation of min, max and total time.
2019-08-14 21:33:42 +02:00
Bartosz Taudul
a5ef38812e
Display list of regions where thread was waiting.
2019-08-14 18:28:52 +02:00
Bartosz Taudul
858c94e12e
Add interface for calculation zone running time.
2019-08-14 18:28:52 +02:00
Bartosz Taudul
71a5cffc13
Add context switch tooltips.
2019-08-13 16:20:43 +02:00
Bartosz Taudul
d77c87ae1c
Allow disabling context switch drawing.
2019-08-13 15:16:46 +02:00
Bartosz Taudul
874a2596f7
Improve context switches drawing.
2019-08-13 15:16:46 +02:00
Bartosz Taudul
7f856a1b16
Very bad context switch visualization.
2019-08-13 13:10:37 +02:00
Bartosz Taudul
a9b41eb657
Rework processing bad files.
2019-08-12 12:04:27 +02:00
Bartosz Taudul
530f293c49
Better way to handle auto scrolling.
2019-08-10 22:06:51 +02:00
Bartosz Taudul
a4e7a341c0
Proper handling of disconnect request.
2019-08-01 23:14:09 +02:00
Bartosz Taudul
f41834370c
Also display number of visible messages.
2019-07-31 02:16:14 +02:00
Bartosz Taudul
be3b458f28
Load second trace user data in compare menu.
2019-07-26 23:25:03 +02:00
Bartosz Taudul
27965e8690
Add user data storage handler.
2019-07-26 23:15:12 +02:00
Bartosz Taudul
e5a3d7aa25
Workaround scroll-to-message regression.
2019-07-24 21:40:39 +02:00
Bartosz Taudul
5da2076214
Add optional 2x zoom to frame images playback.
2019-07-19 00:51:52 +02:00
Bartosz Taudul
eceff55f5a
Add message filtering.
2019-07-13 01:48:43 +02:00
Bartosz Taudul
387674a40a
Auto-scroll message list to bottom.
2019-07-13 01:25:37 +02:00
Bartosz Taudul
7fb9bde9e9
Pass big font to TracyView.
2019-07-12 19:16:56 +02:00
Bartosz Taudul
689f4999e3
Reorder threads by drag and drop.
2019-07-11 20:29:20 +02:00
Bartosz Taudul
fc106079c5
Remove CPU migration highlight for zones.
2019-06-26 21:35:09 +02:00
Bartosz Taudul
b8794f64be
Extract crash tooltip to a separate function.
2019-06-26 21:01:54 +02:00
Bartosz Taudul
e33690c5f3
Allow switching whitespace visibility in source code view.
2019-06-22 14:24:39 +02:00
Bartosz Taudul
1ea647a1dd
Use proper type for srcloc highlight decay value.
2019-06-22 14:06:25 +02:00
Bartosz Taudul
d44c4b00fb
Implement outliers cutoff in compare menu.
2019-06-18 22:27:25 +02:00
Bartosz Taudul
99e638b3fc
Normalize values during compare by default.
2019-06-18 19:41:20 +02:00
Bartosz Taudul
f27cead040
Add hovered frame markers on histogram.
2019-06-17 01:01:56 +02:00
Bartosz Taudul
099933e66d
Add outlier removal to frame time histogram.
2019-06-17 00:44:34 +02:00
Bartosz Taudul
6a4f7ce1ca
Track currently hovered zone.
2019-06-16 17:05:56 +02:00
Bartosz Taudul
d683699ba9
Don't recalculate histogram bins every frame.
...
This remedies slowdown that was only visible when a histogram of a large
number of zones (~100 million) was displayed. The slowdown was caused by
std::accumulate() calls over whole set of zones.
2019-06-16 16:41:52 +02:00
Bartosz Taudul
8009c6412e
Add "minimum values in bin" parameter to histogram.
2019-06-16 01:58:44 +02:00
Bartosz Taudul
516bdcec9b
Rewrite playback logic.
2019-06-13 00:12:06 +02:00
Bartosz Taudul
a936f22a91
Add frame images playback window.
2019-06-12 01:48:11 +02:00
Bartosz Taudul
9cd95db4e3
Delay creation of frame image texture.
2019-06-06 23:14:49 +02:00
Bartosz Taudul
129155946b
Actually set current texture pointer.
2019-06-06 23:10:01 +02:00
Bartosz Taudul
beea31edd0
Show frame images in frame tooltips.
2019-06-06 22:22:57 +02:00
Bartosz Taudul
79215ea73e
Implement linked selection in compare menu.
2019-06-02 15:40:19 +02:00
Bartosz Taudul
3a561b4eed
Save thread state should be atomic.
2019-06-02 13:15:55 +02:00
Bartosz Taudul
0059cb3ab0
Switch default namespace display to "short".
2019-06-02 12:57:42 +02:00
Bartosz Taudul
c93170cd42
Move saving trace dump to a separate thread.
2019-05-28 19:56:18 +02:00
Bartosz Taudul
30c398cd96
Don't allocate memory for empty pages in memory map.
2019-05-19 13:15:54 +02:00
Bartosz Taudul
54c8a882c9
Allow restricting call stack frame tree to active allocations.
2019-05-09 13:37:28 +02:00
Bartosz Taudul
a18a6869bc
Allow limiting frame stats to visible frames.
2019-04-26 23:19:31 +02:00
Bartosz Taudul
a7886cf82c
Replace linear search with hash lookup.
2019-04-03 16:24:16 +02:00
Bartosz Taudul
cd774b9e96
Store two entries in zone self time cache.
...
This accounts for situation when zone information window is open and a
tooltip for another zone is displayed.
2019-03-30 00:54:22 +01:00
Bartosz Taudul
48a07bf4f8
Cache zone self times.
2019-03-30 00:52:25 +01:00
Bartosz Taudul
e957590350
Mirror thread data in a reorderable vector.
2019-03-24 13:37:43 +01:00
Bartosz Taudul
fa556d2d65
Use common access-and-insert pattern for VisData.
2019-03-19 22:12:24 +01:00
Bartosz Taudul
02db5f52d1
Pass nspx to zone drawing functions.
2019-03-18 18:40:03 +01:00
Bartosz Taudul
e034eabeb8
Animate plot ranges.
2019-03-17 17:21:30 +01:00
Bartosz Taudul
b6ccb9d686
Allocation times may be displayed relative to zone start.
2019-03-17 16:53:09 +01:00
Bartosz Taudul
d2cca5dc3f
Allow custom time offset in memory allocation list.
2019-03-17 16:47:44 +01:00
Bartosz Taudul
016f7ac4b6
Allow retrieval of zone's thread data.
2019-03-17 16:17:47 +01:00
Bartosz Taudul
0748655797
Allow opening source file view from statistics menu.
2019-03-09 00:15:23 +01:00
Bartosz Taudul
422ed1f452
Special mode for callstack grouping in find zone menu.
2019-02-27 20:37:38 +01:00
Bartosz Taudul
851ae9077b
Make small callstack button tooltip optional.
2019-02-27 19:59:49 +01:00
Bartosz Taudul
c78aedae62
Zoom-to-range for lock labels.
2019-02-24 17:30:58 +01:00
Bartosz Taudul
af3eb93e4a
Hide tracks that don't have anything to display.
2019-02-23 01:28:12 +01:00
Bartosz Taudul
d0c1b9bf67
Proper formatting of plot values.
2019-02-21 23:07:32 +01:00
Bartosz Taudul
f1dd4ef3d9
Animate thread position and height.
2019-02-21 21:18:41 +01:00
Bartosz Taudul
e945902f40
Merge visibility and show full options into one struct.
2019-02-21 20:24:08 +01:00
Bartosz Taudul
bc713463d8
Improve zooming animation.
2019-02-21 20:00:29 +01:00
Bartosz Taudul
1e32821097
Move drawing lock header to a separate function.
2019-02-17 16:49:03 +01:00
Bartosz Taudul
ea4f4ebb3a
Highlight selected/hovered lock.
2019-02-17 16:20:56 +01:00
Bartosz Taudul
f06609eb61
GPU child zones time getter.
2019-02-14 01:28:12 +01:00
Bartosz Taudul
740486a0ce
Add children locations grouping button.
2019-02-10 16:14:13 +01:00
Dedmen Miller
59ae188a7f
Cleanup
2019-02-07 14:51:34 +01:00
Dedmen Miller
92c872dfc0
Added sorting for findZone zonelist
2019-02-07 12:25:05 +01:00
Bartosz Taudul
0e6350d95e
Grouping by function names is a more sane default.
2019-02-06 23:09:38 +01:00
Bartosz Taudul
044b7e1522
Add function name grouping controls.
2019-02-06 21:45:26 +01:00
Bartosz Taudul
c2e9c00a38
Add top-down call stack memory tree.
2019-02-06 13:53:14 +01:00
Bartosz Taudul
c689a494da
Move call stack paths calculation to a separate function.
2019-02-06 13:46:50 +01:00
Bartosz Taudul
b0d319890b
Allow sorting find zone groups by mean time per call.
2019-01-30 01:54:18 +01:00
Bartosz Taudul
92766430d9
Add "self time" checkbox to find zone menu.
2019-01-23 14:25:28 +01:00
Bartosz Taudul
118fab1561
Fast version of zone child time getter.
...
This one can only be used when all child zones are properly ended.
2019-01-23 13:59:14 +01:00
Bartosz Taudul
06292f1a3f
Add zone child time getter.
2019-01-23 13:39:44 +01:00
Bartosz Taudul
cb50cf9de6
Last time is stored in worker.
2019-01-08 15:44:29 +01:00
Bartosz Taudul
77c9a8c407
Add support for notification text in View.
2019-01-06 19:14:24 +01:00
Bartosz Taudul
2d143ce516
Add support for handling keyboard shortcuts.
2018-12-22 17:36:20 +01:00
Bartosz Taudul
4bb4a568ca
Move initialization of View values to header.
2018-12-22 17:22:26 +01:00
Bartosz Taudul
cd8d86edf3
Allow hiding "[unknown frames]" entries.
2018-12-21 21:10:29 +01:00
Bartosz Taudul
df1a125fc0
Mirror find zone menu changes in compare menu.
2018-12-18 16:56:19 +01:00
Bartosz Taudul
7fc03736f2
Add "ignore case" toggle to find zone menu.
2018-12-18 16:38:55 +01:00
Bartosz Taudul
444d5e20f0
Add basic lock info window.
2018-12-16 19:58:11 +01:00
Bartosz Taudul
1235a5aa0a
Allow discarding active trace.
2018-11-25 19:31:26 +01:00
Bartosz Taudul
556b3e8efe
Add "go to frame" functionality.
2018-10-21 17:36:27 +02:00
Bartosz Taudul
9342ba0e71
Don't track last frames in offline mode.
2018-10-21 16:03:21 +02:00
Bartosz Taudul
428b7da1cc
The underlying vector might be reallocated.
2018-09-27 23:19:20 +02:00
Bartosz Taudul
6cfd53b274
Add allocations list window.
2018-09-27 23:19:20 +02:00
Bartosz Taudul
01e0bbb5f9
Build list of allocations in a given call stack tree entry.
2018-09-27 23:19:20 +02:00
Bartosz Taudul
06eec51ed9
Display locks source locations in options locks list.
2018-09-18 16:14:32 +02:00
Bartosz Taudul
fc40c7bbf6
Calculate compare traces average, median.
2018-09-03 20:34:07 +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
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
854210a7e3
Fix find zone histogram selection start/end.
2018-09-02 02:09:29 +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
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
230ee71368
Do not recalculate frame stats, if frame data didn't change.
2018-08-31 18:51:00 +02:00
Bartosz Taudul
6ad184447a
Call stack window may now display frame addresses.
2018-08-21 17:55:59 +02:00
Bartosz Taudul
42636cfe89
Allow viewing source files from within find zone menu.
2018-08-18 20:35:25 +02:00
Bartosz Taudul
a4df805746
Allow filtering messages by thread.
2018-08-18 19:57:36 +02:00
Bartosz Taudul
410616f7f8
Allow viewing source from zone trace.
2018-08-18 14:26:10 +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
2b3490e6f7
Handle window title setter callback in View.
2018-08-17 17:24:18 +02:00
Bartosz Taudul
df7db3bd2b
Notify profiler about root window size.
2018-08-17 16:54:56 +02:00
Bartosz Taudul
facae0b9e1
Draw text editor with potential source code.
2018-08-17 15:33:12 +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
df14cf5330
Implement callstack tree of memory allocations.
2018-08-14 18:37:06 +02:00
Bartosz Taudul
29c6498890
Add minimal trace info window.
2018-08-08 19:25:13 +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
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
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
23dfc2e3fc
Multiple frame sets support.
2018-08-04 21:10:45 +02:00
Bartosz Taudul
b4f4fcfde9
Add zoom-to-middle-mouse-button-selection-range.
2018-07-29 20:15:49 +02:00
Bartosz Taudul
8ddf32bc6b
Highlight zones with the same srcloc on hover.
2018-07-28 19:53:11 +02:00
Bartosz Taudul
6a3a9c0bc5
Load second trace on a separate thread.
2018-07-28 18:47:33 +02:00
Bartosz Taudul
d1cef20c0b
Allow sorting groups by time.
2018-07-21 23:58:50 +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
9291a88020
Zones can be now also grouped by call stack.
2018-07-21 20:26:13 +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
cf3bf4378b
No need to return MemEvent ptr from DrawAddress().
2018-07-17 23:13:56 +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
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
f82e8aa98f
Adapt plot height to font size.
2018-06-29 00:38:56 +02:00
Bartosz Taudul
41e8648701
Adjust GPU zones to set time drift.
2018-06-28 01:12:25 +02:00
Bartosz Taudul
bab798c13c
GPU context time drift storage.
2018-06-28 01:08:08 +02:00
Bartosz Taudul
0b9559c05b
Retrieval of GPU context from GPU zone.
2018-06-28 01:07:21 +02:00