Commit graph

456 commits

Author SHA1 Message Date
Joakim Frostegård
cc46c4b72c aquatic_http: write to buf ref in request serialization 2020-07-24 22:27:06 +02:00
Joakim Frostegård
fd68a5f603 aquatic_http: serialize responses to a buffer ref instead of new vec
This improves benchmark performance somewhat and performance
during load testing a bit too.
2020-07-24 21:59:23 +02:00
Joakim Frostegård
228511b3aa aquatic_http: replace flume with crossbeam; clean connections less often 2020-07-24 20:36:46 +02:00
Joakim Frostegård
3802dec79e Update TODO 2020-07-24 20:33:37 +02:00
Joakim Frostegård
b1f998830d Update README 2020-07-24 11:50:47 +02:00
Joakim Frostegård
edfb8e62c5 TODO: reorganize 2020-07-21 23:03:00 +02:00
Joakim Frostegård
f1f708465a remove aquatic_common_tcp crate, move contents into aquatic_http
It doesn't make a lot of sense to make a separate crate for
the few things here. I don't really want tight coupling between
the crates anyway, since it impedes making changes in them
and makes understanding them more difficult.
2020-07-21 23:01:34 +02:00
Joakim Frostegård
32402a4dca criterion announce-response-to-bytes script: ask about saving result 2020-07-21 17:24:17 +02:00
Joakim Frostegård
b01226fddc aquatic http protocol: remove unimplemented Response::from_bytes fn 2020-07-21 17:21:32 +02:00
Joakim Frostegård
c1b2a30803 criterion request-from-bytes script: ask user about saving result 2020-07-21 15:59:32 +02:00
Joakim Frostegård
b3154c5bcf aquatic http protocol: delete obsoleted request-from-path benchmark
Now there is a request-from-bytes benchmark that supersedes
request-from-path.

Final comparison of gains made since first benchmark:

request-from-path
    time:   [540.01 ns 541.51 ns 543.15 ns]
    change: [-90.786% -90.741% -90.696%] (p = 0.00 < 0.01)
    Performance has improved.
2020-07-21 14:25:47 +02:00
Joakim Frostegård
853de523b6 Update README 2020-07-21 11:02:08 +02:00
Joakim Frostegård
05ae0d48b6 README: add aquatic_http and load test section, remove default configs 2020-07-21 10:28:42 +02:00
Joakim Frostegård
773494b17b Update TODO 2020-07-21 02:00:15 +02:00
Joakim Frostegård
fcf1ecf0e8 add some allowed licences to deny.toml 2020-07-21 01:53:43 +02:00
Joakim Frostegård
22316df025 aquatic http protocol: rerun response criterion benchmarks
Regression of about 100%, not clear why, but absolute change
is small. Runtime compared to bendy version is -86.407% anyway.
So save this as baseline without investigating the reason for
the regression.
2020-07-21 01:43:47 +02:00
Joakim Frostegård
0b41e91dde aquatic http protocol: rerun request criterion benchmarks
request-from-path: first run since previous changes
request-from-bytes: speedup possibly due to updated compiler
2020-07-21 01:38:08 +02:00
Joakim Frostegård
52eeda2f2c aquatic_udp_bench: bump indicatif version 2020-07-21 01:03:23 +02:00
Joakim Frostegård
f2db4a43b9 Update lots of dependencies 2020-07-21 00:58:56 +02:00
Joakim Frostegård
27071fa2df aquatic http load test: clean up ununsed struct, config field 2020-07-21 00:45:10 +02:00
Joakim Frostegård
597a2a83d1 aquatic http protocol: add quickcheck test for urlencode/decode 20 bytes 2020-07-21 00:36:34 +02:00
Joakim Frostegård
909f0edce9 aquatic http protocol: move urlencode fns to utils module, clean up 2020-07-21 00:20:10 +02:00
Joakim Frostegård
8fea96bcd2 aquatic http protocol: request parsing: remove hashmap for performance
request-from-bytes:

time:   [720.22 ns 723.34 ns 726.73 ns]
change: [-53.265% -52.884% -52.477%] (p = 0.00 < 0.01)

Performance has improved.
2020-07-21 00:11:53 +02:00
Joakim Frostegård
289cc4fcb5 Update TODO 2020-07-21 00:09:56 +02:00
Joakim Frostegård
dae83a1835 aquatic http protocol: ScrapeRequest::to_bytes(): use urlencode_20_bytes 2020-07-20 22:35:08 +02:00
Joakim Frostegård
ca935b7d46 Update TODO 2020-07-20 22:16:27 +02:00
Joakim Frostegård
b7d5a12046 aquatic http protocol: optimize request parsing
request-from-bytes:

time:   [1.5288 us 1.5362 us 1.5441 us]
change: [-38.029% -37.466% -36.890%] (p = 0.00 < 0.01)
Performance has improved.
2020-07-20 22:13:42 +02:00
Joakim Frostegård
87328f788d Update TODO 2020-07-20 21:14:09 +02:00
Joakim Frostegård
114b8007e1 aquatic http procotol: rewite Request::from_bytes, test it 2020-07-20 21:13:48 +02:00
Joakim Frostegård
ea4b560faa aquatic_http_protocol: add benchmark for request from bytes 2020-07-20 20:27:42 +02:00
Joakim Frostegård
95e25710dc aquatic_http: move request parsing into protocol crate 2020-07-20 20:13:56 +02:00
Joakim Frostegård
2521c89109 aquatic http protocol: Response::from_bytes: set to unimplemented!() 2020-07-20 18:32:07 +02:00
Joakim Frostegård
95e6eebd67 aquatic http load test: stats: stop showing response peers, don't exist 2020-07-20 18:31:47 +02:00
Joakim Frostegård
d6f9c2637c aquatic http load test: register response types 2020-07-20 18:31:22 +02:00
Joakim Frostegård
1c6f22db85 aquatic http load test: track and display bandwidth 2020-07-20 18:02:16 +02:00
Joakim Frostegård
45940a05a9 http load test and protocol: cut down on allocations a bit 2020-07-20 17:23:40 +02:00
Joakim Frostegård
47c71376e2 http load test: increase conn inverval const, move out of fn 2020-07-20 16:34:50 +02:00
Joakim Frostegård
6691b77824 aquatic_http_load_test: store connections in a slab::Slab 2020-07-20 16:30:47 +02:00
Joakim Frostegård
a2a2fa5807 Update TODO 2020-07-20 16:21:54 +02:00
Joakim Frostegård
3eb18fc973 aquatic_http_load_test: use longer poll timeout, adjust conn creation 2020-07-20 16:20:57 +02:00
Joakim Frostegård
b9e875ad90 aquatic_http_load_test: slowly open a number of connections 2020-07-20 16:16:06 +02:00
Joakim Frostegård
8d41d98fec Update TODO 2020-07-20 15:46:38 +02:00
Joakim Frostegård
19ee41eb72 aquatic_http: config: set poll timeout in microseconds, default to 10000 2020-07-20 15:46:17 +02:00
Joakim Frostegård
6471e4a8a9 Add scripts/run-load-test-http.sh 2020-07-20 15:21:25 +02:00
Joakim Frostegård
75ebe3208d aquatic_http_load_test: fix connection buffer issue, optimize 2020-07-20 15:21:02 +02:00
Joakim Frostegård
ff6eddfc85 WIP: aquatic_http_load_test: clean up config structs 2020-07-20 15:12:07 +02:00
Joakim Frostegård
da3b2bcd8c WIP: cleanup aquatic_http_load_test and aquatic_http_protocol 2020-07-20 14:50:19 +02:00
Joakim Frostegård
d1e9d24773 WIP: work on http load test (now partly working) and http protocol 2020-07-20 14:30:36 +02:00
Joakim Frostegård
5b0d364ccf WIP: start work on porting udp load test to http 2020-07-19 23:03:30 +02:00
Joakim Frostegård
4ac2012a2a aquatic_http: move protocol module to new crate aquatic_http_protocol 2020-07-19 21:59:31 +02:00