mirror of
https://github.com/YGGverse/aquatic.git
synced 2026-03-31 17:55:36 +00:00
Update TODO
This commit is contained in:
parent
7867d5c8f3
commit
ebe4d4357b
1 changed files with 31 additions and 4 deletions
35
TODO.md
35
TODO.md
|
|
@ -1,8 +1,9 @@
|
||||||
# TODO
|
# TODO
|
||||||
|
|
||||||
# General
|
## General
|
||||||
* Profile guided optimization could be interesting:
|
|
||||||
https://doc.rust-lang.org/rustc/profile-guided-optimization.html
|
* avx-512 should be avoided, maybe this should be mentioned in README
|
||||||
|
and maybe run scripts should be adjusted
|
||||||
|
|
||||||
## aquatic_ws
|
## aquatic_ws
|
||||||
* tests
|
* tests
|
||||||
|
|
@ -22,6 +23,7 @@
|
||||||
# Not important
|
# Not important
|
||||||
|
|
||||||
## aquatic_ws
|
## aquatic_ws
|
||||||
|
* copyless for vec pushes in request handler, instead of stack and then heap?
|
||||||
* config
|
* config
|
||||||
* send/recv buffer size?
|
* send/recv buffer size?
|
||||||
* tcp backlog?
|
* tcp backlog?
|
||||||
|
|
@ -70,6 +72,31 @@
|
||||||
|
|
||||||
# Don't do
|
# Don't do
|
||||||
|
|
||||||
|
## General - profile-guided optimization
|
||||||
|
|
||||||
|
Doesn't seem to improve performance, possibly because I only got it to compile
|
||||||
|
with thin LTO which could have impacted performance. Running non-pgo version
|
||||||
|
without AVX-512 seems to be the fastest, although the presence of a ctrl-c handler
|
||||||
|
(meaning the addition of a thread) might have worsed performance in pgo version
|
||||||
|
(unlikely).
|
||||||
|
|
||||||
|
Benchmarks of aquatic_udp with and without PGO. On hetzer 16x vCPU. 8 workers
|
||||||
|
just like best results in last benchmark, multiple client ips=true:
|
||||||
|
|
||||||
|
### target-cpu=native (probably with avx512 since such features are listed in /proc/cpuinfo), all with thin lto
|
||||||
|
* With PGO on aquatic_udp: 370k, without 363k responses per second
|
||||||
|
* With PGO on both aquatic_udp and aquatic_udp_load_test: 368k
|
||||||
|
|
||||||
|
### with target-cpu=skylake, all with thin lto
|
||||||
|
* with pgo on aquatic_udp: 400k
|
||||||
|
* with no pgo: 394k
|
||||||
|
|
||||||
|
### checkout master (no pgo, no thin lto, no ctrlc handler)
|
||||||
|
|
||||||
|
* target-cpu=native: 394k
|
||||||
|
* target-cpu=skylake: 439k
|
||||||
|
* no target-cpu set: 388k
|
||||||
|
|
||||||
## aquatic_udp
|
## aquatic_udp
|
||||||
|
|
||||||
* Other HashMap hashers (such as SeaHash): seemingly not worthwhile, see
|
* Other HashMap hashers (such as SeaHash): seemingly not worthwhile, see
|
||||||
|
|
@ -77,7 +104,7 @@
|
||||||
* `sendmmsg`: can't send to multiple socket addresses, so doesn't help
|
* `sendmmsg`: can't send to multiple socket addresses, so doesn't help
|
||||||
* Config behind Arc in state: it is likely better to be able to pass it around
|
* Config behind Arc in state: it is likely better to be able to pass it around
|
||||||
without state
|
without state
|
||||||
* Responses: make vecors iteretor references so we dont have run .collect().
|
* Responses: make vectors iterator references so we dont have run .collect().
|
||||||
Doesn't work since it means conversion to bytes must be done while holding
|
Doesn't work since it means conversion to bytes must be done while holding
|
||||||
readable reference to entry in torrent map, hurting concurrency.
|
readable reference to entry in torrent map, hurting concurrency.
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue