fraganator / archive-cache-manager

A LaunchBox plugin which extracts and caches large ROM archives, letting you play games faster.
GNU Lesser General Public License v2.1
11 stars 5 forks source link

Feature request: Copy archive then extract #46

Open Y0URGRANDMA opened 5 months ago

Y0URGRANDMA commented 5 months ago

Instead of straight extracting from the source a option to auto copy a archive first then extract locally into the cache for a performance boost on more bottlenecked attached storage.

For example this plugin works fantastic for over a relatively low latency local network for caching and extracting, however when using it over a remote network it still works as expected but performance extracting over such networks suffers greatly.

In my use case with this plugin i have very large collection console images in 7z archives, when i direct copy such archives over a remote network i get around ~180Mbps yet when direct extracting over said network the performance drops to 1/10th that speed.

The potential added time for adding a step in copying the archive first in this case would save time especially when extraction time on the cache is negligible due to it having faster storage.

Y0URGRANDMA commented 5 months ago

I'm not a programmer or know how to use github but i took a crack at it myself and used AI so you can just steal everything if you want.

Here is the code change to the zip.cs

https://github.com/fraganator/archive-cache-manager/commit/afef9714cb79371b8faa8a3ee8cfe9bcc6d9654d

It is supposed to copy the archive to the cache folder then extract the images and then delete the copied archive.

Here is the release, it still needs further testing though.

https://github.com/Y0URGRANDMA/archive-cache-manager/releases/tag/v2.16

Testing a 4gb ps2 7z game transfer with archive manager and extraction over a remote sftp network.

Before Transferring took more than 15minutes to launch the game by extracting over network with archive manager's default behavior. Screenshot 2024-03-31 185240

After Transferring took 3 minutes and 10 seconds until launch, huge improvement with this change to copy the archive first to local storage and then extract. Screenshot 2024-03-31 184641