Can additional memory be forced to cache?

Vengor

Member
Feb 28, 2000
29
0
0
I have 16gb of ram in two of my systems and I was wondering if there is a way in Windows 7 or 8 (one each) to force the system to use more memory for disk caching. Now I have setup a ram drive with the ASRock software and flipped to it full caching of temp and swap files however that isn't what I'm talking about.

If you recall WAY back in the days of Windows 95-98 you could make smartdrv cache files like a whole game directory. I can't remember how it was done as it was a bat file I made, however it worked great as I had tons of RAM for back then I think it was 512mb or something like that it was HUGE for the day is what I remember. Is there anyway other than installing the game on the ram drive to make the drive cache pull the game into the drive cache? Windows isn't using nearly enough of the memory with a game loaded I still have enough space to load all of most games (well the one I want to play at the time) into ram.
 

taq8ojh

Golden Member
Mar 2, 2013
1,296
1
81
Now I have setup a ram drive with the ASRock software and flipped to it full caching of temp and swap files however that isn't what I'm talking about.
Omg, not this again.
And the second part as well.
 

ViRGE

Elite Member, Moderator Emeritus
Oct 9, 1999
31,516
167
106
Omg, not this again.
Indeed.

Look, Windows already caches code and data in unused RAM. It's called SuperFetch, and has been in the OS since Vista. On Windows 8 you can see it in use in the Task Manager by going to the Memory stats; it'll be the Standby/Cached memory value (depending on where you look).

You don't need 3rd party RAM disk software, and indeed you're going probably going to shoot yourself in the foot. Especially since the swapfile is composed of data that's not being kept in RAM for a reason. If Windows needed/wanted it in RAM, it would have done so in the first place.
 

colonelciller

Senior member
Sep 29, 2012
915
0
0
i have a question about this... not coming from a "is it worth it" perspective but more of "would it make a measurable/noticeable difference"

would a RAM disk created exclusively to hold a game like skyrim make things like loading screens faster compared to skyrim on a decent SSD such as the samsung 840 series?
 

taq8ojh

Golden Member
Mar 2, 2013
1,296
1
81
No, not at all. It would probably even load slower, because the game still has to be loaded into RAM, which you definitely wouldn't have enough of, unless you have a server-class board that can hold 64GB+ RAM (assuming Skyrim has its total size somewhere around 30GB like all such modern games with superb graphics).
 

colonelciller

Senior member
Sep 29, 2012
915
0
0
No, not at all. It would probably even load slower, because the game still has to be loaded into RAM, which you definitely wouldn't have enough of, unless you have a server-class board that can hold 64GB+ RAM (assuming Skyrim has its total size somewhere around 30GB like all such modern games with superb graphics).

turns out I do have a server mobo, pretty fast Xeon CPU and 64 GB ram.
 

taq8ojh

Golden Member
Mar 2, 2013
1,296
1
81
Nothing stops you from trying it out then :p
I don't think you would see a difference given current high end SSDs' speeds, though.
 

mfenn

Elite Member
Jan 17, 2010
22,400
5
71
www.mfenn.com
Indeed.

Look, Windows already caches code and data in unused RAM. It's called SuperFetch, and has been in the OS since Vista. On Windows 8 you can see it in use in the Task Manager by going to the Memory stats; it'll be the Standby/Cached memory value (depending on where you look).

You don't need 3rd party RAM disk software, and indeed you're going probably going to shoot yourself in the foot. Especially since the swapfile is composed of data that's not being kept in RAM for a reason. If Windows needed/wanted it in RAM, it would have done so in the first place.

This. Additionally, taking RAM from the system to use a RAM disk is actively defeating the caching build into the OS. You're making the OS think that it is running out of memory, so naturally, it is going to evict things from the cache.
 

DominionSeraph

Diamond Member
Jul 22, 2009
8,391
31
91
Look, Windows already caches code and data in unused RAM. It's called SuperFetch, and has been in the OS since Vista. On Windows 8 you can see it in use in the Task Manager by going to the Memory stats; it'll be the Standby/Cached memory value (depending on where you look).

I'm not sure that superfetch would go so far as to cache game resources, though.
Not a whitepaper, but: http://www.osnews.com/story/21471/SuperFetch_How_it_Works_Myths

SuperFetch for applications basically operates in the same way as the boot variant; it traces what files are accessed by an application during the first ten seconds of said application's startup, which can then be used to load the proper data in memory at appropriate times. SuperFetch data for applications is stored in /Windows/Prefetch (the various .pf files).

This is in line with some dumb behavior I noticed when I ran Vista (before upgrading to XP): Looking at my file accesses I could watch superfetch load parts of movies I had watched the previous week. They would have been in MPC-HC's prefetch file having been loaded immediately on start.
 

Cerb

