Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

remove BinaryCache.FilepathDatabase to make cache works correct #265

Open
wants to merge 3 commits into
base: master
Choose a base branch
from

Conversation

viruscamp
Copy link

@viruscamp viruscamp commented May 13, 2024

  1. remove BinaryCache.FilepathDatabase to disable loading cache by file path, fix Refresh or reopening a dll does not refresh the display #54
  2. lazy-load cached files to reduce memory footprint (WS Shareable)
  3. update and use LastAccessTime of cached files to make LRU more reasonable
  4. refactoring to clear the two level cache architecture: BinaryDatabase as memory cache and BinaryCacheFolderPath as disk cache
  • BinaryDatabase keeps only loaded PE, but not all file in BinaryCacheFolderPath
  • remove LruCache totally, LRU is arranged by set LastAccessTime to file, Unload deletes outdated cache files by LastAccessTime

…e path

fix lucasg#54 lucasg#225 lucasg#231 Refresh or reopening a dll does not refresh the display
update and use LastAccessTime of cached files to make LRU more reasonable
…d `BinaryCacheFolderPath` as disk cache

`BinaryDatabase` keeps only loaded PE, but not all file in `BinaryCacheFolderPath`
remove `LruCache` totally, LRU is arranged by set `LastAccessTime` to file, `Unload` deletes outdated cache files by `LastAccessTime`
@viruscamp
Copy link
Author

Simple benchmark about memory usage:

  1. 82MiB of WS Shareable, after startup loading 0 cached file
  2. 158.8MiB of WS Shareable, after startup loading 81 well known system dlls
  3. 225.5MiB of WS Shareable, after startup loading 200 cached file

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Refresh or reopening a dll does not refresh the display
1 participant