Part of bzrlib.lru_cache View In Hierarchy
This differs in that it doesn't care how many actual items there are, it just restricts the cache to be cleaned up after so much data is stored.
The size of items added will be computed using compute_size(value), which defaults to len() if not supplied.
Method | __init__ | Create a new LRUSizeCache. |
Method | __setitem__ | Add a new value to the cache |
Method | cleanup | Clear the cache until it shrinks to the requested size. |
Method | resize | Change the number of bytes that will be cached. |
Method | _remove_node | Undocumented |
Method | _update_max_size | Undocumented |
Inherited from LRUCache:
Method | __contains__ | Undocumented |
Method | __getitem__ | Undocumented |
Method | __len__ | Undocumented |
Method | add | Undocumented |
Method | cache_size | Get the number of entries we will cache. |
Method | get | Undocumented |
Method | keys | Get the list of keys currently cached. |
Method | as_dict | Get a new dict with the same key:value pairs as the cache |
Method | clear | Clear out all of the cache. |
Method | _record_access | Record that key was accessed. |
Method | _remove_lru | Remove one entry from the lru, and handle consequences. |
Method | _update_max_cache | Undocumented |
Parameters | max_size | The max number of bytes to store before we start clearing out entries. |
after_cleanup_size | After cleaning up, shrink everything to this size. | |
compute_size | A function to compute the size of the values. We use a function here, so that you can pass 'len' if you are just using simple strings, or a more complex function if you are using something like a list of strings, or even a custom object. The function should take the form "compute_size(value) => integer". If not supplied, it defaults to 'len()' |
This does not completely wipe the cache, just makes sure it is under the after_cleanup_size.