Commit graph

30 commits

Author SHA1 Message Date
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
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
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
118c2e446b scripts: don't print RUSTFLAGS, causes issues when printing configs 2020-08-01 23:23:10 +02:00
Joakim Frostegård
a5108f813d WIP: aquatic_ws: add half-crappy load test, fix infinite loop bug 2020-08-01 03:35:00 +02:00
Joakim Frostegård
0d8b6f6cc4 build scripts: disable avx512, since it decreases performance 2020-07-31 01:34:13 +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
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
ea4b560faa aquatic_http_protocol: add benchmark for request from bytes 2020-07-20 20:27:42 +02:00
Joakim Frostegård
6471e4a8a9 Add scripts/run-load-test-http.sh 2020-07-20 15:21:25 +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
2fe42e7235 update criterion script 2020-07-19 13:26:17 +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
a487347a0d aquatic_http: continue implementation work 2020-07-02 13:21:39 +02:00
Joakim Frostegård
7512b4b44f setup-bench-on-debian.sh: roll nginx into other apt-get line
Not installing nginx means script is aborted because of
"set -e", and that setting serves a purpose
2020-06-30 00:04:01 +02:00
Joakim Frostegård
4c2c6634c3 setup-bench-on-debian.sh: install git 2020-06-30 00:03:21 +02:00
Joakim Frostegård
3addab07f0 move plot_pareto from aquatic_udp_bench crate into own crate 2020-05-25 19:38:53 +02:00
Joakim Frostegård
1b8d74e26d rename aquatic to aquatic_udp, same for bench and load test crates 2020-05-11 16:55:46 +02:00
Joakim Frostegård
ab178b3189 add scripts/run-aquatic-ws.sh 2020-05-11 15:41:46 +02:00
Joakim Frostegård
cae534d82d scripts/test.sh: add comment about quickcheck constants 2020-05-04 17:10:55 +02:00
Joakim Frostegård
8effcb8d91 setup-bench-on-debian.sh: add rustc build flag for aquatic 2020-05-04 17:10:39 +02:00
Joakim Frostegård
b77af78483 Add scripts for setting up benchmarks on linux 2020-04-19 10:31:33 +02:00
Joakim Frostegård
f6ed47fec7 add aquatic_load_test for benchmarking aquatic over the network 2020-04-19 10:21:12 +02:00
Joakim Frostegård
9a1143ffac aquatic_bench: enable loading configuration from file 2020-04-11 14:31:21 +02:00
Joakim Frostegård
25f6be3940 Add scripts/test.sh for running tests with higher quickcheck settings 2020-04-10 03:30:59 +02:00
Joakim Frostegård
ac52668a3d add crate cli_helpers with option and config parsing; use in aquatic
Putting cli functionality into its own crate will allow using it
from aquatic_bench and possibly other programs.
2020-04-09 16:55:40 +02:00
Joakim Frostegård
8426e8f3f7 on invalid requests, return error response; simplify Request type 2020-04-06 19:43:49 +02:00
Joakim Frostegård
e42dc05996 Add scripts dir with "run-server.sh" and "bench-handlers.sh" 2020-04-06 13:16:52 +02:00