1
0
mirror of git://git.gnupg.org/gnupg.git synced 2024-12-23 10:29:58 +01:00

gpg: use iobuf_read for higher detached signing speed

* g10/sign.c (sign_file): Use iobuf_read instead of iobuf_get for
reading data from detached file.
--

This patch reduces iobuf_read per byte processing overhead and speeds
up detached signing.

Detached signing speed on AMD Ryzen 5800X (4.3GiB file, SHA256):

         gpg process
         user time
 before: 3.951s
 after:  1.898s (2.0x faster)

GnuPG-bug-id: T5826
Signed-off-by: Jussi Kivilinna <jussi.kivilinna@iki.fi>

Backported-from-master: f8943ce098f6f193da791faf43fff823568697d9

Numbers above are given for the version in master but should be
similar for here (2.2).
This commit is contained in:
Werner Koch 2022-11-29 11:58:11 +01:00
parent 15b8d100c9
commit 2302e180c0
No known key found for this signature in database
GPG Key ID: E3FDFF218E45B72B

View File

@ -1211,7 +1211,7 @@ sign_file (ctrl_t ctrl, strlist_t filenames, int detached, strlist_t locusr,
iobuf_push_filter( inp, text_filter, &tfx );
}
iobuf_push_filter( inp, md_filter, &mfx );
while( iobuf_get(inp) != -1 )
while (iobuf_read (inp, NULL, 1<<30) != -1 )
;
iobuf_close(inp); inp = NULL;
}
@ -1220,7 +1220,7 @@ sign_file (ctrl_t ctrl, strlist_t filenames, int detached, strlist_t locusr,
}
else {
/* read, so that the filter can calculate the digest */
while( iobuf_get(inp) != -1 )
while (iobuf_read (inp, NULL, 1<<30) != -1 )
;
}
}