- 22 Feb, 2018 2 commits
-
-
Kirill Smelkov authored
Compared to 55a64368 (rio localhost; 2017-11-06) the change is in kernel: -# Linux rio 4.13.0-1-amd64 #1 SMP Debian 4.13.4-2 (2017-10-15) x86_64 GNU/Linux +# Linux rio 4.15.0-1-amd64 #1 SMP Debian 4.15.4-1 (2018-02-18) x86_64 GNU/Linux and in particular 4.15 comes with PTI. summary: - direct disk 4K read is ~ 93µs as it was - pagecache is now slower due to PTI: the timing changed 0.6µs -> 0.8µs - fs1.py access is ~2% slower, probably due to PTI - fs1.go access is much slower due to client cache being always bolted on: 2.4µs -> 3.8µs (serial). The time for both serial and parallel cases is still small. - zeo is ~2% slower, probably due to PTI. - neo/py/sqlite vs zhash.py is 8% faster - because we removed data compression from the benchmark (b9827725), however P16 time is not improved. - neo/py/sqlite vs zhash.go is 40% faster - because we removed data compression from the benchmark and previously neo/go code was very inefficient at zlib decompression (924831e7, 9acb87a8, 57524491). However P16 time is improved only by 2-5%. - neo/py/sql vs zhash.{py,go} - similar changes to neo/py/sqlite - neo/go/fs1 vs zhash.py - unchanged; vs zhash.go - slower by 12% - probably due to PTI. zhash.go P16 case is improved by ~35% but it could be all noise. - newly introduces neo/go/sqlite vs zhash.go is at ~ 80-88µs for serial and ~ 230-300µs for P16 latencies (neo/py/sqlite for the same vs zhash.go is at ~ 120-130µs for serial and ~1600µs for P16 latencies). Clearly neo/go/sqlite needs more work. Full details: $ benchstat -split dataset 20180222-rio.txt |grep sqlite |grep 'neo.go' rio/neo/go/sqlite/zhash.py 230µs ± 2% rio/neo/go/sqlite/zhash.py-P16 937µs ± 5% rio/neo/go/sqlite/zhash.go 88.4µs ± 2% rio/neo/go/sqlite/zhash.go+prefetch128 33.6µs ± 7% rio/neo/go/sqlite/zhash.go-P16 228µs ±39% rio/neo/go/sqlite(!sha1)/zhash.go 79.7µs ± 3% rio/neo/go/sqlite(!sha1)/zhash.go+prefetch128 32.2µs ± 8% rio/neo/go/sqlite(!sha1)/zhash.go-P16 213µs ±42% rio/neo/go/sqlite/zhash.py 232µs ± 2% rio/neo/go/sqlite/zhash.py-P16 1.00ms ± 3% rio/neo/go/sqlite/zhash.go 79.2µs ± 2% rio/neo/go/sqlite/zhash.go+prefetch128 29.8µs ± 8% rio/neo/go/sqlite/zhash.go-P16 302µs ±40% rio/neo/go/sqlite(!sha1)/zhash.go 78.3µs ± 2% rio/neo/go/sqlite(!sha1)/zhash.go+prefetch128 31.1µs ± 2% rio/neo/go/sqlite(!sha1)/zhash.go-P16 311µs ±40% $ benchstat -split dataset 20171106-time-rio-Cenabled.txt 20180222-rio.txt name old pystone/s new pystone/s delta rio/pystone 178k ± 2% 180k ± 3% ~ (p=0.421 n=5+5) name old time/op new time/op delta rio/disk/randread/direct/4K-min 34.0µs ± 1% 34.7µs ± 1% +2.06% (p=0.008 n=5+5) rio/disk/randread/direct/4K-avg 92.9µs ± 0% 93.2µs ± 0% +0.37% (p=0.024 n=5+5) rio/disk/randread/pagecache/4K-min 221ns ± 0% 441ns ± 0% +99.37% (p=0.016 n=4+5) rio/disk/randread/pagecache/4K-avg 637ns ± 0% 872ns ± 1% +37.01% (p=0.016 n=4+5) name old time/object new time/object delta dataset:wczblk1-8 rio/fs1/zhash.py 22.3µs ± 2% 22.8µs ± 2% +2.24% (p=0.048 n=5+5) rio/fs1/zhash.py-P16 51.7µs ±72% 60.3µs ±49% ~ (p=0.127 n=15+16) rio/fs1/zhash.go 2.40µs ± 0% 3.80µs ± 0% +58.33% (p=0.016 n=5+4) rio/fs1/zhash.go+prefetch128 4.34µs ± 8% 4.10µs ± 2% ~ (p=0.246 n=5+5) rio/fs1/zhash.go-P16 3.58µs ±24% 6.79µs ±19% +90.01% (p=0.000 n=16+14) rio/zeo/zhash.py 336µs ± 2% 342µs ± 2% +1.82% (p=0.040 n=5+5) rio/zeo/zhash.py-P16 1.61ms ±19% 1.64ms ±20% ~ (p=0.423 n=16+16) rio/neo/py/sqlite/zhash.py 304µs ± 6% 279µs ± 3% -8.11% (p=0.016 n=5+5) rio/neo/py/sqlite/zhash.py-P16 2.19ms ± 0% 2.28ms ± 1% +4.16% (p=0.000 n=13+15) rio/neo/py/sqlite/zhash.go 248µs ± 1% 147µs ± 2% -40.70% (p=0.008 n=5+5) rio/neo/py/sqlite/zhash.go+prefetch128 125µs ± 1% 125µs ± 2% ~ (p=0.651 n=5+5) rio/neo/py/sqlite/zhash.go-P16 1.76ms ±13% 1.73ms ±14% -1.72% (p=0.002 n=16+16) rio/neo/py(!log)/sqlite/zhash.py 291µs ± 2% 267µs ± 1% -8.20% (p=0.008 n=5+5) rio/neo/py(!log)/sqlite/zhash.py-P16 2.01ms ± 2% 2.01ms ± 1% ~ (p=0.545 n=16+15) rio/neo/py(!log)/sqlite/zhash.go 231µs ± 1% 130µs ± 2% -43.54% (p=0.008 n=5+5) rio/neo/py(!log)/sqlite/zhash.go+prefetch128 110µs ± 2% 112µs ± 4% ~ (p=0.222 n=5+5) rio/neo/py(!log)/sqlite/zhash.go-P16 1.62ms ± 7% 1.62ms ± 0% +0.18% (p=0.029 n=16+11) rio/neo/py/sql/zhash.py 325µs ± 4% 294µs ± 1% -9.50% (p=0.029 n=4+4) rio/neo/py/sql/zhash.py-P16 2.88ms ± 1% 2.85ms ± 1% -0.94% (p=0.000 n=15+15) rio/neo/py/sql/zhash.go 275µs ± 2% 169µs ± 3% -38.39% (p=0.008 n=5+5) rio/neo/py/sql/zhash.go+prefetch128 154µs ± 3% 154µs ± 4% ~ (p=1.000 n=5+5) rio/neo/py/sql/zhash.go-P16 2.30ms ± 8% 2.19ms ±11% -5.03% (p=0.009 n=16+16) rio/neo/py(!log)/sql/zhash.py 313µs ± 4% 285µs ± 5% -8.95% (p=0.029 n=4+4) rio/neo/py(!log)/sql/zhash.py-P16 2.56ms ± 1% 2.47ms ± 1% -3.45% (p=0.000 n=15+14) rio/neo/py(!log)/sql/zhash.go 258µs ± 1% 152µs ± 1% -41.05% (p=0.016 n=5+4) rio/neo/py(!log)/sql/zhash.go+prefetch128 139µs ± 1% 137µs ± 3% ~ (p=0.151 n=5+5) rio/neo/py(!log)/sql/zhash.go-P16 2.21ms ± 5% 1.98ms ± 0% -10.19% (p=0.000 n=16+11) rio/neo/go/fs1/zhash.py 190µs ± 3% 190µs ± 4% ~ (p=1.000 n=5+5) rio/neo/go/fs1/zhash.py-P16 784µs ± 9% 755µs ± 7% -3.69% (p=0.018 n=16+16) rio/neo/go/fs1/zhash.go 52.0µs ± 1% 58.0µs ± 3% +11.55% (p=0.008 n=5+5) rio/neo/go/fs1/zhash.go+prefetch128 26.6µs ± 5% 24.9µs ± 4% ~ (p=0.087 n=5+5) rio/neo/go/fs1/zhash.go-P16 256µs ± 6% 164µs ±50% -36.13% (p=0.000 n=15+16) rio/neo/go/fs1(!sha1)/zhash.go 35.3µs ± 4% 37.3µs ± 2% +5.73% (p=0.008 n=5+5) rio/neo/go/fs1(!sha1)/zhash.go+prefetch128 17.3µs ± 2% 16.3µs ± 2% -6.00% (p=0.008 n=5+5) rio/neo/go/fs1(!sha1)/zhash.go-P16 152µs ±13% 118µs ±51% -22.57% (p=0.000 n=13+16) dataset:prod1-1024 rio/fs1/zhash.py 18.9µs ± 1% 18.9µs ± 2% ~ (p=0.825 n=5+5) rio/fs1/zhash.py-P16 58.0µs ±52% 56.2µs ±32% ~ (p=0.926 n=16+16) rio/fs1/zhash.go 1.30µs ± 0% 2.80µs ± 0% +115.38% (p=0.016 n=4+5) rio/fs1/zhash.go+prefetch128 2.78µs ±14% 2.70µs ± 0% ~ (p=0.413 n=5+4) rio/fs1/zhash.go-P16 2.24µs ±16% 6.59µs ±43% +194.93% (p=0.000 n=14+16) rio/zeo/zhash.py 302µs ± 7% 294µs ± 6% ~ (p=0.310 n=5+5) rio/zeo/zhash.py-P16 1.44ms ±11% 1.46ms ± 3% ~ (p=0.892 n=15+13) rio/neo/py/sqlite/zhash.py 269µs ± 1% 275µs ± 1% +2.51% (p=0.008 n=5+5) rio/neo/py/sqlite/zhash.py-P16 2.19ms ± 0% 2.34ms ± 0% +6.70% (p=0.000 n=16+13) rio/neo/py/sqlite/zhash.go 158µs ± 1% 140µs ± 3% -11.68% (p=0.008 n=5+5) rio/neo/py/sqlite/zhash.go+prefetch128 116µs ± 3% 118µs ± 1% ~ (p=0.111 n=5+5) rio/neo/py/sqlite/zhash.go-P16 1.90ms ± 0% 1.81ms ± 7% -4.58% (p=0.000 n=14+16) rio/neo/py(!log)/sqlite/zhash.py 259µs ± 4% 262µs ± 3% ~ (p=0.690 n=5+5) rio/neo/py(!log)/sqlite/zhash.py-P16 1.89ms ± 1% 2.04ms ± 0% +7.53% (p=0.000 n=15+15) rio/neo/py(!log)/sqlite/zhash.go 142µs ± 1% 123µs ± 2% -13.14% (p=0.008 n=5+5) rio/neo/py(!log)/sqlite/zhash.go+prefetch128 101µs ± 2% 103µs ± 1% +2.37% (p=0.008 n=5+5) rio/neo/py(!log)/sqlite/zhash.go-P16 1.57ms ± 0% 1.61ms ± 5% ~ (p=0.089 n=13+16) rio/neo/py/sql/zhash.py 337µs ±43% 298µs ± 3% ~ (p=0.556 n=5+4) rio/neo/py/sql/zhash.py-P16 2.73ms ± 0% 2.86ms ± 0% +4.74% (p=0.000 n=15+15) rio/neo/py/sql/zhash.go 186µs ± 3% 164µs ± 4% -11.92% (p=0.008 n=5+5) rio/neo/py/sql/zhash.go+prefetch128 145µs ± 2% 147µs ± 2% ~ (p=0.095 n=5+5) rio/neo/py/sql/zhash.go-P16 2.29ms ± 6% 2.27ms ± 6% -1.19% (p=0.002 n=16+16) rio/neo/py(!log)/sql/zhash.py 293µs ± 4% 287µs ± 2% ~ (p=0.343 n=4+4) rio/neo/py(!log)/sql/zhash.py-P16 2.47ms ± 0% 2.51ms ± 1% +1.61% (p=0.000 n=15+15) rio/neo/py(!log)/sql/zhash.go 168µs ± 1% 146µs ± 2% -13.49% (p=0.008 n=5+5) rio/neo/py(!log)/sql/zhash.go+prefetch128 130µs ± 2% 127µs ± 2% ~ (p=0.056 n=5+5) rio/neo/py(!log)/sql/zhash.go-P16 2.08ms ± 3% 2.00ms ± 4% -3.98% (p=0.009 n=16+16) rio/neo/go/fs1/zhash.py 181µs ± 5% 189µs ± 9% ~ (p=0.079 n=5+5) rio/neo/go/fs1/zhash.py-P16 714µs ± 6% 711µs ± 3% ~ (p=0.861 n=15+16) rio/neo/go/fs1/zhash.go 36.9µs ± 3% 41.8µs ± 2% +13.21% (p=0.008 n=5+5) rio/neo/go/fs1/zhash.go+prefetch128 16.5µs ± 1% 16.8µs ± 3% ~ (p=0.103 n=5+5) rio/neo/go/fs1/zhash.go-P16 239µs ± 4% 195µs ± 4% -18.37% (p=0.000 n=15+13) rio/neo/go/fs1(!sha1)/zhash.go 32.7µs ± 7% 36.3µs ± 2% +11.07% (p=0.008 n=5+5) rio/neo/go/fs1(!sha1)/zhash.go+prefetch128 13.5µs ± 1% 13.9µs ± 4% ~ (p=0.056 n=5+5) rio/neo/go/fs1(!sha1)/zhash.go-P16 190µs ± 7% 138µs ±60% -27.42% (p=0.000 n=14+16) name old pystone/s new pystone/s delta rio/pystone 178k ± 2% 180k ± 3% ~ (p=0.421 n=5+5) name old time/op new time/op delta rio/disk/randread/direct/4K-min 34.0µs ± 1% 34.7µs ± 1% +2.06% (p=0.008 n=5+5) rio/disk/randread/direct/4K-avg 92.9µs ± 0% 93.2µs ± 0% +0.37% (p=0.024 n=5+5) rio/disk/randread/pagecache/4K-min 221ns ± 0% 441ns ± 0% +99.37% (p=0.016 n=4+5) rio/disk/randread/pagecache/4K-avg 637ns ± 0% 872ns ± 1% +37.01% (p=0.016 n=4+5) name old time/object new time/object delta dataset:wczblk1-8 rio/fs1/zhash.py 22.3µs ± 2% 22.8µs ± 2% +2.24% (p=0.048 n=5+5) rio/fs1/zhash.py-P16 51.7µs ±72% 60.3µs ±49% ~ (p=0.127 n=15+16) rio/fs1/zhash.go 2.40µs ± 0% 3.80µs ± 0% +58.33% (p=0.016 n=5+4) rio/fs1/zhash.go+prefetch128 4.34µs ± 8% 4.10µs ± 2% ~ (p=0.246 n=5+5) rio/fs1/zhash.go-P16 3.58µs ±24% 6.79µs ±19% +90.01% (p=0.000 n=16+14) rio/zeo/zhash.py 336µs ± 2% 342µs ± 2% +1.82% (p=0.040 n=5+5) rio/zeo/zhash.py-P16 1.61ms ±19% 1.64ms ±20% ~ (p=0.423 n=16+16) rio/neo/py/sqlite/zhash.py 304µs ± 6% 279µs ± 3% -8.11% (p=0.016 n=5+5) rio/neo/py/sqlite/zhash.py-P16 2.19ms ± 0% 2.28ms ± 1% +4.16% (p=0.000 n=13+15) rio/neo/py/sqlite/zhash.go 248µs ± 1% 147µs ± 2% -40.70% (p=0.008 n=5+5) rio/neo/py/sqlite/zhash.go+prefetch128 125µs ± 1% 125µs ± 2% ~ (p=0.651 n=5+5) rio/neo/py/sqlite/zhash.go-P16 1.76ms ±13% 1.73ms ±14% -1.72% (p=0.002 n=16+16) rio/neo/py(!log)/sqlite/zhash.py 291µs ± 2% 267µs ± 1% -8.20% (p=0.008 n=5+5) rio/neo/py(!log)/sqlite/zhash.py-P16 2.01ms ± 2% 2.01ms ± 1% ~ (p=0.545 n=16+15) rio/neo/py(!log)/sqlite/zhash.go 231µs ± 1% 130µs ± 2% -43.54% (p=0.008 n=5+5) rio/neo/py(!log)/sqlite/zhash.go+prefetch128 110µs ± 2% 112µs ± 4% ~ (p=0.222 n=5+5) rio/neo/py(!log)/sqlite/zhash.go-P16 1.62ms ± 7% 1.62ms ± 0% +0.18% (p=0.029 n=16+11) rio/neo/py/sql/zhash.py 325µs ± 4% 294µs ± 1% -9.50% (p=0.029 n=4+4) rio/neo/py/sql/zhash.py-P16 2.88ms ± 1% 2.85ms ± 1% -0.94% (p=0.000 n=15+15) rio/neo/py/sql/zhash.go 275µs ± 2% 169µs ± 3% -38.39% (p=0.008 n=5+5) rio/neo/py/sql/zhash.go+prefetch128 154µs ± 3% 154µs ± 4% ~ (p=1.000 n=5+5) rio/neo/py/sql/zhash.go-P16 2.30ms ± 8% 2.19ms ±11% -5.03% (p=0.009 n=16+16) rio/neo/py(!log)/sql/zhash.py 313µs ± 4% 285µs ± 5% -8.95% (p=0.029 n=4+4) rio/neo/py(!log)/sql/zhash.py-P16 2.56ms ± 1% 2.47ms ± 1% -3.45% (p=0.000 n=15+14) rio/neo/py(!log)/sql/zhash.go 258µs ± 1% 152µs ± 1% -41.05% (p=0.016 n=5+4) rio/neo/py(!log)/sql/zhash.go+prefetch128 139µs ± 1% 137µs ± 3% ~ (p=0.151 n=5+5) rio/neo/py(!log)/sql/zhash.go-P16 2.21ms ± 5% 1.98ms ± 0% -10.19% (p=0.000 n=16+11) dataset:prod1-1024 rio/fs1/zhash.py 18.9µs ± 1% 18.9µs ± 2% ~ (p=0.825 n=5+5) rio/fs1/zhash.py-P16 58.0µs ±52% 56.2µs ±32% ~ (p=0.926 n=16+16) rio/fs1/zhash.go 1.30µs ± 0% 2.80µs ± 0% +115.38% (p=0.016 n=4+5) rio/fs1/zhash.go+prefetch128 2.78µs ±14% 2.70µs ± 0% ~ (p=0.413 n=5+4) rio/fs1/zhash.go-P16 2.24µs ±16% 6.59µs ±43% +194.93% (p=0.000 n=14+16) rio/zeo/zhash.py 302µs ± 7% 294µs ± 6% ~ (p=0.310 n=5+5) rio/zeo/zhash.py-P16 1.44ms ±11% 1.46ms ± 3% ~ (p=0.892 n=15+13) rio/neo/py/sqlite/zhash.py 269µs ± 1% 275µs ± 1% +2.51% (p=0.008 n=5+5) rio/neo/py/sqlite/zhash.py-P16 2.19ms ± 0% 2.34ms ± 0% +6.70% (p=0.000 n=16+13) rio/neo/py/sqlite/zhash.go 158µs ± 1% 140µs ± 3% -11.68% (p=0.008 n=5+5) rio/neo/py/sqlite/zhash.go+prefetch128 116µs ± 3% 118µs ± 1% ~ (p=0.111 n=5+5) rio/neo/py/sqlite/zhash.go-P16 1.90ms ± 0% 1.81ms ± 7% -4.58% (p=0.000 n=14+16) rio/neo/py(!log)/sqlite/zhash.py 259µs ± 4% 262µs ± 3% ~ (p=0.690 n=5+5) rio/neo/py(!log)/sqlite/zhash.py-P16 1.89ms ± 1% 2.04ms ± 0% +7.53% (p=0.000 n=15+15) rio/neo/py(!log)/sqlite/zhash.go 142µs ± 1% 123µs ± 2% -13.14% (p=0.008 n=5+5) rio/neo/py(!log)/sqlite/zhash.go+prefetch128 101µs ± 2% 103µs ± 1% +2.37% (p=0.008 n=5+5) rio/neo/py(!log)/sqlite/zhash.go-P16 1.57ms ± 0% 1.61ms ± 5% ~ (p=0.089 n=13+16) rio/neo/py/sql/zhash.py 337µs ±43% 298µs ± 3% ~ (p=0.556 n=5+4) rio/neo/py/sql/zhash.py-P16 2.73ms ± 0% 2.86ms ± 0% +4.74% (p=0.000 n=15+15) rio/neo/py/sql/zhash.go 186µs ± 3% 164µs ± 4% -11.92% (p=0.008 n=5+5) rio/neo/py/sql/zhash.go+prefetch128 145µs ± 2% 147µs ± 2% ~ (p=0.095 n=5+5) rio/neo/py/sql/zhash.go-P16 2.29ms ± 6% 2.27ms ± 6% -1.19% (p=0.002 n=16+16) rio/neo/py(!log)/sql/zhash.py 293µs ± 4% 287µs ± 2% ~ (p=0.343 n=4+4) rio/neo/py(!log)/sql/zhash.py-P16 2.47ms ± 0% 2.51ms ± 1% +1.61% (p=0.000 n=15+15) rio/neo/py(!log)/sql/zhash.go 168µs ± 1% 146µs ± 2% -13.49% (p=0.008 n=5+5) rio/neo/py(!log)/sql/zhash.go+prefetch128 130µs ± 2% 127µs ± 2% ~ (p=0.056 n=5+5) rio/neo/py(!log)/sql/zhash.go-P16 2.08ms ± 3% 2.00ms ± 4% -3.98% (p=0.009 n=16+16)
-
Kirill Smelkov authored
-
- 21 Feb, 2018 6 commits
-
-
Kirill Smelkov authored
benchstat 20180221-deco-noturbo.txt 20180221-deco-noturbo-noz.txt name old pystone/s new pystone/s delta deco/pystone 220k ± 1% 221k ± 0% ~ (p=1.000 n=5+5) name old time/op new time/op delta deco/sha1/py/1K 1.83µs ± 1% 1.85µs ± 2% ~ (p=0.167 n=5+5) deco/sha1/go/1K 1.53µs ± 0% 1.53µs ± 0% ~ (p=0.556 n=4+5) deco/sha1/py/4K 6.68µs ± 1% 6.68µs ± 1% ~ (p=0.802 n=5+5) deco/sha1/go/4K 5.59µs ± 0% 5.59µs ± 0% ~ (p=0.151 n=5+5) deco/sha1/py/2M 3.19ms ± 0% 3.18ms ± 0% ~ (p=0.310 n=5+5) deco/sha1/go/2M 2.78ms ± 0% 2.78ms ± 0% ~ (p=0.222 n=5+5) deco/unzlib/py/null-1K 2.83µs ± 2% 2.81µs ± 0% ~ (p=0.516 n=5+5) deco/unzlib/go/null-1K 2.87µs ± 1% 2.86µs ± 0% ~ (p=0.198 n=5+5) deco/unzlib/py/null-4K 11.3µs ± 0% 11.3µs ± 1% ~ (p=0.794 n=4+5) deco/unzlib/go/null-4K 11.3µs ± 0% 11.3µs ± 0% ~ (p=0.548 n=5+5) deco/unzlib/py/null-2M 6.01ms ±19% 5.71ms ± 5% ~ (p=0.421 n=5+5) deco/unzlib/go/null-2M 4.79ms ± 0% 4.79ms ± 0% ~ (p=0.095 n=5+5) deco/unzlib/py/wczdata-avg 27.2µs ± 1% 27.2µs ± 1% ~ (p=0.841 n=5+5) deco/unzlib/go/wczdata-avg 26.7µs ± 0% 26.7µs ± 0% ~ (p=0.841 n=5+5) deco/unzlib/py/wczdata-max 26.7µs ± 1% 26.6µs ± 0% ~ (p=0.222 n=5+5) deco/unzlib/go/wczdata-max 26.5µs ± 0% 26.5µs ± 0% ~ (p=0.421 n=5+5) deco/unzlib/py/prod1-avg 6.08µs ±23% 5.02µs ± 1% -17.40% (p=0.032 n=5+4) deco/unzlib/go/prod1-avg 5.25µs ± 0% 5.27µs ± 1% ~ (p=1.000 n=5+5) deco/unzlib/py/prod1-max 510µs ± 1% 512µs ± 2% ~ (p=1.000 n=4+5) deco/unzlib/go/prod1-max 336µs ± 0% 336µs ± 0% ~ (p=0.421 n=5+5) deco/disk/randread/direct/4K-min 104µs ± 0% 105µs ± 1% ~ (p=0.357 n=5+5) deco/disk/randread/direct/4K-avg 143µs ± 1% 144µs ± 0% ~ (p=0.056 n=5+5) deco/disk/randread/direct/2M-min 5.38ms ± 0% 5.48ms ± 3% ~ (p=0.698 n=4+5) deco/disk/randread/direct/2M-avg 6.19ms ± 2% 6.13ms ± 1% ~ (p=0.167 n=5+5) deco/disk/randread/pagecache/4K-min 576ns ± 1% 570ns ± 1% ~ (p=0.198 n=5+5) deco/disk/randread/pagecache/4K-avg 974ns ± 1% 975ns ± 0% ~ (p=0.222 n=5+5) deco/disk/randread/pagecache/2M-min 196µs ± 4% 195µs ± 4% ~ (p=0.841 n=5+5) deco/disk/randread/pagecache/2M-avg 212µs ± 0% 214µs ± 0% +0.88% (p=0.008 n=5+5) name old time/object new time/object delta deco/fs1/zhash.py 17.9µs ±14% 18.0µs ±14% ~ (p=0.668 n=10+10) deco/fs1/zhash.py-P16 139µs ±18% 140µs ±32% ~ (p=0.752 n=32+32) deco/fs1/zhash.go 2.95µs ± 8% 2.97µs ± 9% ~ (p=0.809 n=10+10) deco/fs1/zhash.go+prefetch128 3.92µs ±25% 3.82µs ±14% ~ (p=0.755 n=10+10) deco/fs1/zhash.go-P16 13.9µs ±51% 14.1µs ±70% ~ (p=0.893 n=32+32) deco/zeo/zhash.py 382µs ± 1% 370µs ± 5% -3.17% (p=0.011 n=6+10) deco/zeo/zhash.py-P16 3.10ms ± 9% 3.13ms ± 5% ~ (p=0.213 n=32+29) deco/neo/py/sqlite/zhash.py 368µs ± 9% 351µs ± 7% ~ (p=0.165 n=10+10) deco/neo/py/sqlite/zhash.py-P16 3.20ms ± 3% 3.16ms ± 2% ~ (p=1.000 n=32+32) deco/neo/py/sqlite/zhash.go 177µs ± 7% 153µs ± 4% -13.24% (p=0.000 n=10+10) deco/neo/py/sqlite/zhash.go+prefetch128 129µs ± 5% 131µs ± 5% ~ (p=0.362 n=10+10) deco/neo/py/sqlite/zhash.go-P16 2.18ms ± 6% 2.10ms ± 4% -3.66% (p=0.001 n=32+32) deco/neo/py(!log)/sqlite/zhash.py 349µs ± 9% 322µs ± 5% -7.69% (p=0.015 n=10+10) deco/neo/py(!log)/sqlite/zhash.py-P16 3.01ms ± 4% 2.91ms ± 2% -3.16% (p=0.001 n=32+32) deco/neo/py(!log)/sqlite/zhash.go 161µs ± 7% 139µs ± 6% -13.77% (p=0.000 n=10+10) deco/neo/py(!log)/sqlite/zhash.go+prefetch128 113µs ± 1% 115µs ± 5% ~ (p=0.529 n=10+10) deco/neo/py(!log)/sqlite/zhash.go-P16 1.96ms ± 3% 1.92ms ± 2% -1.94% (p=0.001 n=32+32) deco/neo/py/sql/zhash.py 417µs ±11% 408µs ± 9% ~ (p=0.645 n=8+8) deco/neo/py/sql/zhash.py-P16 4.55ms ± 4% 4.52ms ± 2% ~ (p=1.000 n=32+32) deco/neo/py/sql/zhash.go 227µs ± 9% 198µs ± 3% -12.91% (p=0.000 n=10+10) deco/neo/py/sql/zhash.go+prefetch128 184µs ± 5% 181µs ± 3% ~ (p=0.210 n=10+10) deco/neo/py/sql/zhash.go-P16 3.10ms ± 2% 2.91ms ± 3% -6.12% (p=0.000 n=32+32) deco/neo/py(!log)/sql/zhash.py 404µs ±10% 381µs ± 9% ~ (p=0.161 n=8+8) deco/neo/py(!log)/sql/zhash.py-P16 4.35ms ± 3% 4.20ms ± 1% -3.30% (p=0.000 n=32+32) deco/neo/py(!log)/sql/zhash.go 209µs ±10% 181µs ± 2% -13.37% (p=0.000 n=10+10) deco/neo/py(!log)/sql/zhash.go+prefetch128 161µs ± 5% 160µs ± 4% ~ (p=0.593 n=10+10) deco/neo/py(!log)/sql/zhash.go-P16 2.76ms ± 3% 2.58ms ± 1% -6.45% (p=0.000 n=32+32) deco/neo/go/fs1/zhash.py 222µs ± 2% 224µs ± 2% ~ (p=0.289 n=10+10) deco/neo/go/fs1/zhash.py-P16 1.98ms ± 8% 1.96ms ± 5% ~ (p=0.638 n=32+32) deco/neo/go/fs1/zhash.go 50.3µs ±13% 50.4µs ±14% ~ (p=0.250 n=10+10) deco/neo/go/fs1/zhash.go+prefetch128 21.2µs ±24% 20.9µs ±21% ~ (p=0.590 n=10+10) deco/neo/go/fs1/zhash.go-P16 334µs ±12% 336µs ±15% ~ (p=0.732 n=32+32) deco/neo/go/fs1(!sha1)/zhash.go 38.5µs ± 3% 38.6µs ± 3% ~ (p=0.698 n=10+10) deco/neo/go/fs1(!sha1)/zhash.go+prefetch128 15.7µs ±12% 15.2µs ±12% ~ (p=0.170 n=10+10) deco/neo/go/fs1(!sha1)/zhash.go-P16 262µs ±22% 264µs ±21% ~ (p=0.762 n=30+32) deco/neo/go/sqlite/zhash.py 282µs ±10% 264µs ± 4% ~ (p=0.239 n=10+10) deco/neo/go/sqlite/zhash.py-P16 2.45ms ± 7% 2.42ms ± 3% ~ (p=0.973 n=32+31) deco/neo/go/sqlite/zhash.go 111µs ±15% 89µs ± 5% -19.49% (p=0.000 n=10+10) deco/neo/go/sqlite/zhash.go+prefetch128 44.6µs ±25% 37.7µs ± 7% ~ (p=0.517 n=10+10) deco/neo/go/sqlite/zhash.go-P16 789µs ± 9% 711µs ±12% -9.89% (p=0.000 n=32+32) deco/neo/go/sqlite(!sha1)/zhash.go 109µs ±15% 83µs ± 2% -23.96% (p=0.000 n=10+9) deco/neo/go/sqlite(!sha1)/zhash.go+prefetch128 41.5µs ±21% 38.2µs ±19% ~ (p=0.631 n=10+10) deco/neo/go/sqlite(!sha1)/zhash.go-P16 735µs ±11% 674µs ±17% -8.28% (p=0.002 n=32+31)
-
Kirill Smelkov authored
benchstat -alpha 0.07 20180220-deco-linux4.15.4-noturbo.txt 20180221-deco-noturbo.txt name old pystone/s new pystone/s delta deco/pystone 219k ± 2% 220k ± 1% ~ (p=0.310 n=5+5) name old time/op new time/op delta deco/sha1/py/1K 1.62µs ± 0% 1.83µs ± 1% +13.15% (p=0.008 n=5+5) deco/sha1/go/1K 1.53µs ± 0% 1.53µs ± 0% ~ (p=0.635 n=5+4) deco/sha1/py/4K 5.78µs ± 0% 6.68µs ± 1% +15.56% (p=0.008 n=5+5) deco/sha1/go/4K 5.59µs ± 1% 5.59µs ± 0% ~ (p=1.000 n=5+5) deco/sha1/py/2M 2.82ms ± 0% 3.19ms ± 0% +13.05% (p=0.008 n=5+5) deco/sha1/go/2M 2.77ms ± 0% 2.78ms ± 0% +0.20% (p=0.008 n=5+5) deco/disk/randread/direct/4K-min 104µs ± 2% 104µs ± 0% ~ (p=0.651 n=5+5) deco/disk/randread/direct/4K-avg 143µs ± 0% 143µs ± 1% ~ (p=0.317 n=5+5) deco/disk/randread/direct/2M-min 5.30ms ± 4% 5.38ms ± 0% ~ (p=0.175 n=5+4) deco/disk/randread/direct/2M-avg 6.18ms ± 1% 6.19ms ± 2% ~ (p=0.651 n=5+5) deco/disk/randread/pagecache/4K-min 584ns ± 0% 576ns ± 1% -1.37% (p=0.016 n=5+5) deco/disk/randread/pagecache/4K-avg 981ns ± 0% 974ns ± 1% ~ (p=0.071 n=5+5) deco/disk/randread/pagecache/2M-min 193µs ± 5% 196µs ± 4% ~ (p=0.690 n=5+5) deco/disk/randread/pagecache/2M-avg 211µs ± 0% 212µs ± 0% ~ (p=0.119 n=5+5) name old time/object new time/object delta deco/fs1/zhash.py 17.9µs ±13% 17.9µs ±14% ~ (p=0.983 n=8+10) deco/fs1/zhash.py-P16 132µs ±19% 139µs ±18% +5.39% (p=0.054 n=32+32) deco/fs1/zhash.go 3.00µs ± 7% 2.95µs ± 8% ~ (p=0.307 n=10+10) deco/fs1/zhash.go+prefetch128 3.54µs ±16% 3.92µs ±25% ~ (p=0.071 n=10+10) deco/fs1/zhash.go-P16 12.7µs ±64% 13.9µs ±51% ~ (p=0.254 n=31+32) deco/zeo/zhash.py 369µs ±11% 382µs ± 1% +3.53% (p=0.045 n=10+6) deco/zeo/zhash.py-P16 3.01ms ±12% 3.10ms ± 9% +2.83% (p=0.024 n=31+32) deco/neo/py/sqlite/zhash.py 378µs ±13% 368µs ± 9% ~ (p=0.436 n=10+10) deco/neo/py/sqlite/zhash.py-P16 3.21ms ± 3% 3.20ms ± 3% -0.41% (p=0.032 n=32+32) deco/neo/py/sqlite/zhash.go 235µs ±24% 177µs ± 7% -24.82% (p=0.063 n=10+10) deco/neo/py/sqlite/zhash.go+prefetch128 139µs ± 8% 129µs ± 5% -7.03% (p=0.003 n=10+10) deco/neo/py/sqlite/zhash.go-P16 2.37ms ± 7% 2.18ms ± 6% -8.16% (p=0.001 n=32+32) deco/neo/py(!log)/sqlite/zhash.py 355µs ±14% 349µs ± 9% ~ (p=0.579 n=10+10) deco/neo/py(!log)/sqlite/zhash.py-P16 3.01ms ± 4% 3.01ms ± 4% ~ (p=0.989 n=32+32) deco/neo/py(!log)/sqlite/zhash.go 213µs ±23% 161µs ± 7% -24.49% (p=0.060 n=10+10) deco/neo/py(!log)/sqlite/zhash.go+prefetch128 123µs ± 9% 113µs ± 1% -8.23% (p=0.000 n=10+10) deco/neo/py(!log)/sqlite/zhash.go-P16 2.12ms ± 8% 1.96ms ± 3% -7.32% (p=0.001 n=32+32) deco/neo/py/sql/zhash.py 429µs ± 8% 417µs ±11% ~ (p=0.442 n=8+8) deco/neo/py/sql/zhash.py-P16 4.57ms ± 3% 4.55ms ± 4% ~ (p=0.257 n=32+32) deco/neo/py/sql/zhash.go 281µs ±19% 227µs ± 9% -18.94% (p=0.063 n=10+10) deco/neo/py/sql/zhash.go+prefetch128 201µs ± 7% 184µs ± 5% -8.40% (p=0.002 n=10+10) deco/neo/py/sql/zhash.go-P16 3.34ms ± 5% 3.10ms ± 2% -7.36% (p=0.000 n=32+32) deco/neo/py(!log)/sql/zhash.py 404µs ±14% 404µs ±10% ~ (p=0.959 n=8+8) deco/neo/py(!log)/sql/zhash.py-P16 4.34ms ± 2% 4.35ms ± 3% ~ (p=0.763 n=32+32) deco/neo/py(!log)/sql/zhash.go 261µs ±19% 209µs ±10% -20.01% (p=0.061 n=10+10) deco/neo/py(!log)/sql/zhash.go+prefetch128 180µs ± 7% 161µs ± 5% -10.49% (p=0.000 n=10+10) deco/neo/py(!log)/sql/zhash.go-P16 3.00ms ± 6% 2.76ms ± 3% -7.93% (p=0.000 n=32+32) deco/neo/go/fs1/zhash.py 220µs ± 2% 222µs ± 2% ~ (p=0.219 n=9+10) deco/neo/go/fs1/zhash.py-P16 2.00ms ± 7% 1.98ms ± 8% ~ (p=0.112 n=32+32) deco/neo/go/fs1/zhash.go 50.3µs ±13% 50.3µs ±13% ~ (p=0.747 n=10+10) deco/neo/go/fs1/zhash.go+prefetch128 20.6µs ±23% 21.2µs ±24% ~ (p=0.423 n=10+10) deco/neo/go/fs1/zhash.go-P16 325µs ±12% 334µs ±12% ~ (p=0.120 n=30+32) deco/neo/go/fs1(!sha1)/zhash.go 39.2µs ± 3% 38.5µs ± 3% ~ (p=0.137 n=10+10) deco/neo/go/fs1(!sha1)/zhash.go+prefetch128 15.3µs ±16% 15.7µs ±12% ~ (p=0.196 n=10+10) deco/neo/go/fs1(!sha1)/zhash.go-P16 270µs ±31% 262µs ±22% ~ (p=0.245 n=32+30) deco/neo/go/sqlite/zhash.py 292µs ±11% 282µs ±10% ~ (p=0.165 n=10+10) deco/neo/go/sqlite/zhash.py-P16 2.46ms ± 7% 2.45ms ± 7% ~ (p=0.546 n=32+32) deco/neo/go/sqlite/zhash.go 159µs ±28% 111µs ±15% -30.02% (p=0.060 n=10+10) deco/neo/go/sqlite/zhash.go+prefetch128 80.4µs ±34% 44.6µs ±25% -44.51% (p=0.001 n=10+10) deco/neo/go/sqlite/zhash.go-P16 1.13ms ±41% 0.79ms ± 9% -30.00% (p=0.000 n=32+32) deco/neo/go/sqlite(!sha1)/zhash.go 155µs ±28% 109µs ±15% -29.98% (p=0.061 n=10+10) deco/neo/go/sqlite(!sha1)/zhash.go+prefetch128 78.9µs ±36% 41.5µs ±21% -47.34% (p=0.000 n=10+10) deco/neo/go/sqlite(!sha1)/zhash.go-P16 1.14ms ±25% 0.73ms ±11% -35.37% (p=0.000 n=32+32)
-
Kirill Smelkov authored
-
Kirill Smelkov authored
name old time/op new time/op delta deco/unzlib/py/null-1K 2.12µs ± 1% 2.11µs ± 2% ~ (p=0.841 n=5+5) deco/unzlib/go/null-1K 1.89µs ± 1% 2.27µs ± 1% +20.03% (p=0.008 n=5+5) deco/unzlib/py/null-4K 13.5µs ± 4% 13.3µs ± 0% ~ (p=0.310 n=5+5) deco/unzlib/go/null-4K 8.54µs ± 0% 8.91µs ± 0% +4.43% (p=0.008 n=5+5) deco/unzlib/py/null-2M 5.20ms ±10% 5.31ms ± 1% ~ (p=0.548 n=5+5) deco/unzlib/go/null-2M 2.58ms ± 1% 3.87ms ± 0% +50.13% (p=0.008 n=5+5) deco/unzlib/py/wczdata-avg 24.1µs ± 1% 23.9µs ± 0% ~ (p=0.114 n=4+4) deco/unzlib/go/wczdata-avg 68.0µs ± 1% 20.9µs ± 0% -69.29% (p=0.008 n=5+5) deco/unzlib/py/wczdata-max 23.5µs ± 1% 23.5µs ± 0% ~ (p=0.556 n=4+5) deco/unzlib/go/wczdata-max 67.8µs ± 0% 20.7µs ± 1% -69.45% (p=0.008 n=5+5) deco/unzlib/py/prod1-avg 4.47µs ± 2% 4.44µs ± 1% ~ (p=0.341 n=5+5) deco/unzlib/go/prod1-avg 11.0µs ± 0% 4.1µs ± 1% -62.39% (p=0.016 n=5+4) deco/unzlib/py/prod1-max 326µs ± 0% 325µs ± 0% ~ (p=0.095 n=5+5) deco/unzlib/go/prod1-max 542µs ± 0% 262µs ± 0% -51.71% (p=0.008 n=5+5) There is also unsafe interface with czlib.UnsafeDecompress & friends which I had not tried because even using safe interface brings ~ 3x speedup.
-
Kirill Smelkov authored
name old time/op new time/op delta deco/unzlib/py/null-1K 2.11µs ± 1% 2.12µs ± 1% ~ (p=0.690 n=5+5) deco/unzlib/go/null-1K 5.87µs ± 1% 1.89µs ± 1% -67.77% (p=0.008 n=5+5) deco/unzlib/py/null-4K 13.3µs ± 1% 13.5µs ± 4% ~ (p=0.690 n=5+5) deco/unzlib/go/null-4K 12.6µs ± 0% 8.5µs ± 0% -32.50% (p=0.008 n=5+5) deco/unzlib/py/null-2M 5.17ms ±11% 5.20ms ±10% ~ (p=1.000 n=5+5) deco/unzlib/go/null-2M 2.61ms ± 1% 2.58ms ± 1% -1.32% (p=0.016 n=5+5) deco/unzlib/py/wczdata-avg 20.9µs ±14% 24.1µs ± 1% +15.05% (p=0.016 n=5+4) deco/unzlib/go/wczdata-avg 73.0µs ± 1% 68.0µs ± 1% -6.94% (p=0.008 n=5+5) deco/unzlib/py/wczdata-max 23.6µs ± 0% 23.5µs ± 1% ~ (p=0.905 n=5+4) deco/unzlib/go/wczdata-max 72.7µs ± 0% 67.8µs ± 0% -6.79% (p=0.008 n=5+5) deco/unzlib/py/prod1-avg 4.53µs ± 3% 4.47µs ± 2% ~ (p=0.310 n=5+5) deco/unzlib/go/prod1-avg 15.5µs ± 0% 11.0µs ± 0% -29.11% (p=0.008 n=5+5) deco/unzlib/py/prod1-max 327µs ± 1% 326µs ± 0% ~ (p=1.000 n=5+5) deco/unzlib/go/prod1-max 545µs ± 0% 542µs ± 0% -0.68% (p=0.008 n=5+5) still on wczdata and prod1 much slower compared to py/c zlib.
-
Kirill Smelkov authored
-
- 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 4 commits
-
-
Kirill Smelkov authored
-
Kirill Smelkov authored
-
Kirill Smelkov authored
not used outside neonet.
-
Kirill Smelkov authored
-