- 20 Feb, 2018 3 commits
-
-
Kirill Smelkov authored
-
Kirill Smelkov authored
We can detect which protocol a client speaks by analyzing the first few bytes it sends. Then we can use HTTP for administrative & debugging tasks. In particular HTTP right now allows to collect profiles and traces: https://golang.org/pkg/net/http/pprof/ and requests tracing for places where it is used: https://godoc.org/golang.org/x/net/trace Even though it is a pity that such wrapping retains artifact that the connection actually used is a wrapper connection over accepted one, the performance impact is negligable: name old time/object new time/object delta deco/neo/go/fs1(!sha1)/zhash.go 31.6µs ± 2% 31.6µs ± 2% ~ (p=0.897 n=28+29)
-
Kirill Smelkov authored
Generally pti adds quite overhead: benchstat -split dataset 20180220-deco-linux4.15.4-noturbo.txt 20180220-deco-linux4.15.4-noturbo-nopti.txt name old pystone/s new pystone/s delta deco/pystone 219k ± 2% 222k ± 1% ~ (p=0.095 n=5+5) name old time/op new time/op delta deco/sha1/py/1K 1.62µs ± 0% 1.62µs ± 0% ~ (p=0.246 n=5+5) deco/sha1/go/1K 1.53µs ± 0% 1.53µs ± 0% ~ (p=0.294 n=5+5) deco/sha1/py/4K 5.78µs ± 0% 5.78µs ± 0% ~ (p=0.937 n=5+5) deco/sha1/go/4K 5.59µs ± 1% 5.58µs ± 0% ~ (p=0.119 n=5+5) deco/sha1/py/2M 2.82ms ± 0% 2.82ms ± 0% ~ (p=0.056 n=5+5) deco/sha1/go/2M 2.77ms ± 0% 2.77ms ± 0% ~ (p=0.151 n=5+5) deco/disk/randread/direct/4K-min 104µs ± 2% 103µs ± 2% ~ (p=0.302 n=5+5) deco/disk/randread/direct/4K-avg 143µs ± 0% 142µs ± 1% ~ (p=0.056 n=5+5) deco/disk/randread/direct/2M-min 5.30ms ± 4% 5.44ms ± 5% ~ (p=0.238 n=5+5) deco/disk/randread/direct/2M-avg 6.18ms ± 1% 6.11ms ± 1% -1.20% (p=0.048 n=5+5) deco/disk/randread/pagecache/4K-min 584ns ± 0% 359ns ± 1% -38.64% (p=0.008 n=5+5) deco/disk/randread/pagecache/4K-avg 981ns ± 0% 745ns ± 0% -24.05% (p=0.008 n=5+5) deco/disk/randread/pagecache/2M-min 193µs ± 5% 195µs ± 4% ~ (p=0.690 n=5+5) deco/disk/randread/pagecache/2M-avg 211µs ± 0% 211µs ± 0% ~ (p=0.389 n=5+5) name old time/object new time/object delta dataset:wczblk1-8 deco/fs1/zhash.py 20.0µs ± 2% 19.4µs ± 2% -3.00% (p=0.029 n=4+4) deco/fs1/zhash.py-P16 136µs ±15% 130µs ±22% ~ (p=0.346 n=16+16) deco/fs1/zhash.go 3.20µs ± 0% 2.70µs ± 0% -15.62% (p=0.000 n=5+4) deco/fs1/zhash.go+prefetch128 3.82µs ± 7% 3.90µs ± 8% ~ (p=0.397 n=5+5) deco/fs1/zhash.go-P16 13.9µs ±79% 10.7µs ±82% ~ (p=0.055 n=16+16) deco/zeo/zhash.py 378µs ± 8% 360µs ± 8% ~ (p=0.222 n=5+5) deco/zeo/zhash.py-P16 3.16ms ± 4% 3.06ms ± 5% -3.12% (p=0.007 n=14+16) deco/neo/py/sqlite/zhash.py 399µs ± 7% 380µs ± 3% -4.75% (p=0.032 n=5+5) deco/neo/py/sqlite/zhash.py-P16 3.30ms ± 1% 3.18ms ± 2% -3.67% (p=0.000 n=16+16) deco/neo/py/sqlite/zhash.go 288µs ± 1% 265µs ± 1% -8.11% (p=0.008 n=5+5) deco/neo/py/sqlite/zhash.go+prefetch128 147µs ± 2% 139µs ± 2% -5.61% (p=0.008 n=5+5) deco/neo/py/sqlite/zhash.go-P16 2.52ms ± 0% 2.32ms ± 1% -7.87% (p=0.000 n=14+13) deco/neo/py(!log)/sqlite/zhash.py 380µs ± 7% 357µs ± 2% -6.01% (p=0.032 n=5+5) deco/neo/py(!log)/sqlite/zhash.py-P16 3.10ms ± 2% 3.05ms ± 2% -1.75% (p=0.000 n=15+16) deco/neo/py(!log)/sqlite/zhash.go 261µs ± 0% 244µs ± 1% -6.51% (p=0.008 n=5+5) deco/neo/py(!log)/sqlite/zhash.go+prefetch128 131µs ± 2% 126µs ± 1% -4.17% (p=0.008 n=5+5) deco/neo/py(!log)/sqlite/zhash.go-P16 2.28ms ± 0% 2.17ms ± 0% -4.82% (p=0.000 n=14+16) deco/neo/py/sql/zhash.py 446µs ± 3% 424µs ± 6% ~ (p=0.200 n=4+4) deco/neo/py/sql/zhash.py-P16 4.71ms ± 0% 4.50ms ± 1% -4.28% (p=0.000 n=15+13) deco/neo/py/sql/zhash.go 330µs ± 1% 307µs ± 2% -6.97% (p=0.008 n=5+5) deco/neo/py/sql/zhash.go+prefetch128 213µs ± 2% 198µs ± 1% -7.12% (p=0.008 n=5+5) deco/neo/py/sql/zhash.go-P16 3.51ms ± 0% 3.22ms ± 0% -8.27% (p=0.000 n=15+13) deco/neo/py(!log)/sql/zhash.py 471µs ±41% 452µs ±43% ~ (p=0.310 n=5+5) deco/neo/py(!log)/sql/zhash.py-P16 4.41ms ± 0% 4.22ms ± 0% -4.21% (p=0.000 n=15+15) deco/neo/py(!log)/sql/zhash.go 310µs ± 1% 288µs ± 2% -7.10% (p=0.008 n=5+5) deco/neo/py(!log)/sql/zhash.go+prefetch128 189µs ± 4% 179µs ± 2% -4.96% (p=0.016 n=5+5) deco/neo/py(!log)/sql/zhash.go-P16 3.16ms ± 0% 2.95ms ± 0% -6.70% (p=0.000 n=16+16) deco/neo/go/fs1/zhash.py 224µs ± 3% 205µs ± 2% -8.54% (p=0.008 n=5+5) deco/neo/go/fs1/zhash.py-P16 2.04ms ± 6% 1.98ms ± 8% -2.92% (p=0.012 n=15+16) deco/neo/go/fs1/zhash.go 56.6µs ± 1% 48.8µs ± 1% -13.82% (p=0.008 n=5+5) deco/neo/go/fs1/zhash.go+prefetch128 24.3µs ± 4% 22.9µs ± 2% -5.76% (p=0.008 n=5+5) deco/neo/go/fs1/zhash.go-P16 337µs ±10% 307µs ± 7% -8.94% (p=0.000 n=15+14) deco/neo/go/fs1(!sha1)/zhash.go 40.1µs ± 1% 33.5µs ± 1% -16.40% (p=0.008 n=5+5) deco/neo/go/fs1(!sha1)/zhash.go+prefetch128 16.5µs ± 8% 16.0µs ± 9% ~ (p=0.516 n=5+5) deco/neo/go/fs1(!sha1)/zhash.go-P16 250µs ±20% 226µs ±16% -9.35% (p=0.001 n=15+16) deco/neo/go/sqlite/zhash.py 316µs ± 2% 283µs ± 4% -10.47% (p=0.008 n=5+5) deco/neo/go/sqlite/zhash.py-P16 2.55ms ± 3% 2.51ms ± 2% -1.61% (p=0.011 n=16+15) deco/neo/go/sqlite/zhash.go 203µs ± 0% 192µs ± 2% -5.26% (p=0.008 n=5+5) deco/neo/go/sqlite/zhash.go+prefetch128 106µs ± 2% 105µs ± 7% ~ (p=0.310 n=5+5) deco/neo/go/sqlite/zhash.go-P16 1.39ms ± 7% 1.36ms ± 6% -2.48% (p=0.012 n=16+16) deco/neo/go/sqlite(!sha1)/zhash.go 196µs ± 0% 185µs ± 1% -5.58% (p=0.016 n=4+5) deco/neo/go/sqlite(!sha1)/zhash.go+prefetch128 104µs ± 3% 102µs ± 2% ~ (p=0.206 n=5+5) deco/neo/go/sqlite(!sha1)/zhash.go-P16 1.38ms ± 4% 1.31ms ±11% -5.48% (p=0.000 n=16+16) dataset:prod1-1024 deco/fs1/zhash.py 15.9µs ± 2% 15.3µs ± 3% -3.92% (p=0.029 n=4+4) deco/fs1/zhash.py-P16 128µs ±11% 129µs ±21% ~ (p=0.780 n=16+16) deco/fs1/zhash.go 2.80µs ± 0% 2.30µs ± 0% -17.86% (p=0.008 n=5+5) deco/fs1/zhash.go+prefetch128 3.26µs ± 7% 3.14µs ± 8% ~ (p=0.246 n=5+5) deco/fs1/zhash.go-P16 12.2µs ±50% 10.9µs ±34% ~ (p=0.154 n=16+15) deco/zeo/zhash.py 360µs ± 6% 346µs ± 2% ~ (p=0.095 n=5+5) deco/zeo/zhash.py-P16 2.90ms ± 8% 2.89ms ± 6% ~ (p=0.631 n=15+15) deco/neo/py/sqlite/zhash.py 357µs ± 5% 331µs ± 7% -7.39% (p=0.032 n=5+5) deco/neo/py/sqlite/zhash.py-P16 3.12ms ± 0% 3.02ms ± 0% -3.08% (p=0.000 n=16+16) deco/neo/py/sqlite/zhash.go 182µs ± 0% 168µs ± 1% -7.37% (p=0.008 n=5+5) deco/neo/py/sqlite/zhash.go+prefetch128 131µs ± 2% 124µs ± 3% -5.32% (p=0.008 n=5+5) deco/neo/py/sqlite/zhash.go-P16 2.23ms ± 0% 2.10ms ± 0% -6.02% (p=0.000 n=14+15) deco/neo/py(!log)/sqlite/zhash.py 330µs ± 4% 316µs ± 4% ~ (p=0.095 n=5+5) deco/neo/py(!log)/sqlite/zhash.py-P16 2.91ms ± 1% 2.82ms ± 1% -3.34% (p=0.000 n=16+16) deco/neo/py(!log)/sqlite/zhash.go 165µs ± 0% 154µs ± 1% -6.86% (p=0.008 n=5+5) deco/neo/py(!log)/sqlite/zhash.go+prefetch128 114µs ± 1% 108µs ± 0% -5.75% (p=0.008 n=5+5) deco/neo/py(!log)/sqlite/zhash.go-P16 1.96ms ± 0% 1.85ms ± 0% -5.30% (p=0.000 n=15+15) deco/neo/py/sql/zhash.py 411µs ± 4% 373µs ± 1% -9.25% (p=0.029 n=4+4) deco/neo/py/sql/zhash.py-P16 4.45ms ± 0% 4.25ms ± 0% -4.47% (p=0.000 n=15+15) deco/neo/py/sql/zhash.go 231µs ± 1% 217µs ± 1% -6.01% (p=0.008 n=5+5) deco/neo/py/sql/zhash.go+prefetch128 189µs ± 1% 180µs ± 2% -4.71% (p=0.008 n=5+5) deco/neo/py/sql/zhash.go-P16 3.18ms ± 0% 2.98ms ± 0% -6.51% (p=0.000 n=15+14) deco/neo/py(!log)/sql/zhash.py 384µs ± 3% 359µs ± 3% -6.66% (p=0.029 n=4+4) deco/neo/py(!log)/sql/zhash.py-P16 4.28ms ± 0% 4.04ms ± 0% -5.45% (p=0.000 n=16+16) deco/neo/py(!log)/sql/zhash.go 213µs ± 1% 196µs ± 1% -7.85% (p=0.008 n=5+5) deco/neo/py(!log)/sql/zhash.go+prefetch128 171µs ± 1% 159µs ± 1% -7.19% (p=0.008 n=5+5) deco/neo/py(!log)/sql/zhash.go-P16 2.83ms ± 0% 2.59ms ± 3% -8.68% (p=0.000 n=16+16) deco/neo/go/fs1/zhash.py 218µs ± 1% 201µs ± 0% -8.14% (p=0.008 n=5+5) deco/neo/go/fs1/zhash.py-P16 1.97ms ± 2% 1.88ms ± 8% -4.25% (p=0.000 n=15+16) deco/neo/go/fs1/zhash.go 44.1µs ± 1% 37.7µs ± 1% -14.60% (p=0.008 n=5+5) deco/neo/go/fs1/zhash.go+prefetch128 16.9µs ± 3% 16.2µs ± 4% ~ (p=0.056 n=5+5) deco/neo/go/fs1/zhash.go-P16 313µs ± 8% 297µs ± 9% -4.97% (p=0.000 n=15+16) deco/neo/go/fs1(!sha1)/zhash.go 38.2µs ± 1% 32.8µs ± 2% -14.28% (p=0.008 n=5+5) deco/neo/go/fs1(!sha1)/zhash.go+prefetch128 14.0µs ± 3% 13.1µs ± 3% -6.70% (p=0.008 n=5+5) deco/neo/go/fs1(!sha1)/zhash.go-P16 297µs ±12% 262µs ±17% -11.89% (p=0.000 n=15+16) deco/neo/go/sqlite/zhash.py 268µs ± 4% 244µs ± 5% -9.10% (p=0.008 n=5+5) deco/neo/go/sqlite/zhash.py-P16 2.36ms ± 2% 2.30ms ± 3% -2.50% (p=0.000 n=15+16) deco/neo/go/sqlite/zhash.go 114µs ± 0% 105µs ± 0% -8.44% (p=0.008 n=5+5) deco/neo/go/sqlite/zhash.go+prefetch128 54.8µs ± 2% 52.5µs ± 1% -4.13% (p=0.008 n=5+5) deco/neo/go/sqlite/zhash.go-P16 873µs ± 2% 812µs ± 5% -7.03% (p=0.000 n=15+14) deco/neo/go/sqlite(!sha1)/zhash.go 114µs ± 2% 103µs ± 2% -9.58% (p=0.008 n=5+5) deco/neo/go/sqlite(!sha1)/zhash.go+prefetch128 53.5µs ± 3% 52.0µs ± 4% ~ (p=0.111 n=5+5) deco/neo/go/sqlite(!sha1)/zhash.go-P16 891µs ± 3% 856µs ± 2% -3.97% (p=0.000 n=16+15) however compare to 4.12 some things got also a bit slower even without pti (and some got faster): benchstat -split dataset 20180220-deco-linux4.12.13-noturbo.txt 20180220-deco-linux4.15.4-noturbo-nopti.txt name old pystone/s new pystone/s delta deco/pystone 211k ± 1% 222k ± 1% +5.19% (p=0.008 n=5+5) name old time/op new time/op delta deco/sha1/py/1K 1.69µs ± 0% 1.62µs ± 0% -3.86% (p=0.008 n=5+5) deco/sha1/go/1K 1.59µs ± 0% 1.53µs ± 0% -3.84% (p=0.008 n=5+5) deco/sha1/py/4K 6.01µs ± 0% 5.78µs ± 0% -3.93% (p=0.008 n=5+5) deco/sha1/go/4K 5.81µs ± 0% 5.58µs ± 0% -3.89% (p=0.008 n=5+5) deco/sha1/py/2M 2.93ms ± 0% 2.82ms ± 0% -3.65% (p=0.008 n=5+5) deco/sha1/go/2M 2.88ms ± 0% 2.77ms ± 0% -3.82% (p=0.008 n=5+5) deco/disk/randread/direct/4K-min 102µs ± 0% 103µs ± 2% ~ (p=0.135 n=5+5) deco/disk/randread/direct/4K-avg 140µs ± 0% 142µs ± 1% +1.56% (p=0.008 n=5+5) deco/disk/randread/direct/2M-min 4.95ms ± 2% 5.44ms ± 5% +9.94% (p=0.008 n=5+5) deco/disk/randread/direct/2M-avg 5.48ms ± 3% 6.11ms ± 1% +11.54% (p=0.008 n=5+5) deco/disk/randread/pagecache/4K-min 313ns ± 1% 359ns ± 1% +14.64% (p=0.008 n=5+5) deco/disk/randread/pagecache/4K-avg 706ns ± 0% 745ns ± 0% +5.50% (p=0.016 n=4+5) deco/disk/randread/pagecache/2M-min 200µs ± 5% 195µs ± 4% ~ (p=0.310 n=5+5) deco/disk/randread/pagecache/2M-avg 221µs ± 1% 211µs ± 0% -4.58% (p=0.008 n=5+5) name old time/object new time/object delta dataset:wczblk1-8 deco/fs1/zhash.py 19.8µs ± 2% 19.4µs ± 2% -2.25% (p=0.048 n=5+4) deco/fs1/zhash.py-P16 125µs ±30% 130µs ±22% ~ (p=0.468 n=16+16) deco/fs1/zhash.go 2.70µs ± 0% 2.70µs ± 0% ~ (all equal) deco/fs1/zhash.go+prefetch128 3.67µs ± 2% 3.90µs ± 8% ~ (p=0.175 n=4+5) deco/fs1/zhash.go-P16 10.6µs ±79% 10.7µs ±82% ~ (p=0.830 n=14+16) deco/zeo/zhash.py 384µs ± 9% 360µs ± 8% ~ (p=0.151 n=5+5) deco/zeo/zhash.py-P16 3.29ms ± 5% 3.06ms ± 5% -7.01% (p=0.000 n=15+16) deco/neo/py/sqlite/zhash.py 388µs ± 4% 380µs ± 3% ~ (p=0.421 n=5+5) deco/neo/py/sqlite/zhash.py-P16 3.45ms ± 1% 3.18ms ± 2% -7.82% (p=0.000 n=16+16) deco/neo/py/sqlite/zhash.go 273µs ± 1% 265µs ± 1% -2.94% (p=0.008 n=5+5) deco/neo/py/sqlite/zhash.go+prefetch128 141µs ± 3% 139µs ± 2% ~ (p=0.286 n=5+5) deco/neo/py/sqlite/zhash.go-P16 2.24ms ± 1% 2.32ms ± 1% +3.74% (p=0.000 n=12+13) deco/neo/py(!log)/sqlite/zhash.py 357µs ± 1% 357µs ± 2% ~ (p=0.690 n=5+5) deco/neo/py(!log)/sqlite/zhash.py-P16 3.29ms ± 2% 3.05ms ± 2% -7.35% (p=0.000 n=16+16) deco/neo/py(!log)/sqlite/zhash.go 249µs ± 0% 244µs ± 1% -1.93% (p=0.008 n=5+5) deco/neo/py(!log)/sqlite/zhash.go+prefetch128 128µs ± 2% 126µs ± 1% ~ (p=0.056 n=5+5) deco/neo/py(!log)/sqlite/zhash.go-P16 2.14ms ± 0% 2.17ms ± 0% +1.35% (p=0.000 n=16+16) deco/neo/py/sql/zhash.py 420µs ± 1% 424µs ± 6% ~ (p=0.686 n=4+4) deco/neo/py/sql/zhash.py-P16 4.59ms ± 0% 4.50ms ± 1% -1.86% (p=0.000 n=14+13) deco/neo/py/sql/zhash.go 312µs ± 1% 307µs ± 2% ~ (p=0.095 n=5+5) deco/neo/py/sql/zhash.go+prefetch128 200µs ± 2% 198µs ± 1% ~ (p=0.206 n=5+5) deco/neo/py/sql/zhash.go-P16 3.27ms ± 0% 3.22ms ± 0% -1.57% (p=0.000 n=14+13) deco/neo/py(!log)/sql/zhash.py 411µs ± 2% 452µs ±43% ~ (p=0.730 n=4+5) deco/neo/py(!log)/sql/zhash.py-P16 4.20ms ± 0% 4.22ms ± 0% +0.62% (p=0.000 n=14+15) deco/neo/py(!log)/sql/zhash.go 292µs ± 1% 288µs ± 2% ~ (p=0.095 n=5+5) deco/neo/py(!log)/sql/zhash.go+prefetch128 180µs ± 1% 179µs ± 2% ~ (p=0.548 n=5+5) deco/neo/py(!log)/sql/zhash.go-P16 2.88ms ± 0% 2.95ms ± 0% +2.67% (p=0.000 n=15+16) deco/neo/go/fs1/zhash.py 209µs ± 1% 205µs ± 2% -2.06% (p=0.016 n=5+5) deco/neo/go/fs1/zhash.py-P16 1.89ms ± 8% 1.98ms ± 8% +4.75% (p=0.002 n=16+16) deco/neo/go/fs1/zhash.go 45.2µs ± 1% 48.8µs ± 1% +7.78% (p=0.008 n=5+5) deco/neo/go/fs1/zhash.go+prefetch128 23.3µs ± 5% 22.9µs ± 2% ~ (p=0.643 n=5+5) deco/neo/go/fs1/zhash.go-P16 290µs ±10% 307µs ± 7% +6.06% (p=0.002 n=16+14) deco/neo/go/fs1(!sha1)/zhash.go 30.2µs ± 2% 33.5µs ± 1% +10.91% (p=0.008 n=5+5) deco/neo/go/fs1(!sha1)/zhash.go+prefetch128 14.6µs ±10% 16.0µs ± 9% +9.60% (p=0.024 n=5+5) deco/neo/go/fs1(!sha1)/zhash.go-P16 183µs ±15% 226µs ±16% +23.93% (p=0.000 n=15+16) deco/neo/go/sqlite/zhash.py 285µs ± 4% 283µs ± 4% ~ (p=0.548 n=5+5) deco/neo/go/sqlite/zhash.py-P16 2.44ms ± 4% 2.51ms ± 2% +3.12% (p=0.000 n=15+15) deco/neo/go/sqlite/zhash.go 191µs ± 1% 192µs ± 2% ~ (p=0.627 n=5+5) deco/neo/go/sqlite/zhash.go+prefetch128 106µs ± 5% 105µs ± 7% ~ (p=0.421 n=5+5) deco/neo/go/sqlite/zhash.go-P16 1.43ms ± 2% 1.36ms ± 6% -4.96% (p=0.000 n=16+16) deco/neo/go/sqlite(!sha1)/zhash.go 186µs ± 1% 185µs ± 1% ~ (p=0.421 n=5+5) deco/neo/go/sqlite(!sha1)/zhash.go+prefetch128 102µs ± 3% 102µs ± 2% ~ (p=0.841 n=5+5) deco/neo/go/sqlite(!sha1)/zhash.go-P16 1.38ms ± 8% 1.31ms ±11% -5.27% (p=0.000 n=16+16) dataset:prod1-1024 deco/fs1/zhash.py 15.8µs ± 1% 15.3µs ± 3% -3.01% (p=0.029 n=4+4) deco/fs1/zhash.py-P16 127µs ±11% 129µs ±21% ~ (p=0.696 n=16+16) deco/fs1/zhash.go 2.20µs ± 0% 2.30µs ± 0% +4.55% (p=0.008 n=5+5) deco/fs1/zhash.go+prefetch128 3.08µs ± 4% 3.14µs ± 8% ~ (p=0.794 n=5+5) deco/fs1/zhash.go-P16 8.99µs ±66% 10.93µs ±34% ~ (p=0.127 n=16+15) deco/zeo/zhash.py 349µs ± 5% 346µs ± 2% ~ (p=0.548 n=5+5) deco/zeo/zhash.py-P16 3.17ms ± 2% 2.89ms ± 6% -8.82% (p=0.000 n=12+15) deco/neo/py/sqlite/zhash.py 350µs ± 5% 331µs ± 7% ~ (p=0.056 n=5+5) deco/neo/py/sqlite/zhash.py-P16 3.31ms ± 1% 3.02ms ± 0% -8.82% (p=0.000 n=16+16) deco/neo/py/sqlite/zhash.go 170µs ± 0% 168µs ± 1% -0.87% (p=0.008 n=5+5) deco/neo/py/sqlite/zhash.go+prefetch128 125µs ± 1% 124µs ± 3% ~ (p=0.421 n=5+5) deco/neo/py/sqlite/zhash.go-P16 2.11ms ± 0% 2.10ms ± 0% -0.61% (p=0.000 n=13+15) deco/neo/py(!log)/sqlite/zhash.py 317µs ± 1% 316µs ± 4% ~ (p=1.000 n=5+5) deco/neo/py(!log)/sqlite/zhash.py-P16 3.01ms ± 1% 2.82ms ± 1% -6.28% (p=0.000 n=16+16) deco/neo/py(!log)/sqlite/zhash.go 153µs ± 0% 154µs ± 1% ~ (p=0.095 n=5+5) deco/neo/py(!log)/sqlite/zhash.go+prefetch128 107µs ± 1% 108µs ± 0% ~ (p=0.548 n=5+5) deco/neo/py(!log)/sqlite/zhash.go-P16 1.83ms ± 0% 1.85ms ± 0% +1.06% (p=0.000 n=16+15) deco/neo/py/sql/zhash.py 382µs ± 2% 373µs ± 1% ~ (p=0.114 n=4+4) deco/neo/py/sql/zhash.py-P16 4.33ms ± 0% 4.25ms ± 0% -1.99% (p=0.000 n=15+15) deco/neo/py/sql/zhash.go 217µs ± 1% 217µs ± 1% ~ (p=1.000 n=5+5) deco/neo/py/sql/zhash.go+prefetch128 182µs ± 1% 180µs ± 2% ~ (p=0.135 n=5+5) deco/neo/py/sql/zhash.go-P16 2.95ms ± 4% 2.98ms ± 0% +1.10% (p=0.019 n=16+14) deco/neo/py(!log)/sql/zhash.py 372µs ± 4% 359µs ± 3% ~ (p=0.200 n=4+4) deco/neo/py(!log)/sql/zhash.py-P16 4.15ms ± 0% 4.04ms ± 0% -2.43% (p=0.000 n=14+16) deco/neo/py(!log)/sql/zhash.go 194µs ± 0% 196µs ± 1% +0.87% (p=0.008 n=5+5) deco/neo/py(!log)/sql/zhash.go+prefetch128 158µs ± 1% 159µs ± 1% ~ (p=0.246 n=5+5) deco/neo/py(!log)/sql/zhash.go-P16 2.62ms ± 0% 2.59ms ± 3% -1.32% (p=0.017 n=15+16) deco/neo/go/fs1/zhash.py 201µs ± 2% 201µs ± 0% ~ (p=0.690 n=5+5) deco/neo/go/fs1/zhash.py-P16 1.77ms ± 5% 1.88ms ± 8% +6.31% (p=0.000 n=16+16) deco/neo/go/fs1/zhash.go 34.3µs ± 1% 37.7µs ± 1% +9.73% (p=0.008 n=5+5) deco/neo/go/fs1/zhash.go+prefetch128 15.4µs ± 3% 16.2µs ± 4% +5.05% (p=0.032 n=5+5) deco/neo/go/fs1/zhash.go-P16 304µs ± 8% 297µs ± 9% ~ (p=0.128 n=16+16) deco/neo/go/fs1(!sha1)/zhash.go 28.9µs ± 2% 32.8µs ± 2% +13.58% (p=0.008 n=5+5) deco/neo/go/fs1(!sha1)/zhash.go+prefetch128 12.7µs ± 5% 13.1µs ± 3% ~ (p=0.214 n=5+5) deco/neo/go/fs1(!sha1)/zhash.go-P16 298µs ± 2% 262µs ±17% -12.17% (p=0.000 n=13+16) deco/neo/go/sqlite/zhash.py 241µs ± 3% 244µs ± 5% ~ (p=0.548 n=5+5) deco/neo/go/sqlite/zhash.py-P16 2.21ms ± 3% 2.30ms ± 3% +4.41% (p=0.000 n=16+16) deco/neo/go/sqlite/zhash.go 101µs ± 0% 105µs ± 0% +3.43% (p=0.008 n=5+5) deco/neo/go/sqlite/zhash.go+prefetch128 53.3µs ± 3% 52.5µs ± 1% ~ (p=0.452 n=5+5) deco/neo/go/sqlite/zhash.go-P16 839µs ± 2% 812µs ± 5% -3.28% (p=0.000 n=14+14) deco/neo/go/sqlite(!sha1)/zhash.go 100µs ± 0% 103µs ± 2% +2.67% (p=0.016 n=4+5) deco/neo/go/sqlite(!sha1)/zhash.go+prefetch128 52.9µs ± 4% 52.0µs ± 4% ~ (p=0.310 n=5+5) deco/neo/go/sqlite(!sha1)/zhash.go-P16 853µs ± 3% 856µs ± 2% ~ (p=0.953 n=16+15)
-
- 19 Feb, 2018 1 commit
-
-
Kirill Smelkov authored
-
- 15 Feb, 2018 10 commits
-
-
Kirill Smelkov authored
-
Kirill Smelkov authored
-
Kirill Smelkov authored
-
Kirill Smelkov authored
-
Kirill Smelkov authored
-
Kirill Smelkov authored
-
Kirill Smelkov authored
-
Kirill Smelkov authored
-
Kirill Smelkov authored
-
Kirill Smelkov authored
-
- 14 Feb, 2018 3 commits
-
-
Kirill Smelkov authored
-
Kirill Smelkov authored
-
Kirill Smelkov authored
-
- 13 Feb, 2018 11 commits
-
-
Kirill Smelkov authored
-
Kirill Smelkov authored
-
Kirill Smelkov authored
-
Kirill Smelkov authored
-
Kirill Smelkov authored
-
Kirill Smelkov authored
-
Kirill Smelkov authored
-
Kirill Smelkov authored
-
Kirill Smelkov authored
-
Kirill Smelkov authored
-
Kirill Smelkov authored
zodbtools provide additional service over zodb (various dumping routines), but neotools just invokes neo.NewMaster and neo.NewStorage. For a possible future `neo monitor` maybe bringing neotools back would be needed, but for now there is simply no reason to keep them around.
-
- 12 Feb, 2018 5 commits
-
-
Kirill Smelkov authored
-
Kirill Smelkov authored
-
Kirill Smelkov authored
not used outside neonet.
-
Kirill Smelkov authored
-
Kirill Smelkov authored
-
- 09 Feb, 2018 6 commits
-
-
Kirill Smelkov authored
-
Kirill Smelkov authored
-
Kirill Smelkov authored
-
Kirill Smelkov authored
-
Kirill Smelkov authored
-
Kirill Smelkov authored
-
- 08 Feb, 2018 1 commit
-
-
Kirill Smelkov authored
-