Elite Member
Aug 26, 2000
17,484
33
86
This is in line with some dumb behavior I noticed when I ran Vista (before upgrading to XP): Looking at my file accesses I could watch superfetch load parts of movies I had watched the previous week. They would have been in MPC-HC's prefetch file having been loaded immediately on start.
Same. It works great for office machines, though, which commonly use only a couple programs, and ruin the [LRU] cache with backups and virus scans. On some machines, it doesn't do jack, though. This desktop I'm on, FI, which is also a Windows HTPC, has only 4GB, and almost 1GB free, with Superfetch having never been disabled.

Windows' file caching is independent of Superfetch; Superfetch is a speculative prefetcher. In 7, it will disable itself with a fast SSD. In 8, MS has not been forthcoming about how it handles SSDs (does it ignore it, like the defragger?), but it also fetches commonly used files into your hibernate file, so they seem to be working on making it more aggressive, at least, for mobile users.

In Task manager's performance section, Available is RAM that applications can use (it will never be lower than Free+Cached), but haven't, Cached is how much is being used for cache, and Free is how much is not being used for anything.

--

On another note entirely, putting swap in a RAM drive is absolutely pointless.
 

Vengor

Member
Feb 28, 2000
29
0
0
I have to disagree. There is a performance difference when the game is loaded into RAM on a RAM drive. If you want I can load a game on to the RAM drive. I remember that there was a way to force smartdrv to load all of a directory into memory if you had the space. When I have time I'll post the results.

I only play MMOs for the most part so would the Valley bench be good enough for you? Have any of the naysayers actually tested this?

http://unigine.com/products/valley/

Though as Valley is pretty small I'll have to dig up something that is a bit bigger.
 
Last edited:

Mushkins

Golden Member
Feb 11, 2013
1,631
0
0
I have to disagree. There is a performance difference when the game is loaded into RAM on a RAM drive. If you want I can load a game on to the RAM drive. I remember that there was a way to force smartdrv to load all of a directory into memory if you had the space. When I have time I'll post the results.

I only play MMOs for the most part so would the Valley bench be good enough for you? Have any of the naysayers actually tested this?

http://unigine.com/products/valley/

Though as Valley is pretty small I'll have to dig up something that is a bit bigger.

A graphics benchmark isn't going to do much to prove or disprove this issue. This is strictly a loading time question. You're not going to get higher FPS or smoother gameplay from caching an entire game unless the *exact* issue you're having is stuttering from assets loading on the fly typically seen in games that A) load assets on the fly, and B) are installed on slow 5400rpm spinning disk drives. Putting unused textures into RAM ahead of time and forcing them to stay there does not make the video card render and display frames any faster or better.

You said it yourself, "Back in the Windows 95 days." You're trying to use an old optimization to solve a problem that no longer exists. We dont have computers with 256MB of RAM anymore, we're not running out of resources like we were, and we have SSDs instead of ancient platter drives and floppy disks. We're also not loading game assets off a CD because there's not enough room to store them on the hard drive even in a temporary sense.

I have Skyrim installed on a 256GB Crucial M4, and an i5 3570k running at stock clocks at the moment, and it *already* loads each area transition too fast to read any of the loading screen help and hints unless they're just a few words.

You said you play a lot of MMOs. Keeping art assets from some dungeon you're *not in* sitting in RAM ready to go is not going to make the game run any better, and some hacked together ramdisk solution brings any number of potential performance issues to the table making your experience potentially *worse*.
 

Vengor

Member
Feb 28, 2000
29
0
0
I don't care about the boot time of my computer; it could be 30 minutes for all I care. However when changing instances I do care. I hate every pause that a game makes. This is most noticeable if it has to load textures when entering a town. From what I have observed there is a ton of activity when entering crowded zones in most MMOs and it is very distracting. I have to at a guess figure that it is loading textures up once I cross an area where there are lots of people. That is one example where for me and it is very distracting. I have an i5 3570k clocked up to 4.6, 16 gb of ram running Windows 8 64 bit and a 680GTX and I get pauses that are annoying when entering cities. I'm trying to find a solution that minimizes if not completely eliminates this issue. If I get a few additional frames a second that would be great too, but it is the pauses that happen here and there that really bug me big time.

I figure if I can force the whole game to load into memory then it won’t have to pause to load up city textures and what not.

As no one has apparently tested this out I think it would be a great opportunity to test this out and have some real numbers stating one way or another clearly. I have a decent system now so I can do some of my own testing. If you have any benchmarks that you think would be a good valid test then please give me a few links.

Simply stating without real benchmarks to backup pronouncements on performance are making those same statements hallow. To give them weight would be to provide real evidence (benchmarks) vs postulating the outcome. Many times I have seen in tech something that on the face of it shouldn’t work well but does and have seen plenty where something that should work great, doesn’t .
 
Last edited:

mfenn

Elite Member
Jan 17, 2010
22,400
5
71
www.mfenn.com
Simply stating without real benchmarks to backup pronouncements on performance are making those same statements hallow. To give them weight would be to provide real evidence (benchmarks) vs postulating the outcome.

So why don't you post some?