Commit graph

567 commits

Author SHA1 Message Date
Joakim Frostegård
884a2aa67d aquatic ws: deserialize OutMessage properly
Performance seems to be about the same
2020-08-12 01:24:28 +02:00
Joakim Frostegård
dea88020a5 aquatic ws load test: use longer json value when sending answer 2020-08-12 00:52:07 +02:00
Joakim Frostegård
0c168404db aquatic ws load test: add offers_per_request config var, default 10 2020-08-12 00:42:21 +02:00
Joakim Frostegård
cff9b44a7f move RUSTFLAGS gen to own file instead of setting in each script 2020-08-12 00:28:03 +02:00
Joakim Frostegård
b3caa7ab7b Update TODO 2020-08-12 00:20:00 +02:00
Joakim Frostegård
29e3d695a0 Update TODO 2020-08-12 00:13:36 +02:00
Joakim Frostegård
9af4e4663d aquatic_ws: send responses for every event, wake mio for responses 2020-08-11 23:58:00 +02:00
Joakim Frostegård
de1a299f1e aquatic_ws: InMessage::to_ws_message: don't take ownership 2020-08-11 23:24:46 +02:00
Joakim Frostegård
63e5fe11c9 aquatic http protocol: delete obsoleted bench_request_from_path 2020-08-11 23:06:05 +02:00
Joakim Frostegård
f2d697011b Don't use target-cpu native etc in scripts/test.sh 2020-08-11 23:04:28 +02:00
Joakim Frostegård
56bc028a44 aquatic_ws: OutMessage and InMessage simd-json fixes
* use simd-json in OutMessage deserialization
* take ownership in InMessage deserialization to avoid bugs
* Update benchmark results, benchmark was broken
* Compile simd-json even if simd is not on, so that rust-analyzer
  works
2020-08-11 23:02:19 +02:00
Joakim Frostegård
8dfe524421 Update TODO 2020-08-11 06:45:47 +02:00
Joakim Frostegård
5d40954936 aquatic_ws: deserialize InMessage with simd-json for performance
From 18% to 13% CPU time during load test run.

Criterion benchmark of deserialization got about 90% improvement.
2020-08-11 06:32:51 +02:00
Joakim Frostegård
539cf03f93 Update README (aquatic http load test section) 2020-08-11 06:31:09 +02:00
Joakim Frostegård
99724c7e5d aquatic_ws: add bench for InMessage::from_ws_message, take ws msg by ref 2020-08-11 05:36:29 +02:00
Joakim Frostegård
74a538963f aquatic_http_protocol: urlencode/urldecode Request.key
About 11% performance regression for Request::from_bytes
2020-08-10 04:37:01 +02:00
Joakim Frostegård
0a0b57a9e8 Update TODO 2020-08-10 03:57:16 +02:00
Joakim Frostegård
1a3ab54b3f aquatic_ws: when removing connection, reregister from poll 2020-08-10 03:51:08 +02:00
Joakim Frostegård
fbcd5aa7c9 Update TODO 2020-08-10 03:18:06 +02:00
Joakim Frostegård
cce7bd7150 aquatic_http: send responses for each event, use mio poll waker
This means
* less fluctuation in number of responses send per second
* longer poll timeouts can be used since poll is woken when
  responses are available for sending
* drain-like method used to fetch responses from response
  channel, meaning responses added while iterating won't
  be processed
2020-08-10 02:53:15 +02:00
Joakim Frostegård
1d2dfe3fe1 aquatic_ws_protocol: add comment OutMessage::from_ws_message 2020-08-09 04:27:06 +02:00
Joakim Frostegård
4bffecc345 aquatic_http_load_test: deregister socket before removing it 2020-08-09 04:26:08 +02:00
Joakim Frostegård
72183d7fc2 Update TODO 2020-08-09 04:25:29 +02:00
Joakim Frostegård
d9282defbc aquatic_http: deregister connections before removing them 2020-08-09 02:30:40 +02:00
Joakim Frostegård
1b2b4f0eb5 aquatic_http_protocol: add test for Request serde, fix Request.write bug 2020-08-09 01:19:47 +02:00
Joakim Frostegård
2893fffd20 aquatic_http: use const LISTENER_TOKEN for clarity 2020-08-09 00:44:39 +02:00
Joakim Frostegård
0a23b62bd5 aquatic ws load test: gen random PeerId per connection
Necessary for multiple workers
2020-08-09 00:42:09 +02:00
Joakim Frostegård
2d3761fee2 impl Copy for LogLevel, remove some cloning 2020-08-09 00:27:05 +02:00
Joakim Frostegård
0637f83daa aquatic_ws: rewrite failing serialization, add tests
Use different approach to action fields and info_hash vec, fixing
failing tests
2020-08-09 00:26:26 +02:00
Joakim Frostegård
c8512e1cdf Update TODO 2020-08-07 01:15:04 +02:00
Joakim Frostegård
ea8b37b4d5 aquatic_ws_protocol: add quickcheck tests for message serde 2020-08-06 23:34:33 +02:00
Joakim Frostegård
cc7fff7d6c Update TODO 2020-08-06 23:34:29 +02:00
Joakim Frostegård
94bc33ea72 Update TODO 2020-08-03 07:27:55 +02:00
Joakim Frostegård
6f618bb013 aquatic_ws_load_test: get answer sending to work with wt-tracker 2020-08-03 07:02:42 +02:00
Joakim Frostegård
01fdf40a02 aquatic_ws_load_test: send num_want and better offer fake type
This means wt-tracker starts sending offers
2020-08-03 06:52:29 +02:00
Joakim Frostegård
aee97b77a1 Update TODO 2020-08-03 05:49:22 +02:00
Joakim Frostegård
e916780438 aquatic_ws_load_test: for single connection, use same PeerId 2020-08-03 05:27:40 +02:00
Joakim Frostegård
7733ee98ca Update TODO 2020-08-03 05:15:48 +02:00
Joakim Frostegård
9f445c7c03 aquatic_ws_load_test: fix multiple issues with implementation 2020-08-03 05:15:24 +02:00
Joakim Frostegård
5523c87634 Update TODO 2020-08-03 00:23:25 +02:00
Joakim Frostegård
edeeee8f51 aquatic http load test: don't stop looping after reading response
It is important to keep reading until EWOULDBLOCK event
2020-08-03 00:22:22 +02:00
Joakim Frostegård
e88ecec9c7 aquatic http protocol: fix failure response serialization test failure 2020-08-02 22:11:55 +02:00
Joakim Frostegård
d36f97f272 aquatic http load test: remove connection if read 0 bytes 2020-08-02 21:42:35 +02:00
Joakim Frostegård
8d58f8bb70 init logger in aquatic_cli_helpers crate 2020-08-02 21:21:58 +02:00
Joakim Frostegård
427c0bc7c3 aquatic_http: add keep_alive setting (default true)
This might be good for performance in the real world. It also
enables fairer load test comparisons with opentracker, which
in my understanding drops connections after sending responses.
2020-08-02 20:06:49 +02:00
Joakim Frostegård
8caae958fd Update TODO 2020-08-02 20:06:46 +02:00
Joakim Frostegård
bed57717ba aquatic_http_load_test: fix formatting 2020-08-02 19:26:47 +02:00
Joakim Frostegård
c8b94adab5 aquatic_http: remove Connection.shutdown fn 2020-08-02 19:26:12 +02:00
Joakim Frostegård
c5194cf9d1 Update TODO 2020-08-02 19:25:30 +02:00
Joakim Frostegård
a02035d659 aquatic http load test: improve connection creation, default config 2020-08-02 19:11:14 +02:00