diff options
author | Jakob Unterwurzacher | 2017-06-09 21:52:26 +0200 |
---|---|---|
committer | Jakob Unterwurzacher | 2017-06-09 22:05:14 +0200 |
commit | 80516ed3351477793eec882508969b6b29b69b0a (patch) | |
tree | c461bd49e79fd6d8bf7f5dc8f28058faf2ba3078 /main.go | |
parent | da1bd742461e397abefc814bb0c0a21a6d8ec3d6 (diff) |
cryptocore: prefetch nonces in 512-byte blocks
On my machine, reading 512-byte blocks from /dev/urandom
(same via getentropy syscall) is a lot faster in terms of
throughput:
Blocksize Throughput
16 28.18 MB/s
512 83.75 MB/s
For a single-threaded streaming write, this drops the CPU usage of
nonceGenerator.Get to almost 1/3:
flat flat% sum% cum cum%
Before 0 0% 95.08% 0.35s 2.92% github.com/rfjakob/gocryptfs/internal/cryptocore.(*nonceGenerator).Get
After 0.01s 0.092% 92.34% 0.13s 1.20% github.com/rfjakob/gocryptfs/internal/cryptocore.(*nonceGenerator).Get
This change makes the nonce reading single-threaded, which may
hurt massively-parallel writes.
Diffstat (limited to 'main.go')
0 files changed, 0 insertions, 0 deletions