1
0
mirror of https://github.com/wolfpld/tracy.git synced 2025-03-20 07:40:02 +08:00
Commit Graph

2183 Commits

Author SHA1 Message Date
Bartosz Taudul 6485a090ed Separate small callstack button setup. 2018-07-17 22:53:38 +02: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 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 fe449f366f Use frame offset for frame count and missed frames display. 2018-07-10 22:51:24 +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
Bartosz Taudul bcd2fc027d Improve lock tooltips. 2018-06-29 18:49:47 +02:00
Bartosz Taudul a918d9a401 Improve compressed zones tooltips. 2018-06-29 18:47:33 +02:00
Bartosz Taudul c8361205da Improve timeline tooltips. 2018-06-29 18:46:05 +02:00
Bartosz Taudul 8228f4131b Improve frame header tooltip. 2018-06-29 18:44:07 +02:00
Bartosz Taudul c92d8cf7a3 Improve frame list tooltips. 2018-06-29 18:43:23 +02:00
Bartosz Taudul 201a40fb04 Improve readability of callstack tooltips. 2018-06-29 18:41:06 +02:00
Bartosz Taudul 400ee1c752 Improve readability of zone tooltips. 2018-06-29 18:39:20 +02:00
Bartosz Taudul fbe0ad437e Remove "without profiling" entry from zone tooltip. 2018-06-29 18:36:58 +02:00
Bartosz Taudul d01c14c2f3 Improve readability of compare menu. 2018-06-29 18:35:40 +02:00
Bartosz Taudul 91dd8f5d52 Improve readability of find zone menu. 2018-06-29 18:33:01 +02:00
Bartosz Taudul 8f4b09edc3 Improve zone info windows readability. 2018-06-29 18:27:34 +02:00
Bartosz Taudul 275a79e1c9 Display custom zone name in find zone results list. 2018-06-29 16:20:24 +02:00
Bartosz Taudul ab18869ce6 Display custom zone name in zone tooltip. 2018-06-29 16:15:59 +02:00
Bartosz Taudul 09c38f17e6 Display custom zone name in zone info window. 2018-06-29 16:14:31 +02:00
Bartosz Taudul 865e8d8506 Extract zone name getting functionality. 2018-06-29 15:14:20 +02:00
Bartosz Taudul 2866cafda5 Adapt histogram height to font size. 2018-06-29 00:44:05 +02:00
Bartosz Taudul f82e8aa98f Adapt plot height to font size. 2018-06-29 00:38:56 +02:00
Bartosz Taudul cc196ff0a8 Adapt frames view to font size. 2018-06-29 00:35:44 +02:00
Bartosz Taudul 41e8648701 Adjust GPU zones to set time drift. 2018-06-28 01:12:25 +02:00
Bartosz Taudul 0b9559c05b Retrieval of GPU context from GPU zone. 2018-06-28 01:07:21 +02:00
Bartosz Taudul c3238a496d No need to check for frame function name match.
Firstly, the match is not necessarily possible (e.g. on Linux the source
location function names and callstack frame names are two completely
different things).

Secondly, the first current zone callstack frame (which is matched to
some callstack frame of previous zone) is the frame in which a zone was
captured, and it will already be present in the zone trace. The
callstack frame omission should be therefore unconditional.
2018-06-24 17:38:32 +02:00
Bartosz Taudul 77e139e900 Insert true call stack frames into zone trace. 2018-06-24 16:57:57 +02:00
Bartosz Taudul fa62603c77 Move zone trace loop handler to a separate function. 2018-06-24 15:54:36 +02:00
Bartosz Taudul 17194cb591 Allow copying callstack frames name/file to clipboard. 2018-06-22 20:44:57 +02:00
Bartosz Taudul b8f7a4daac Mention purple line indicating middle of timeline. 2018-06-22 20:34:08 +02:00
Bartosz Taudul 9c2aab733d Allow centering timeline on memory alloc/free time. 2018-06-22 20:32:38 +02:00
Bartosz Taudul 5f5fe7c6aa Add tip about centering timeline on message. 2018-06-22 20:23:56 +02:00
Bartosz Taudul 39eccd5b08 Extract "center view at time" function. 2018-06-22 20:21:02 +02:00
Bartosz Taudul d13fc2413f Highlight callstack button in zone info windows. 2018-06-22 02:24:36 +02:00
Bartosz Taudul e5f673eaa0 Allow viewing callstack from gpu zone info window. 2018-06-22 01:58:25 +02:00
Bartosz Taudul e40c5068c9 Allow viewing callstack from zone info window. 2018-06-22 01:21:51 +02:00
Bartosz Taudul 3404d191f0 Fix non-unique child ids in memory window. 2018-06-22 00:10:00 +02:00
Bartosz Taudul 3f7ab10323 Don't show line number if it's 0. 2018-06-21 13:26:04 +02:00
Bartosz Taudul cef972fe25 Remove parenthesis from callstack location. 2018-06-20 17:07:48 +02:00