- 04 Mar, 2018 6 commits
-
-
Kirill Smelkov authored
-
Kirill Smelkov authored
-
Kirill Smelkov authored
-
Kirill Smelkov authored
-
Kirill Smelkov authored
-
Kirill Smelkov authored
-
- 02 Mar, 2018 6 commits
-
-
Kirill Smelkov authored
-
Kirill Smelkov authored
-
Kirill Smelkov authored
-
Kirill Smelkov authored
-
Kirill Smelkov authored
-
Kirill Smelkov authored
-
- 01 Mar, 2018 2 commits
-
-
Kirill Smelkov authored
-
Kirill Smelkov authored
-
- 28 Feb, 2018 9 commits
-
-
Kirill Smelkov authored
-
Kirill Smelkov authored
-
Kirill Smelkov authored
-
Kirill Smelkov authored
This should make inter-host or inter-cluster comparisions of benchmark more straightforward.
-
Kirill Smelkov authored
Cstates are not disabled. First dataset graphed here: https://lab.nexedi.com/kirr/misc/raw/526e5ca/t/zwrk-z600-htoff.png
-
Kirill Smelkov authored
Cstates are not disabled. First dataset grpahed here: https://lab.nexedi.com/kirr/misc/raw/4a8fedc/t/zwrk-z6001.png
-
Kirill Smelkov authored
Handy for misconfigured systems like fqdn=z6001.ivan.nexedi.com, hostname=z6001-COMP-2784.
-
Kirill Smelkov authored
-
Kirill Smelkov authored
-
- 27 Feb, 2018 2 commits
-
-
Kirill Smelkov authored
very draft; work in progress.
-
Kirill Smelkov authored
-
- 26 Feb, 2018 5 commits
-
-
Kirill Smelkov authored
-
Kirill Smelkov authored
Similarly to wrk on HTTP. Rationale: simulating multiple clients is: 1. noisy - the timings from run to run are changing sometimes up to 50% 2. with significant additional overhead - there are constant OS-level process switches in between client processes and this prevents to actually create the load. 3. the above load from "2" actually takes resources from the server in localhost case. So let's switch to simlating many requests in lightweight way similarly to how it is done in wrk - in one process and not so many threads (it can be just 1) with many connections opened to server and epolly way to load it with Go providing epoll-goroutine matching.
-
Kirill Smelkov authored
-
Kirill Smelkov authored
They are the same in size.
-
Kirill Smelkov authored
`proto.PktHeaderLen + packed.Ntoh32(pkth.MsgLen)` could wrap int32 if sent pkth.MsgLen is big.
-
- 23 Feb, 2018 1 commit
-
-
Kirill Smelkov authored
For the reference on deco (performance, frequence not fixed): name time/object deco/fs1/zhash.py 15.8µs ± 2% deco/fs1/zhash.py-P16 116µs ±12% deco/fs1/zhash.go 2.60µs ± 0% deco/fs1/zhash.go+prefetch128 3.70µs ±11% deco/fs1/zhash.go-P16 13.4µs ±43% deco/zeo/zhash.py 316µs ± 7% deco/zeo/zhash.py-P16 2.68ms ± 7% deco/zeo/zhash.go 111µs ± 2% deco/zeo/zhash.go+prefetch128 57.7µs ± 2% deco/zeo/zhash.go-P16 1.23ms ± 5%
-
- 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 1 commit
-
-
Kirill Smelkov authored
-