I've noticed my VaM's cache nearing the 100 GB size threshold, and I started wondering if trading this much storage was worth the loading time benefits. So with nothing better to spend my free time on, I tested it myself.
Initially I wanted to just test "cache on vs off", but when I was searching through forums trying to find out what others have found out about VaM's caching, I have also found several claims that HDDs are just as fast for this purpose as SSDs are. I decided to expand this test with some cache-on-HDD measurements, since I was curious.
The test done on my main and only VaM instance, game version 1.22.0.3, with 1313 VARs taking 59,5 GB of my storage space. The game is stored on an SSD.
Hardware used for the test: Ryzen 7 5800X3D CPU, RTX 3070 8GB GPU, 32GB RAM (2x 16 GB 3600 MHz sticks running on their XMP profile), 2TB NVMe Gen3 SSD with DRAM cache and a 2TB 5400RPM consumer-grade HDD.
Some more notes about the test:
Test 1: Game start time. Measured from double-clicking the game's shortcut to a fully responsive menu.
I guess VaM's cache needs to be processed before the program launches, and having the cache on a hard drive shows a major increase in the boot-up time.
Test 2: Loading female appearances into the default scene.
Cycle between:
- SupaRioAmateur's Kaine (no clothes, CUA hair)
- Zin's Tifa (12 clothing items [full set for the look], 7 CUA colliders [CUA hair replaced with non-CUA hair])
- dnaddr's Belle (6 clothing items, no CUAs)
The cycle was immediately repeated once. Additionally, the time required to open the appearances menu has also been noted.
* ??? idk you tell me, that's how fast it loaded, this one's an anomaly of sorts 
** second loads of preset #3 were so immediate there was no loading bar/red hourglass to go off of, so by "loaded" I assumed the very first frame the loaded look was visible on.
Test 3: Loading some scenes.
A set of test scenes loaded one after another:
- "light" scene: KittyMocap's "KM308 Evening sex"
- "moderate" scene: Zinigo's "First Date"
- "heavy" scene: TGC's "Virtual Sweetheart Reloaded", the CG-Part only scene
For the "heavy" scene, the "loaded" condition happens when the last freeze goes away, since I guess that scene still has some stuff to load even after VaM claims it's done loading.
* oh look, another anomaly!
Initially I wanted to just test "cache on vs off", but when I was searching through forums trying to find out what others have found out about VaM's caching, I have also found several claims that HDDs are just as fast for this purpose as SSDs are. I decided to expand this test with some cache-on-HDD measurements, since I was curious.
The test done on my main and only VaM instance, game version 1.22.0.3, with 1313 VARs taking 59,5 GB of my storage space. The game is stored on an SSD.
Hardware used for the test: Ryzen 7 5800X3D CPU, RTX 3070 8GB GPU, 32GB RAM (2x 16 GB 3600 MHz sticks running on their XMP profile), 2TB NVMe Gen3 SSD with DRAM cache and a 2TB 5400RPM consumer-grade HDD.
Some more notes about the test:
- Before measurements are taken for each of the cache configuration/location, I completely power off my PC, boot it back up, close all unnecessary programs, and give it about 3 minutes to settle. This is done to wipe all sorts of caches outside of VaM that would skew the results, whether that's Windows's own cache, or drives' own. Spoiler alert: this is why HDD results might surprise you (not clickbait).
- Measurements are done by recording the testing process with a phone (instead of using something like OBS, to avoid unnecessary load on the PC) and measuring the time between the mouse click initiating the action and the last frame where any loading of sorts is visible (eg. when the red hourglass disappears). If CUAs are involved, CUAManager's loading window is also considered, although "post-waiting" is not counted as "still loading". Also because recorded videos were 60 fps, a measurement error up to 16,67 ms should be assumed for each result here, and because my video player apparently struggles to reliably show milliseconds, add another 3 ms of error on top of that.
- Percentage difference is always shown compared to the SSD cache.
- For the "cached" test, a fresh cache with just the resources used in this test is used (initially I wanted to use my current 90 GB cache, but it turned out using the "Change Location" button in VaM also purges your cache before changing its location, so for the sake of consistency I redid the test with the same, slim cache). For the "no cache" test, the cache has been completely disabled.
- I was wondering whether or not to restart VaM after every test to purge whatever assets it had already loaded in memory, but decided against it in favor of simulating a situation that I consider to be closer to reality for more VaM users (that is, jumping between scenes without restarting the game, unless I'm the weird one for not doing that).
- This is a rudimentary test, as title states. Differences in use-case, software/hardware configuration and testing methodology/thoroughness might yield different results. Take anything you see here at face value. These results are good enough for my purpose, I'm posting them here in case someone here finds them interesting. Hell, maybe these results might motivate someone to make a better test, learning from my mistakes.
Test 1: Game start time. Measured from double-clicking the game's shortcut to a fully responsive menu.
SSD cache | HDD cache (diff against SSD cache) | No cache (diff against SSD cache) |
23.585 s | 35.627 s (+12.042 s / +51.1%) | 21.057 s (-2.528s / -10.7%) |
I guess VaM's cache needs to be processed before the program launches, and having the cache on a hard drive shows a major increase in the boot-up time.
Test 2: Loading female appearances into the default scene.
Cycle between:
- SupaRioAmateur's Kaine (no clothes, CUA hair)
- Zin's Tifa (12 clothing items [full set for the look], 7 CUA colliders [CUA hair replaced with non-CUA hair])
- dnaddr's Belle (6 clothing items, no CUAs)
The cycle was immediately repeated once. Additionally, the time required to open the appearances menu has also been noted.
SSD cache | HDD cache (diff against SSD cache) | No cache (diff against SSD cache) | |
First load of appearance preset #1 | 3.193 s | 9.762 s (+6.569 s / +205.7%) | 21.539 s (+18.346 s / +574.6%) |
First load of appearance preset #2 | 3.326 s | 6.987 s (+3.661 s / +110.1%) | 14.410 s (+11.084 s / +333.3%) |
First load of appearance preset #3 | 3.443 s | 8.124 s (+4.681 s / +136.0%) | 28.865 s (+25.422 s / +738.4%) |
Second load of appearance preset #1 | 1.480 s | 1.779 s (+0.299 s / +20.2%) | 3.964 s (+2.484 s / +167.8%) |
Second load of appearance preset #2 | 1.514 s | 0.987 s (-0.527 s / -34.8%) * | 7.035 s (+5.521 s / +364.7%) |
Second load of appearance preset #3 ** | 0.749 s | 0.698 s (-2.528 s / -10.7%) | 0.633 s (-0.116 s / -15.5%) |
Time to open the appearance selector menu | 0.316 s | 0.325 s (+0.009 s / +2.8%) | 0.316 s (0 s / 0 %) |
** second loads of preset #3 were so immediate there was no loading bar/red hourglass to go off of, so by "loaded" I assumed the very first frame the loaded look was visible on.
Test 3: Loading some scenes.
A set of test scenes loaded one after another:
- "light" scene: KittyMocap's "KM308 Evening sex"
- "moderate" scene: Zinigo's "First Date"
- "heavy" scene: TGC's "Virtual Sweetheart Reloaded", the CG-Part only scene
For the "heavy" scene, the "loaded" condition happens when the last freeze goes away, since I guess that scene still has some stuff to load even after VaM claims it's done loading.
SSD cache | HDD cache | No cache | |
"Light" scene | 26.030 s | 34.024 s (+7.994 s / +30.7%) | 55.957 s (+29.927 s / +115.0%) |
"Moderate" scene | 30.566 s | 44.840 s (+14.274 s / +46.7%) | 58.725 s (+28.159 s / +92.1%) |
"Heavy" scene | 106.306 s | 103.407 s (-2.899 s / -2.7%) * | 116.827 s (+10.521 s / +9.9%) |
Summary
- tl;dr of the results:
Cache has no impact on appearance preset menu launch time.
Loading looks for the first time since launching VaM takes about 2.5x as long with an HDD cache, and about 6.5x longer without any cache.
Loading looks for the second time since launching VaM takes roughly the same amount of time with an HDD cache, and about 2.7x longer without any cache.
Loading light/moderate scenes takes about 1.4x longer with an HDD cache, and about 2x longer without any cache.
Loading heavier scenes with a lot of atoms/non-material stuff (such as "Virtual Sweetheart Reloaded") severely shrinks the cache's impact on loading times, with this scene seemingly taking nearly the same amount of time to load on an HDD cache and just 1.1x longer without any cache. <-- due to the testing methodology that didn't involve game/system restarts between loaded scenes, this is somewhat speculative - the true impact on loading times of heavy scenes could be larger if you load such a scene immediately after game start; see below for details.
Should you use VaM cache? Unless you're very patient, absolutely. Is cache on HDD as fast as cache on SSD? Absolutely not, but it's still far better than without any cache, so if you're short on SSD space, it'll do. - HDD results: So why was an HDD cache so much slower in my tests? Well, my drive is 5400 RPM, so a faster 7200 RPM drive would yield better results, though I wouldn't suspect it to close the gap towards the SSD results in a meaningful fashion. But there's one more thing. As mentioned, "caches outside of VaM, whether that's Windows's own cache, or drives' own" exist, and their existence is something I was reminded of when I was loading appearance presets with an HDD cache (when doing a test run of the tests before noting down any results, without PC reboots in-between the cache location changes) and noticed how an entire appearance preset was loaded without me hearing the drive at all. Loading another preset and checking HDD usage in Task Manager confirmed my suspicion - some other non-VaM cache is severely improving loading times, to the point they become indistinguishable compared to having VaM's cache on an SSD drive. If you change your cache location in VaM, load some appearance presets to fill up that cache, restart VaM and try to load the same presets again, you will likely cause this situation to occur. Because of that, the results of HDD cache you see here are essentially the worst case scenario, and depending on how exactly you use VaM, your experience might be slightly, or severely better.
- "Heavy" scene results: As mentioned in the second last note above the test results, I did not restart VaM between the tests - I only restarted the whole computer between cache location changes. Because of that, VaM kept retaining more and more resources loaded in memory with each appearance preset and scene being loaded. Even though the second loaded scene has shown a significant difference between SSD and HDD caches similar to the first scene, the "heavy" scene was the very last test, which means in theory it may have had the highest amount of resources already loaded in memory. The low loading time difference in this scene may have been caused by that, or it may have been caused by tons of non-texture stuff being loaded, or perhaps a mixture of both. This is a potential major flaw of this testing procedure that renders the measurements of that scene inconclusive.
- Anomalies: The system/background application load has been under control for the entire duration of the test, so if anyone more knowledgeable about VaM than me has an explanation as to why they happened, I'm all ears. If I wasn't so lazy, I'd probably re-do the tests several times to reduce the impact of these anomalies.
- Video footage of the tests being run: I still have them. I might share them. But my upload speeds blow, so I'll probably do it only if someone persuades me it's a good idea to do so.
- Cache size: That's on topic of the laziness - yeah I'm too lazy to re-do the test with, say, a 100 GB cache. Sorry.
- Charts: They suck because they were made in LibreOffice. I will not elaborate further.
Last edited: