diff options
author | Jussi Kivilinna <[email protected]> | 2018-11-08 19:31:12 +0000 |
---|---|---|
committer | Jussi Kivilinna <[email protected]> | 2018-11-08 19:31:12 +0000 |
commit | 2b5718c1f76851160115f455c3a9383b04521347 (patch) | |
tree | 47e8b954074c735aa5a690f4c705c97fba5c3c2e /dirmngr/t-http-basic.c | |
parent | g10/armor: remove unused unarmor_pump code (diff) | |
download | gnupg-2b5718c1f76851160115f455c3a9383b04521347.tar.gz gnupg-2b5718c1f76851160115f455c3a9383b04521347.zip |
common/iobuf: optimize iobuf_read_line
* common/iobuf.c (iobuf_read_line): Add fast path for finding '\n'
character in buffer.
--
This patch reduce per byte overhead in iobuf_read_line by avoiding
using iobuf_get when possible and use memchr to find '\n'. This
speeds armored decryption.
Benchmark results below, tested on Intel Core i7-4790K (turbo off).
Encrypted 2 GiB through pipe to ramfs file using AES128. Decrypt
ramfs file out through pipe to /dev/null.
before patch-set
----------------
gpg process
armor: user time pipe transfer rate
encrypt-aead: 13.8 140 MB/s
decrypt-aead: 30.6 68 MB/s
encrypt-cfb: 17.4 114 MB/s
decrypt-cfb: 32.6 64 MB/s
after (decrypt+iobuf opt)
-------------------------
gpg process
armor: user time pipe transfer rate
decrypt-aead: 22.5 92 MB/s
decrypt-cfb: 24.4 85 MB/s
Signed-off-by: Jussi Kivilinna <[email protected]>
Diffstat (limited to '')
0 files changed, 0 insertions, 0 deletions