Commit Graph

329 Commits

Author SHA1 Message Date
Bartosz Taudul
ca939ccd19 Allow external profiler shutdown requests. 2018-08-20 01:02:27 +02:00
Bartosz Taudul
d63b5431bf Discover linux kernel version. 2018-08-19 19:00:01 +02:00
Bartosz Taudul
f55b99ba7e Fix signed/unsigned. 2018-08-19 18:53:32 +02:00
Bartosz Taudul
e9170c862e System RAM discovery on Linux. 2018-08-19 18:52:04 +02:00
Bartosz Taudul
790a3ae26f Perform windows version discovery. 2018-08-19 18:43:26 +02:00
Bartosz Taudul
bd76f4cd10 Send host info in welcome message. 2018-08-19 18:19:12 +02:00
Bartosz Taudul
9c0e6620b3 Host info discovery. 2018-08-19 18:15:46 +02:00
Arvid Gerstmann
076e83635b Add possibility to explicitly avoid logging 2018-08-13 14:47:52 +02:00
Bartosz Taudul
9d051cf5ee Add support for discontinuous frames. 2018-08-05 02:15:54 +02:00
Bartosz Taudul
9b4348b497 Handle frame name queries. 2018-08-04 21:10:45 +02:00
Bartosz Taudul
adde6cf4fd Allow sending named frames. 2018-08-04 15:04:18 +02:00
Bartosz Taudul
922882d3b0 Add name field to frame mark message. 2018-08-04 15:03:47 +02:00
Till Rathmann
c71d99c134 Minor change: adapted the spaces to tabs at the just inserted line as in tracy_rpmalloc.cpp tabs are used as indentation. 2018-08-02 11:53:04 +02:00
Till Rathmann
4968717313 Fixed compiler warning about unused variable in release builds. 2018-08-02 11:45:15 +02:00
Till Rathmann
3b302315f9 Fixed __ANDROID_API__ < 21 build and FD_SET usage. 2018-08-01 19:18:40 +02:00
Till Rathmann
37d5736bf5 Fixed compiler warnings. 2018-08-01 14:07:30 +02:00
Till Rathmann
2dcfe5fce0 Made s_threadNameDataInstance and s_profilerInstance static. 2018-07-31 13:03:09 +02:00
Till Rathmann
dd042619e9 Support for multi-DLL projects. 2018-07-31 12:06:04 +02:00
Bartosz Taudul
31c2ddb8ac Rename client's SourceLocation to SourceLocationData. 2018-07-28 00:34:04 +02:00
Bartosz Taudul
3737e122cf Of course, this can't work without stupid fuckery. 2018-07-26 19:59:55 +02:00
Arvid Gerstmann
b8db9df949 Detect glibc explicitly 2018-07-14 13:23:00 +02:00
Arvid Gerstmann
ad48c32e1e Support for callstacks on Linux without glibc 2018-07-14 11:08:17 +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
Arvid Gerstmann
9ac47eef0a Merged in Leandros99/tracy/dev (pull request #9)
Couple of minor compatibility fixes
2018-07-13 22:05:13 +00:00
Bartosz Taudul
e285c837a4 Support TRACY_NO_EXIT env variable in addition to define. 2018-07-13 23:55:40 +02:00
Arvid Gerstmann
32fc011f80 Silence unused parameter warning 2018-07-13 23:39:25 +02:00
Bartosz Taudul
c3ba0ef4eb Fix lua zone state init. 2018-07-13 20:21:50 +02:00
Bartosz Taudul
26f2cb336e Return value from non-void function. 2018-07-13 20:12:39 +02:00
Bartosz Taudul
a3c898f8b8 Rename FrameMark() to SendFrameMark().
This avoids conflict with FrameMark define.
2018-07-13 20:09:19 +02:00
Arvid Gerstmann
6b87aecdce Wrap concurrentqueue in tracy namespace 2018-07-13 20:01:27 +02:00
Bartosz Taudul
b11695111d Implement on-demand Lua zone capture. 2018-07-12 12:53:35 +02:00
Bartosz Taudul
fbc5556ddd Send memory events in on-demand mode. 2018-07-12 01:36:01 +02:00
Bartosz Taudul
26d5c4b302 Fix copy pasta. 2018-07-11 14:43:38 +02:00
Bartosz Taudul
96f39281a1 Implement on-demand locks. 2018-07-11 14:17:20 +02:00
Bartosz Taudul
d87508901f Send deferred data. 2018-07-11 12:28:40 +02:00
Bartosz Taudul
ad0a75da7d Defer lock announcements. 2018-07-11 12:24:58 +02:00
Bartosz Taudul
475d151b2d Implement deferring items. 2018-07-11 12:21:39 +02:00
Bartosz Taudul
a99d74966c Active status of scoped zone can't change. 2018-07-11 12:16:55 +02:00
Bartosz Taudul
52207f20b7 Add deferred events queue. 2018-07-11 12:14:28 +02:00
Bartosz Taudul
c2659473fd Free memory associated with cleared queue items. 2018-07-11 01:34:48 +02:00
Bartosz Taudul
b1a71174db Messages are also safe. 2018-07-10 23:09:59 +02:00
Bartosz Taudul
e80c677fa0 Plots can be safely sent in on-demand mode. 2018-07-10 23:06:27 +02:00
Bartosz Taudul
6a9caabc63 Send on-demand initial payload message. 2018-07-10 22:37:39 +02:00
Bartosz Taudul
43d5ab4382 Count frames in on-demand mode. 2018-07-10 22:27:19 +02:00
Bartosz Taudul
03794a2957 Send frame marks in on-demand mode. 2018-07-10 22:27:19 +02:00
Bartosz Taudul
f8b2ffdc7e Clear queues before new on-demand connection is made. 2018-07-10 22:27:19 +02:00
Bartosz Taudul
a767c5ea08 Trace zones in on-demand mode. 2018-07-10 22:27:19 +02:00
Bartosz Taudul
c973735b49 Track connection status. 2018-07-10 22:27:19 +02:00
Bartosz Taudul
010b19946f Send on-demand status in welcome message. 2018-07-10 21:44:23 +02:00
Bartosz Taudul
c056f3be41 Send keep alive messages to determine if client disconnected. 2018-07-10 21:39:17 +02:00