Help Testing: ES faster accessing NAS files
pjft last edited by
Since last year I set up RetroPie on a NAS, but I was never fully satisfied with the performance impact it had on EmulationStation. In fact, when the NAS would be under moderate load (data being stored and read at the same time, with ES trying to access it) there was always a noticeable, yet slight freeze between navigating between games in a list, showing the new images and videos - which did not happen when loading from local media.
I ended up digging into it these past few days and after narrowing it down to file-system checks of whether assets existed before loading, I attempted to rectify that in three approaches:
a) removing unnecessary checks where possible;
b) caching those checks for the same file, so that we wouldn't try it again if we already knew it existed (the same files could be checked multiple times when seeing a single game);
c) indexing the files in the background during the screensaver (as an option).
If anyone felt the same symptoms and wants to help test it out, you can find it in the following:
- the PR: https://github.com/RetroPie/EmulationStation/pull/690
- my code in my branch: https://github.com/pjft/EmulationStation/tree/indexing-screensaver
- a pre-compiled binary for the Pi4: https://mega.nz/file/gJtARJqY#wYuRvqcRbFNipzF4hg7s6jw2nOA4ylL51F2Ca4pzym4
If you want to turn on background indexing, it's an option under "Other Settings". It'll run when the screensaver is on. In my case, it indexes ~4800 games in 6-7 mins, but you can see the progress if you run .emulationstation --debug .
If you don't have a NAS but want to test it out, just to make sure it doesn't break, that also helps. This specific build also has a few other PRs I submitted that improve:
- the performance of saving gamelists when closing ES, if you found them to be slow;
- the quality of VLC videos in the screensaver (there's a new option).
Let me know how it goes and/or if anything else breaks.