1
0
mirror of git://git.gnupg.org/gnupg.git synced 2025-01-21 14:47:03 +01:00
Werner Koch 64a5fd3727
gpg: New caching functions.
* g10/objcache.c: New.
* g10/objcache.h: New.
* g10/Makefile.am (common_source): Add them.
* g10/gpg.c: Include objcache.h.
(g10_exit): Call objcache_dump_stats.
* g10/getkey.c: Include objcache.h.
(get_primary_uid, release_keyid_list): Remove.
(cache_user_id): Remove.
(finish_lookup): Call the new cache_put_keyblock instead of
cache_user_id.
(get_user_id_string): Remove code for mode 2.
(get_user_id): Implement using cache_get_uid_bykid.
--

This generic caching module is better than the ad-hoc code we used in
getkey.c.  More cleanup in getkey is still required but it is a
start.  There is also a small performance increase with the new cache:

With a large keyring and --list-sigs I get these numbers:

|      | before     | after      |
|------+------------+------------|
| real | 14m1.028s  | 12m16.186s |
| user |  2m18.484s |  1m36.040s |
| sys  | 11m42.420s | 10m40.044s |

Note the speedup in the user time which is due to the improved cache
algorithm.  This is obvious, because the old cache was just a long
linked list; the new cache are two hash tables.

Signed-off-by: Werner Koch <wk@gnupg.org>
2019-04-13 11:48:58 +02:00
..
2018-10-24 15:56:18 -04:00
2018-11-08 12:14:23 +09:00
2018-05-29 12:42:52 +02:00
2017-03-07 20:25:54 +09:00
2018-01-21 16:30:53 +01:00
2017-11-22 20:54:47 +01:00
2019-03-14 08:23:38 +09:00
2018-10-24 15:56:18 -04:00
2017-03-07 20:25:54 +09:00
2019-04-13 11:48:58 +02:00
2015-02-04 09:15:34 +01:00
2019-04-13 11:48:58 +02:00
2015-02-04 09:15:34 +01:00
2017-03-07 20:25:54 +09:00
2017-03-07 20:25:54 +09:00
2018-10-24 15:56:18 -04:00
2018-10-25 16:53:05 -04:00
2019-04-13 11:48:58 +02:00
2017-03-07 20:25:54 +09:00
2017-03-07 20:25:54 +09:00
2019-04-13 11:48:58 +02:00
2019-04-13 11:48:58 +02:00
2017-03-07 20:25:54 +09:00
2017-03-07 20:25:54 +09:00
2017-03-07 20:25:54 +09:00
2017-03-07 20:25:54 +09:00
2017-01-23 19:16:55 +01:00
2017-02-21 13:11:46 -05:00
2017-03-07 20:32:09 +09:00
2017-03-07 20:25:54 +09:00
2018-10-24 15:56:18 -04:00
2016-03-08 14:08:49 +01:00
2018-10-24 15:56:18 -04:00
2017-03-07 20:25:54 +09:00
2016-12-06 12:16:56 +01:00
2018-10-24 15:56:18 -04:00