Commit Graph

4399 Commits

Author SHA1 Message Date
Bartosz Taudul
ef7dca9073 Init winsock at application init, not on first socket use. 2017-09-14 02:13:45 +02:00
Bartosz Taudul
a159b70d40 Reconstruct event data. 2017-09-14 02:00:13 +02:00
Bartosz Taudul
b1fcf88cf4 Implement checking if there's data to read on the socket. 2017-09-14 01:14:40 +02:00
Bartosz Taudul
d999f35dfa Exchange time and id in queue header and data structs. 2017-09-14 01:14:40 +02:00
Bartosz Taudul
3e1b736b34 Use better variable name. 2017-09-14 01:06:40 +02:00
Bartosz Taudul
10b88754d8 Allow direct access to data size table index. 2017-09-14 01:05:08 +02:00
Bartosz Taudul
89dd244693 Read QueueItems from network. 2017-09-13 23:40:28 +02:00
Bartosz Taudul
52d24d0d4c s_instance ptr may be accessed by thread. 2017-09-13 23:36:40 +02:00
Bartosz Taudul
037a4d7fac Handle connection closed/no data in Socket::Read(). 2017-09-13 23:27:17 +02:00
Bartosz Taudul
efd66bb609 Allow changing lz4 size type. 2017-09-13 23:27:17 +02:00
Bartosz Taudul
16dd561029 Move protocol specific sizes to common header. 2017-09-13 22:56:55 +02:00
Bartosz Taudul
a31ab6a256 Move TracyQueue.hpp to common. 2017-09-13 22:56:08 +02:00
Bartosz Taudul
f0d76af15c Use proper function to read data from socket. 2017-09-13 02:08:35 +02:00
Bartosz Taudul
3dd744019a Socket read loop. 2017-09-13 02:08:30 +02:00
Bartosz Taudul
407a256e68 Make sure data is actually received. 2017-09-13 02:00:22 +02:00
Bartosz Taudul
afde32549d Basic receive loop. 2017-09-13 01:54:22 +02:00
Bartosz Taudul
365f2cde23 Use select in Recv(). 2017-09-13 01:53:47 +02:00
Bartosz Taudul
953e9c6206 View server skeleton. 2017-09-13 01:33:50 +02:00
Bartosz Taudul
45646c4f45 Move TracySystem to a common directory. 2017-09-13 01:32:11 +02:00
Bartosz Taudul
997f0c64c3 Store pointers as uint64.
Pointers can't be stored as pointers, as that would cause mismatch in
wire protocol between 32 and 64 bit builds.
2017-09-13 01:24:42 +02:00
Bartosz Taudul
e8d64de5c1 Disable LZ4 in debug builds (too slow). 2017-09-12 02:20:05 +02:00
Bartosz Taudul
1ea61c2f2c Use LZ4 to compress network data.
This greatly reduces required network bandwidth, which in effect speeds
up queue processing.

Time to process a single event queue item:

      | Raw data | With LZ4 |
------+----------+----------+
Deque |  6.86 ns |   6.7 ns |
Pack  |  4.03 ns |   4.0 ns |
LZ4   |  ---     |  21.6 ns |
Send  | 214.5 ns |   5.2 ns |
------+----------+----------+
Total | 225.4 ns | 37.58 ns |
2017-09-12 02:13:22 +02:00
Bartosz Taudul
5c2cb6098d Move lz4 to tracy namespace. 2017-09-12 01:30:29 +02:00
Bartosz Taudul
16dbf7fc11 Add lz4 1.8.0. 2017-09-12 01:25:50 +02:00
Bartosz Taudul
3df4cf8acd Don't send unused data. 2017-09-12 01:14:04 +02:00
Bartosz Taudul
25d7cebd8a Move common event data to separate struct. 2017-09-12 00:56:31 +02:00
Bartosz Taudul
aa10adcc9c Explicitly describe target frame size. 2017-09-12 00:49:38 +02:00
Bartosz Taudul
30ceac359d Increase block size. 2017-09-12 00:46:10 +02:00
Bartosz Taudul
6092c695bd All enqueue operations are performed with a token. 2017-09-12 00:43:25 +02:00
Bartosz Taudul
e04e1580c4 Adjust data size to fully utilize TCP packet size. 2017-09-12 00:38:33 +02:00
Bartosz Taudul
37405bafde Pack queue item. 2017-09-12 00:28:50 +02:00
Bartosz Taudul
8fb8e4f792 No need for sleep, Accept() already sleeps. 2017-09-11 23:16:17 +02:00
Bartosz Taudul
8747da8e2c Send event data over network. 2017-09-11 22:51:47 +02:00
Bartosz Taudul
dbd25e2653 Add sockets wrapper. 2017-09-11 22:51:11 +02:00
Bartosz Taudul
8d3aae24bf Use producer tokens during event insertion. 2017-09-10 20:52:10 +02:00
Bartosz Taudul
452e5c5c83 Increase bulk size to 1024. 2017-09-10 20:40:28 +02:00
Bartosz Taudul
6886d5035e Dequeue events (and do nothing with them). 2017-09-10 20:23:06 +02:00
Bartosz Taudul
6a7fdea6fd Store profiling start time. 2017-09-10 20:14:16 +02:00
Bartosz Taudul
5964a6864c Scoped zone macro. 2017-09-10 20:10:20 +02:00
Bartosz Taudul
09f9937133 Scoped zone wrapper. 2017-09-10 20:09:57 +02:00
Bartosz Taudul
12a6306c0b Allow queuing zones. 2017-09-10 20:09:14 +02:00
Bartosz Taudul
05486c8225 Add unique event identifier source. 2017-09-10 20:08:42 +02:00
Bartosz Taudul
e4356eb67e Time retrieval function. 2017-09-10 20:07:38 +02:00
Bartosz Taudul
fc1b131c7a Add event queue structures. 2017-09-10 20:06:52 +02:00
Bartosz Taudul
ea9464f4f6 Make sure string constants are at the same memory address. 2017-09-10 20:02:40 +02:00
Bartosz Taudul
b4f8901a8d Add MPMC queue.
https://github.com/cameron314/concurrentqueue.git
b276773a1babd702b020a91ea2443985a65bab11
2017-09-10 19:01:14 +02:00
Bartosz Taudul
4a05da273f Set worker thread name. 2017-09-10 17:46:20 +02:00
Bartosz Taudul
a5d6039aea Profiler worker thread skeleton. 2017-09-10 17:43:56 +02:00
Bartosz Taudul
a2849002ec Basic git ignore list. 2017-09-10 17:26:39 +02:00