2cd2e694ff | ||
---|---|---|
benchmarks | ||
pixelflut | ||
render | ||
rpc | ||
.gitignore | ||
IDEAS.md | ||
LICENSE | ||
README.md | ||
main.go |
README.md
🌊🌊🌊 Hochwasser 🌊🤽🌊
Highly efficient, distributed Pixelflut client.
- Can send static images, text, generated patterns (animations upcoming)
- REPL enables fast iterations
- CnC server + client architecture (canalso runs in a single process)
- Faster than sturmflut! (in some benchmarks at least)
- No dependencies (pixelflut apparently was considered a primary use case in the design of golang's stdlib 👍)
build / install
- have a
go
installation >= 1.12 go get github.com/SpeckiJ/Hochwasser
go install github.com/SpeckiJ/Hochwasser
benchmark
The following benchmark was run on a max-spec X280 against version d4c574b.
I could not figure out what the performance bottleneck is, but it doesn't seem to be CPU limited, as turbo-boost doesn't kick in.
To reproduce, run the following commands in separate shells:
iperf -s -p 1234
go run main.go -image benchmark/test.png -connections 10
55 Gbps on average! 🌊🌊🌊
sturmflut (./sturmflut 127.0.0.1:1337 benchmark/test.png -t 10
, version 8ec6ee9
) managed to get 48 Gpbs throughput on this system.
Hint: Benchmarking throughput against the pixelnuke server is pointless, as performance is then CPU-limited to ~1 Gbps by the server. Using iperf removes the server limitation. This also means that these metrics of several Gbps are far higher than realworld scenarios.
future ideas
For future ideas check IDEAS