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
Joakim Frostegård
4caf174da5
aquatic_http: add criterion benchmark for announce response to bytes
...
Speedup of custom implementation compared to using bendy:
announce-response-to-bytes:
time: [413.77 ns 415.34 ns 417.08 ns]
change: [-93.074% -93.021% -92.968%] (p = 0.00 < 0.01)
Performance has improved.
2020-07-19 16:56:13 +02:00
Joakim Frostegård
9df1f0ecc6
aquatic_http: rewrite request parsing, use smartstring
...
Use smartstring in PeerMapKey too.
Improves benchmark speed.
request-from-path:
time: [2.1484 us 2.1530 us 2.1586 us]
change: [-24.246% -23.908% -23.570%] (p = 0.00 < 0.01)
Performance has improved.
2020-07-19 15:38:26 +02:00
Joakim Frostegård
fc9b4c8e0d
aquatic_http: protocol: add test for scrape request parsing
2020-07-19 14:28:48 +02:00
Joakim Frostegård
12a62f5df4
aquatic_http: add test for announce request parsing
2020-07-19 14:23:48 +02:00
Joakim Frostegård
f078542ffc
Update TODO
2020-07-19 14:22:26 +02:00
Joakim Frostegård
54e801c6a9
aquatic http: request from path: whitelist url keys for security
...
This way, the non-ddos-resistant hashmap hasher can be kept. Also
improves performance, probably simply because less hashing work
is done:
time: [2.8050 us 2.8156 us 2.8274 us]
change: [-22.940% -22.412% -21.916%] (p = 0.00 < 0.01)
Performance has improved.
2020-07-19 13:46:36 +02:00
Joakim Frostegård
09d27d5075
Update TODO
2020-07-19 13:27:54 +02:00
Joakim Frostegård
2fe42e7235
update criterion script
2020-07-19 13:26:17 +02:00
Joakim Frostegård
b17c9999f0
aquatic_http: request from path: remove from map to avoid some clones
...
change: [-3.8362% -3.2346% -2.5437%] (p = 0.00 < 0.01)
Performance has improved.
2020-07-19 13:24:48 +02:00
Joakim Frostegård
ca8d278a03
aquatic_http: parse_key_value_pairs_memchr: small code improvement
2020-07-19 13:06:39 +02:00
Joakim Frostegård
a8e355f22a
aquatic_http: add criterion benchmarks for request from path parsing
...
About 35% improvement by using both memchr methods
2020-07-19 01:58:41 +02:00
Joakim Frostegård
9b0956cc91
aquatic_http: Request::from_http_get_path: add memchar query str parser
2020-07-18 18:40:27 +02:00
Joakim Frostegård
a8900c99ab
Update TODO
2020-07-18 17:55:58 +02:00
Joakim Frostegård
84facea0ca
aquatic_http: add hand-written ScrapeResponse serialization
2020-07-18 17:46:16 +02:00
Joakim Frostegård
17385c92ad
Update TODO
2020-07-18 16:32:28 +02:00
Joakim Frostegård
81708e0adc
aquatic_http: add manual bencoding for announce and failure responses
...
This is more performant
2020-07-18 16:28:42 +02:00
Joakim Frostegård
056cd41732
aquatic_http: add memchr version of urldecode, which might be faster
2020-07-18 06:05:13 +02:00
Joakim Frostegård
f94c52da77
aquatic_http: send_response: use itoa and Vec::with_capacity
...
This leads to fewer allocations and possibly better performance.
2020-07-18 03:05:40 +02:00
Joakim Frostegård
8ddccb20aa
aquatic_http: use new trait Ip for ip generic parameters
2020-07-08 14:22:30 +02:00