Commit Graph

356 Commits

Author SHA1 Message Date
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
Bartosz Taudul
39eccd5b08 Extract "center view at time" function. 2018-06-22 20:21:02 +02:00
Bartosz Taudul
3404d191f0 Fix non-unique child ids in memory window. 2018-06-22 00:10:00 +02:00
Bartosz Taudul
15ff98b64a Push detailed callstack to a separate window.
Only show function names (no source files or line numbers) in callstack
tooltip.
2018-06-20 13:23:08 +02:00
Bartosz Taudul
4ba95145da Display raw callstack payload. 2018-06-19 22:19:33 +02:00
Bartosz Taudul
d49be792ba Cache bin containers in compare view. 2018-06-06 23:09:46 +02:00
Bartosz Taudul
da5d35c364 Cache bin containers in find zone. 2018-06-06 23:06:00 +02:00
Bartosz Taudul
859bf01992 Support displaying self times in statistics view. 2018-06-06 00:47:16 +02:00
Bartosz Taudul
785a30a68b Implement going to next/previous frame. 2018-06-02 22:27:35 +02:00
Bartosz Taudul
3ea5fd93ed Simple and not so simple draw plot point functions. 2018-05-27 19:51:45 +02:00
Bartosz Taudul
1cc798cea3 Construct zone info stack. 2018-05-02 19:23:46 +02:00
Bartosz Taudul
e5934b409a Don't use Vector for memory pages storage.
Vector has POT data size and we know exactly how much is needed.
2018-05-01 17:26:34 +02:00
Bartosz Taudul
4c521ce92a Loaded traces may be unloaded. 2018-04-30 01:16:08 +02:00
Bartosz Taudul
afa432a087 Non-user plots must have predefined names. 2018-04-28 16:26:45 +02:00
Bartosz Taudul
ecabf24c4e Optional normalization of compared data. 2018-04-22 02:19:22 +02:00
Bartosz Taudul
41738469f1 Add trace compare window. 2018-04-22 00:52:33 +02:00
Bartosz Taudul
2ef9fe0743 Enable log time in find zone menu by default. 2018-04-21 22:21:15 +02:00
Bartosz Taudul
6c2d7628ee Don't draw off-screen gpu zones. 2018-04-20 23:28:19 +02:00
Bartosz Taudul
a2779eccaf Don't draw off-screen zones. 2018-04-20 23:19:04 +02:00
Bartosz Taudul
9fc14d2faf Don't draw off-screen plots. 2018-04-20 23:00:26 +02:00
Bartosz Taudul
cd7a1cffe8 Don't draw off-screen locks. 2018-04-20 22:53:31 +02:00
Bartosz Taudul
093787b3e8 Move find zone setup to a dedicated function. 2018-04-05 19:30:32 +02:00
Bartosz Taudul
f0573d68bd Store memory pages in a contiguous memory area. 2018-04-03 19:17:32 +02:00
Bartosz Taudul
bf99bff87d Store MemEvents directly in the vector. 2018-04-03 14:17:51 +02:00
Bartosz Taudul
78cd86dd69 Memory pages bitmap calculation. 2018-04-02 18:51:32 +02:00
Bartosz Taudul
e80891e36d Allow restricting displayed allocs by time. 2018-04-02 16:07:33 +02:00
Bartosz Taudul
c4a36398f6 Move memory allocations table drawing to a separate function. 2018-04-02 02:39:12 +02:00
Bartosz Taudul
912cfdbc5e Search for zone present in given thread at given time. 2018-04-01 21:47:08 +02:00
Bartosz Taudul
20824a200c Implement search for memory address. 2018-04-01 21:24:30 +02:00
Bartosz Taudul
c686b86464 Add rudimentary memory information window. 2018-04-01 20:34:58 +02:00
Bartosz Taudul
16a98c8c17 Move benaphore to common directory. 2018-04-01 18:59:55 +02:00
Bartosz Taudul
ae274d8e37 Different ways of sorting of statistics data. 2018-03-24 17:28:10 +01:00
Bartosz Taudul
3a49e9a4be Statistics window shell. 2018-03-24 14:40:48 +01:00
Bartosz Taudul
c0577fd5b2 Unordered map is no longer used. 2018-03-23 21:18:52 +01:00
Bartosz Taudul
4837ce31ff Allow sorting zone groups by count. 2018-03-20 17:19:48 +01:00
Bartosz Taudul
37808ec4c7 Fix the horribly inefficient Visible() and ShowFull() methods. 2018-03-20 15:33:38 +01:00
Bartosz Taudul
ad37f0857b Highlight selected zone group on histogram. 2018-03-20 14:37:58 +01:00
Bartosz Taudul
0f6ec65b65 GPU zone thread getter. 2018-03-19 16:11:37 +01:00
Bartosz Taudul
0d831e452b Add ability to group zones by user text. 2018-03-19 16:01:36 +01:00
Bartosz Taudul
ce2bf7c207 Use Vector instead of std::vector for thread zone list. 2018-03-18 21:15:31 +01:00
Bartosz Taudul
77fa8f54a6 Restore per-thread zone list functionality. 2018-03-18 16:41:58 +01:00
Bartosz Taudul
d08c10c5b6 Add functionality for getting zone thread. 2018-03-18 16:38:42 +01:00
Bartosz Taudul
af3559afed Only display results for a single source location match. 2018-03-18 16:07:07 +01:00
Bartosz Taudul
7a4e7cbf86 Reduce data collection if TRACY_NO_STATISTICS is defined.
Statistical data collection is only useful if it's meant to be used.
Otherwise it only incurs CPU and memory cost.
2018-03-18 12:55:54 +01:00
Bartosz Taudul
746df21ad9 Live updates of find zone data.
TODO: found zones list. Currently only histogram view is available.
2018-03-18 02:43:17 +01:00