Fexty12573 / SharpPluginLoader

A C# plugin loader for Monster Hunter World
MIT License
32 stars 2 forks source link

Cache AOB scanning #15

Closed Andoryuuta closed 7 months ago

Andoryuuta commented 7 months ago

This MR changes the AddressRepository class to perform a one-time scan of all addresses, and then caches them on disk. The cache is invalidated if the game revision number or the hash of the AddressRecords.json file changes (from what is in the cache file).

The AOB scans were previously done in parallel (due to the lazy processing of the scans on the first access). This parallel scanning is now explicitly done, and lazy processing removed.


First run:

[ 19:31:44.0742281 | SPL ] [Core] Attempting to initalize address repository for game revision: 421652
[ 19:31:44.0755893 | SPL ] [Core] No valid address record cache found. Performing first-time scan.
[ 19:31:44.7666351 | SPL ] [Core] Scanning for addresses took 690ms

Second run:

[ 19:33:07.7800850 | SPL ] [Core] Attempting to initalize address repository for game revision: 421652
[ 19:33:07.7890488 | SPL ] [Core] Restoring from address record cache.