mirror of
https://framagit.org/ppom/reaction
synced 2026-03-14 20:55:47 +01:00
- The interface is easier
- This permits me to have unbounded buffers.
I did some benchmarking on both options.
I can't see any difference in terms of
- CPU performance,
- memory usage, and
- stockage size.
I used this file: `datasize.jsonnet`
```jsonnet
{
patterns: {
num: {
regex: @'([0-9]+)',
},
},
streams: {
s1: {
cmd: ['seq', '-w', '499999'],
filters: {
f1: {
regex: [
'^<num>$',
],
retry: 10,
retryperiod: '1m',
actions: {
a: {
cmd: ['true'],
},
b: {
cmd: ['true'],
after: '1m',
},
},
},
},
},
},
}
```
And this commands:
```
rm reaction-*
sudo systemd-run --wait -p User=ao -p MemoryAccounting=yes -p WorkingDirectory=(pwd) -p Environment=PATH=/run/current-system/sw/bin/ time ./target/release/reaction start -c datasize.jsonnet && ls -l reaction-matches.db
sudo systemd-run --wait -p User=ao -p MemoryAccounting=yes -p WorkingDirectory=(pwd) -p Environment=PATH=/run/current-system/sw/bin/ time ./target/release/reaction start -c datasize.jsonnet && ls -l reaction-matches.db
sudo systemd-run --wait -p User=ao -p MemoryAccounting=yes -p WorkingDirectory=(pwd) -p Environment=PATH=/run/current-system/sw/bin/ time ./target/release/reaction start -c datasize.jsonnet && ls -l reaction-matches.db
```
At the first invocation, reaction reads no DB.
At the second invocation, reaction reads a DB.
At the third invocation, reaction reads a double-sized DB.
|
||
|---|---|---|
| .. | ||
| src | ||
| .gitignore | ||
| Cargo.lock | ||
| Cargo.toml | ||
| datasize.jsonnet | ||
| example.json | ||
| heavy-load.yml | ||
| test.jsonnet | ||