mirror of
https://github.com/netsurf-browser/netsurf
synced 2024-11-24 07:19:37 +03:00
llcache: Rework fs_backing_store to use hashmap
As a result, we no longer waste a bunch of RAM on the entries tables. This ought to be no slower, and more memory efficient. Signed-off-by: Daniel Silverstone <dsilvers@digital-scurf.org>
This commit is contained in:
parent
ac75a9161e
commit
859972df71
File diff suppressed because it is too large
Load Diff
@ -121,43 +121,6 @@ struct llcache_store_parameters {
|
||||
|
||||
size_t limit; /**< The backing store upper bound target size */
|
||||
size_t hysteresis; /**< The hysteresis around the target size */
|
||||
|
||||
/** log2 of the default maximum number of entries the cache
|
||||
* can track.
|
||||
*
|
||||
* If unset this defaults to 16 (65536 entries) The cache
|
||||
* control file takes precedence so cache data remains
|
||||
* portable between builds with differing defaults.
|
||||
*/
|
||||
unsigned int entry_size;
|
||||
|
||||
/** log2 of the default number of entries in the mapping between
|
||||
* the url and cache entries.
|
||||
*
|
||||
* @note This is exposing an internal implementation detail of
|
||||
* the filesystem based default backing store implementation.
|
||||
* However it is likely any backing store implementation will
|
||||
* need some way to map url to cache entries so it is a
|
||||
* generally useful configuration value.
|
||||
*
|
||||
* Too small a value will cause unecessary collisions and
|
||||
* cache misses and larger values cause proportionaly larger
|
||||
* amounts of memory to be used.
|
||||
*
|
||||
* The "birthday paradox" means that the hash will experience
|
||||
* a collision in every 2^(address_size/2) urls the cache
|
||||
* stores.
|
||||
*
|
||||
* A value of 20 means one object stored in every 1024 will
|
||||
* cause a collion and a cache miss while using two megabytes
|
||||
* of storage.
|
||||
*
|
||||
* If unset this defaults to 20 (1048576 entries using two
|
||||
* megabytes) The cache control file takes precedence so cache
|
||||
* data remains portable between builds with differing
|
||||
* defaults.
|
||||
*/
|
||||
unsigned int address_size;
|
||||
};
|
||||
|
||||
/**
|
||||
|
Loading…
Reference in New Issue
Block a user