HowTo: RAMDisk + SymLink

Post » Mon May 28, 2012 12:16 pm

RAMDisk + SymLink Simple Step-by-Step HowTo for Simple Minds (like mine!)
This is a simple tutorial for installing and setting up a RAMDisk and using SymLinks to move Skyrim files (such as textures) into system memory for faster access when needed for loading into VRAM. This is a one-time setup that will be persistent over system reboots (i.e. you don't need to hybernate constantly to maintain your files in the RAMDisk).
  • Zeroeth, given the passionate responses below about the actual benefit one may or may not receive from implementing a RAMDisk and SymLinking Skyrim textures (or other game files), I need to state that the point of this post is not to advocate using RAMDisk/SymLinks as a performance benefit to playing Skyrim. Rather, the point is that if you want to try this approach to see if you gain any benefits to loading times, area transitions, etc., here's one method of doing it. The benefits of using RAMDisk versus other technologies such as SSD have been debated repeatedly in other posts. If you want to debate RAMDisks' usefulness to gaming in general or Skyrim specifcially, please go find one of those other posts to do it in. If you want to discuss various methods for implementing a RAMDisk with SymLinks and what Skyrim files are best to put into the RAMDisk, then this is the place to do it.
Thanks!
  • First, make sure you have the system RAM to do this. If you're running 4GB or less, fuhgettabouddit. 6GB, maybe, but don't create larger than a 2GB RAMDisk. 8GB and above, you should be golden.
  • Second, I'm not advocating using any particular RAMDisk software, but this one is free up to 4GB and I know it works with multiple RAMDisk images.
  • Third, I'm not advocating RAMDisk over any other technology (e.g. SSD, or whatever), but for those of us on a budget or too cheap to spring for upgrades, this is a FREE method for increasing gaming performance by pre-loading frequently accessed files into system memory bypassing slower disk access otherwise necessary.
  • Fourth, I'm not advocating the Data/textures folder as the best to symlink for performance enhancements or addressing micro stutter, etc.; it's just what made sense to me at the time. You'll need to decide for yourself what works best on your setup.
  • Fifth, I like simple, one-time setups so that I can run my game(s) with optimal performance without the need to take additional steps every time I want to play, and this tutorial follows that principle.
  • Sixth, you can apply this technique to just about any game, really, and create multiple "game images" to load into RAMDisk whenever you want to play a different game, like Morrowind, Oblivion, or Skyrim, for instance. :tes:
While there appear to be lots of steps here, that's just because I've broken them up into small, easily chewable bits. At a high level, you're really just doing three things: installing/setting up the RAMDisk, installing SymLink components, and moving/symlinking your data.

These steps are specifically for Windows 7; however, on Vista or XP, the steps should be very similar if not identical.

STEP 1: Install and Setup RAMDisk
Spoiler
  • Download Dataram RAMDisk from http://memory.dataram.com/products-and-services/software/ramdisk and follow the instructions to install it - you'll have to deal with the 18004Memory ad popup when you open the RAMDisk Configuration utility unless you purchase it, but that's what you get for free software, eh? Otherwise, you'll never see this popup again.
  • Start the RAMDisk Configuration utility (close the ad popup, unless you're interested in more memory - and hey, who isn't?).
  • Under the SETTINGS tab, enter the size of the RAMDisk you want to create in MB - the maximum size for the freeware version is 4092MB.
  • Click 'Unformatted'.
  • Under the LOAD and SAVE tab, click LOAD DISK IMAGE AT STARTUP - this is the first part of what maintains a persistant image over reboots.
  • The image Filename and Disk Label are entirely up to you; I just left them at default. Here is where you can choose to save multiple disk images for different games and load them manually rather than at startup.
  • You can choose to select SAVE DISK IMAGE ON SHUTDOWN if you like, which takes a little more time to shutdown your system; however, if you don't plan on making changes to the texture files very often, then there really is no need. I chose not to save on shutdown and will manually save the image if/when I make changes to texture files.
  • Go back to the SETTINGS tab and click START RAMDISK - this will take a few seconds.
  • Minimize (but don't close) the RAMDisk Configuration utility - you'll need it at the end of this setup.
  • Go to START --> CONTROL PANEL --> ADMINISTRATIVE TOOLS --> COMPUTER MANAGEMENT.
  • In the left-hand column, select STORAGE --> DISK MANAGEMENT.
  • Right-click on your newly created RAMDisk in the bottom section (in my case Disk 1) and select NEW SIMPLE VOLUME.
  • Click NEXT, leave at the default full size (4089MB), NEXT again, choose your drive letter, and NEXT again
  • Select FORMAT THIS VOLUME WITH THE FOLLOWING SETTINGS
  • Choose NTFS, DEFAULT allocation size, enter a name for your volume (such as RAMDIsk) and QUICK FORMAT (it's up to you whether or not to select Enable File and Folder Compression; most systems these days can handle compression without any noticeable performance impact, but TMK this increases CPU load when decompressing files on top of Skyrim's already CPU-intensive coding; so it might be counter-productive).
  • Click NEXT and FINISH, and when complete, your RAMDisk is ready to receive and present data. Move onto the next step.

STEP 2: Install SymLink Components
Spoiler
  • Go to http://schinagl.priv.at/nt/hardlinkshellext/hardlinkshellext.html and click the DOWNLOAD link.
  • Download Two Files: Find the correct files for your OS (x86, x64, etc.) and download 1) the Microsoft Visual C++ 2005 Redistributable package and 2) the Link Shell Extension.
  • Install MS Visual C++ 2005 Redistributable.
  • Install Link Shell Extension.

STEP 3: Move Files and Symlink to RAMDisk
Spoiler
  • Open your .../Steam/Steamapps/Common/Skyrim/Data folder in one window.
  • Open your RAMDisk drive in another window (E: on mine).
  • Move or Copy "/skyrim/data/textures" folder and "skyrim - textures.bsa" file to RAMDisk...
    • OPTION 1: Drag the folders or files you want from the Skyrim/Data folder to your RAMDisk drive and MOVE them (not copy).
    • OPTION 2: Alternatively, you can COPY the folders or files to the RAMDisk, and rename the original with a .BAK extension. This may be a preferred method as it maintains the original location of your files in case you want to restore them or lose your RAMDisk image for any reason.
    • NOTE: I chose to move the entire Textures folder (about 2.58GB in my install) and 'skyrim - textures.bsa' file (1.29GB). You can choose different ones, including subfolders or individual files inside of subfolders beneath the /Data folder, but be sure to drop the symlink during step 5 into the folder you moved it from. The location(s) you move the folders or files to on the RAMDisk do not have to match their location in the /Data folder as long as you link them properly in step 5, but I highly recommend keeping them organized the same in case you want to move things back the way they were.
  • Right-click on the moved folder or file in your RAMDisk and select PICK LINK SOURCE (if you moved individual files or multiple folders you will need to follow steps 4 and 5 for each).
  • Right-click in your Skyrim/Data folder (white space) and select DROP AS --> SYMBOLIC LINK.
  • Maximize the RAMDisk Configuration window, select the LOAD and SAVE tab, and click SAVE DISK IMAGE NOW - this is the second part of what maintains a persistant image over reboots.
  • Close all windows. You don't need any apps running to make this work; it's all handled with services.

That's it, you're done. Now you can run Skyrim with the textures or other files loaded into system memory persistently across reboots.

There are some more advanced Links you can create which will allow you to have more control over the actual files stored in the RAMDisk (take a look at a Junction, for instance), but if you do this, be sure to set SAVE DISK IMAGE ON SHUTDOWN in the RAMDisk Configuration utility to ensure the image is updated properly each time you restart.

Now I'm sure some folks will have their own thoughts and opinions on how to do this, such as using different RAMDisk software, choosing different files to move to the RAMDisk, or different ways to create symbolic links, and I'm all for it.

Please post your comments and feedback, and if I see something that changes my current perspective on how to make this work, I'll update the instructions above.

Thanks!

-RMWChaos
User avatar
SHAWNNA-KAY
 
Posts: 2960
Joined: Mon Dec 18, 2006 1:22 pm

Post » Tue May 29, 2012 12:59 am

This sounds interesting but could you perhaps post some before and after performance results as proof of concept.

Thanks for the write up info :)
User avatar
Chad Holloway
 
Posts: 2909
Joined: Wed Nov 21, 2007 5:21 am

Post » Mon May 28, 2012 11:22 pm

I am using ImDisk and the mklink command line, copy the data folder to the 6000M ramdisk, rename the skyrim data folder and create the junction with the according names - all within a batch file which i run as administrator before a start skyrim. the whole copy process takes about 2:10 minutes (with the vanilla textures).

load times are reduced by about 50% (vanilla textures). this has a noticeable impact on gameplay exploring the map when reloads happen. FPS fall-offs take considerably lesser time. to get reliable figures it would actually need 2 identical systems in front of you or spend really lots of time.

i have an i7-950 @3,4GHz, WIn7 64 and 12GB DDR3 at about 1450MHz and a HD6950 with 2GB. Someone could definitly get more out with faster memory. (this seems a bottleneck on my rig since the GPU is usually between 40-60%, rarely going up to 80% while FPS only drop below 25 when reloading, normally between 40 and 60).

when using several high quality texture mods +1,2GB reloading times go up again.

Edit: when using the many texture mods i copy only the data folder - cos of size. with the vanilla textures i used to copy the whole skyrim folder which (includes the whole directx 10 .cabs) reduces the startup to lightning fast since the executables are then on the ramdisk too. from a certain ramdisk size on Win7 (somewhere at 6-7GB ramdisk + 1-1.5GB skyrim at 12GB sysram) seems to move system stuff to the virtual memory (HDD again), thus making ALT+TAB and other activities considerably slower.
User avatar
Mimi BC
 
Posts: 2841
Joined: Sat Oct 07, 2006 10:30 pm

Post » Mon May 28, 2012 11:40 pm

Anyone else think that bodges like this are yet further evidence of an ineptly programmed game?

Once upon a time games were written to take full advantage of available hardware; it'd be a trivial programming task to put a rudimentary texture cache into the game so all available memory was utilized in a meaningful manner.
User avatar
yessenia hermosillo
 
Posts: 3069
Joined: Sat Aug 18, 2007 1:31 pm

Post » Tue May 29, 2012 1:22 am

Anyone else think that bodges like this are yet further evidence of an ineptly programmed game?

Once upon a time games were written to take full advantage of available hardware; it'd be a trivial programming task to put a rudimentary texture cache into the game so all available memory was utilized in a meaningful manner.

This isn't a bodge, it is a perfomance tweak.
I have SSDs but using a RAMdisk still tears the [censored] out of them, hence why I have 24GB of RAM.
I personally don't have the need for using a RAM disk with Skyrim though as I never have any problems related to slow texture loading, I have a lot of texture upgrades in use as well.
User avatar
Bethany Watkin
 
Posts: 2956
Joined: Sun Jul 23, 2006 4:13 pm

Post » Mon May 28, 2012 4:07 pm

This isn't a bodge, it is a perfomance tweak.

If the game fully utilized the available system ram to cache textures, instead of reloading them from disk each time they are needed; the ram disk would be unnecessary - ergo it's a bodge to work around a shortcoming of the game.
User avatar
Chloe Yarnall
 
Posts: 2936
Joined: Sun Oct 08, 2006 3:26 am

Post » Mon May 28, 2012 2:30 pm

If the game fully utilized the available system ram to cache textures, instead of reloading them from disk each time they are needed; the ram disk would be unnecessary - ergo it's a bodge to work around a shortcoming of the game.

on a console right. on a multitasking system where i can alt-tab and start openoffice to do a power point presentation, a browser window to read news and skype my friends around the world while the game stays in the background, nope.

you may give the users the option about how much mem to use? well, most of them dont even know whats memory.
User avatar
Steven Hardman
 
Posts: 2850
Joined: Sun Jun 10, 2007 5:12 pm

Post » Mon May 28, 2012 1:39 pm

If the game fully utilized the available system ram to cache textures, instead of reloading them from disk each time they are needed; the ram disk would be unnecessary

And load times would be very frustrating - no point loading 4gb of data into RAM at the start of the game when it makes more sense to stream it from (hard) disk as you go. And could you imagine every game you owned loading all their data into RAM on computer start up? No, they have to make the assumption that people use their computers for more than just playing Skyrim, quite rightly.

As it is, load times are far quicker than Morrowind or Oblivion, and are more than quick enough for most people.
User avatar
Hope Greenhaw
 
Posts: 2898
Joined: Fri Aug 17, 2007 8:44 pm

Post » Mon May 28, 2012 10:54 pm

Sorry to be the bearer of bad news, but usually when something seems blindingly obvious, someone has probably already thought about it.

Windows and other modern operating systems already use any unused memory as disk cache that's freed if it's needed somewhere else. Which is the reason why you often hear people complaining about "Windows eating all their memory", when they don't understand how the Operating System's memory management works.
If you have over 4GB of memory, you have plenty of it to cache the files Skyrim uses most often. And that happens automatically, courtesy of the OS. Like kalniel said, stuffing all that data onto a RAMdisk will only make starting up the game slower, since you have to do disk access for data that the game might not touch at all during your gameplay session(if you mount the RAMdisk in a script when starting the game, that is.). And it's extremely unlikely that you will see any speedup during gameplay, since the game preloads and caches the data it knows it'll need. At best, you'll just end up with one more copy of the game's data in the memory.

IOW, if you have enough memory to store Skyrim on a RAMdisk, you have enough memory for the operating system to cache the game files in the memory anyway. If you don't, well...
User avatar
Stephani Silva
 
Posts: 2877
Joined: Wed Jan 17, 2007 10:11 pm

Post » Mon May 28, 2012 11:03 am

Nicely done article, kudos! This is indeed more of 'something to play with' then a hard fast 'fix everything' but hey nice to see it laid out like this.

Posters talking about how this is counter-intuitive or redundant: Yes win7's precaching is rockin' but this very specifically targets the stuff you want read from rather then hoping that window's predictive precaching thinks to do it. Also at least with the ramdisk app the shift from disk to memory occurs at startup of the OS rather then upon loading Skyrim and thus the initial transfer isn't part of the loading of skyrim but rather happened long before it. Its a neat thing to play with and yes it significantly reduces the load times between scenes and reduces the stutter of ad-lib loading new cells as you wander the outdoors. Of course more significantly felt if you're the type that's also raising ugrid and or filling up your data folder with lots of 3rd party high-res textures.
User avatar
Cameron Wood
 
Posts: 2926
Joined: Wed Oct 31, 2007 3:01 pm

Post » Mon May 28, 2012 2:11 pm

Posters talking about how this is counter-intuitive or redundant: Yes win7's precaching is rockin'

It's actually very intuitive, if you don't know specifics about how your computer's OS works. There's nothing Win7-specific about this, OS level disk caching has existed from the olden days of stone axes & Windows NT 3.5, and farther back at least to the days of minicomputers.

but this very specifically targets the stuff you want read from rather then hoping that window's predictive precaching thinks to do it.

No, it throws all the game's data files into memory as a big clump, and hopes that the game will go to access some of them often, hoping for a speedup. In fact, often-accessed files will already be in the RAM, because of Windows http://technet.microsoft.com/en-us/library/cc938576.aspx(The article talks about Win2000 Server, but the same principles still hold, and that just shows this isn't a new thing...), and the way the game itself precaches data.

Also at least with the ramdisk app the shift from disk to memory occurs at startup of the OS rather then upon loading Skyrim and thus the initial transfer isn't part of the loading of skyrim but rather happened long before it.

Depends on the RAMdisk app you decide to use. Already addressed this in the previous post. Starting Skyrim from a already mounted and pupulated RAMdisk might conceivably be slightly faster, but I doubt the speedup is significant.

Its a neat thing to play with and yes it significantly reduces the load times between scenes and reduces the stutter of ad-lib loading new cells as you wander the outdoors. Of course more significantly felt if you're the type that's also raising ugrid and or filling up your data folder with lots of 3rd party high-res textures.

I suppose you have some hard data to support your claims too? You're the one making claims for speedup after all, so you have the burden of proof. The textures will be cached in the file system cache too, and the game already preloads a "bubble" of cells around you when you move to facilitate that. Despite what some people would like to think, the coders at Bethesda aren't completely dumb.
User avatar
Prohibited
 
Posts: 2826
Joined: Tue Jun 12, 2007 6:13 am

Post » Mon May 28, 2012 12:50 pm

i dont think we are talking about speeding up an application. it is all about doing a fast-travel and a quick 360 turn or you start running thru the world and new cells have to be loaded. the OS can not and does not preload where it may expect you to be in a few second. it can not know at all.
User avatar
Eire Charlotta
 
Posts: 2944
Joined: Thu Nov 09, 2006 6:00 pm

Post » Mon May 28, 2012 5:32 pm

i dont think we are talking about speeding up an application. it is all about doing a fast-travel and a quick 360 turn or you start running thru the world and new cells have to be loaded. the OS can not and does not preload where it may expect you to be in a few second. it can not know at all.

The OS doesn't precache(well, depending on what it's doing atm), but the game engine does. The OS handles keeping the stuff cached. Oblivion had settings for that in Oblivion.ini(Cell buffer settings, iPreloadSizeLimit, etc.), but I guess Beth removed them from Skyrim to keep people from changing them needlessly.
User avatar
Sunnii Bebiieh
 
Posts: 2981
Joined: Wed Apr 11, 2007 7:57 pm

Post » Mon May 28, 2012 5:11 pm

^^ Nothing but ancedotal evidence and to create a benchmark & record it all just to satisfy a nitpicker like yourself? Nah I've got better things to do but if you want to disprove my comment you're welcome to do so since you're the one vested in that. You're also reading into my post a little to literally there, when I say 'win7 precache rocks' I was implying that they have done a much better job then previous attempts at it, not that this is the first OS to ever consider using all that otherwise unused ram for something useful. For Skyrim's own caching methods: Nope sorry that doesn't happen at least when you're already consuming close to all of its available mapped memory, IE how in an outdoor scene I'll see tesv.exe has about 1.8gb commited and my video cards are using about 2.5gb (each of course, as per how alt-frame SLI). The anecdotal part though: Initially loading the game from my SSD straight to an outdoor scene takes about 15 seconds on my SSD or 4 seconds if I've got the contents in a ramdisk, fast travelling is about 2-8 seconds on the ssd depending on how much in common the two locations may have and 2-3 seconds if from the ramdisk.

Again you're welcome to disprove this yourself with your own testing, or you can just lay off and accept that forcing conditions where skyrim's data is assured to be sitting in memory will improve load speeds for anyone who feels like trying it and happens to have enough system ram to pull it off.

ED: I'd also like to say that I did that initial evaluation back in November when I was first poking around with Skyrim, been using a ramdisk as a versatile 'put my current game I'm playing' spot for much longer then just this thread.
User avatar
Noely Ulloa
 
Posts: 3131
Joined: Tue Jul 04, 2006 1:33 am

Post » Mon May 28, 2012 7:30 pm

.... but the game engine does ....

obviously, it doesnt well, or at least, not perfectly. and someone would recognize a continuously (1-exp(...)) increasing amount of reserved memory. and this definitely does not happen. at the end of the day, someone visiting all major areas and having 24GB of RAM should see about 6GB of RAM occupied.
User avatar
Hazel Sian ogden
 
Posts: 2944
Joined: Tue Jul 04, 2006 7:10 am

Post » Tue May 29, 2012 12:12 am

^^ Nothing but ancedotal evidence and to create a benchmark & record it all just to satisfy a nitpicker like yourself? Nah I've got better things to do but if you want to disprove my comment you're welcome to do so since you're the one vested in that. You're also reading into my post a little to literally there, when I say 'win7 precache rocks' I was implying that they have done a much better job then previous attempts at it, not that this is the first OS to ever consider using all that otherwise unused ram for something useful. For Skyrim's own caching methods: Nope sorry that doesn't happen at least when you're already consuming close to all of its available mapped memory, IE how in an outdoor scene I'll see tesv.exe has about 1.8gb commited and my video cards are using about 2.5gb (each of course, as per how alt-frame SLI). The anecdotal part though: Initially loading the game from my SSD straight to an outdoor scene takes about 15 seconds on my SSD or 4 seconds if I've got the contents in a ramdisk, fast travelling is about 2-8 seconds on the ssd depending on how much in common the two locations may have and 2-3 seconds if from the ramdisk.

Again you're welcome to disprove this yourself with your own testing, or you can just lay off and accept that forcing conditions where skyrim's data is assured to be sitting in memory will improve load speeds for anyone who feels like trying it and happens to have enough system ram to pull it off.

So you're saying that I'm a nitpicker for wanting evidence for technical, verifiable claims? There's a word for people who make wild claims and after you challenge them for evidence, they go "disprove it yourself", however the board's TOS probably prevents me from using it.
User avatar
Ray
 
Posts: 3004
Joined: Tue Aug 07, 2007 10:17 am

Post » Mon May 28, 2012 6:52 pm

So you're saying that I'm a nitpicker for wanting evidence for technical, verifiable claims? There's a word for people who make wild claims and after you challenge them for evidence, they go "disprove it yourself", however the board's TOS probably prevents me from using it.
*scratches head* I'm not really sure that 'has a life' is a contraversial term in these forums so I think you're safe in using it. Oh wait you're implying that we're lying when we say boot times of skyrim are faster when the whole game's contents is assured to be in ram instead of on the disk or hoping that precaching has recognized it as something to cache? No, prove to us that precaching knows to put skyrim's contents into its reserves, then we'll prove to you that using a ramdisk and manually ensuring that its in memory is better.

You're the outlier here with the claim that the OS knows best and when I see heavy disk access as Skyrim changes scenes that I'm just crazy, you prove to me that its actually just caching and that my disk acceses are a coincidence.
User avatar
Stacy Hope
 
Posts: 2916
Joined: Thu Jun 22, 2006 6:23 am

Post » Mon May 28, 2012 6:28 pm

This sounds interesting but could you perhaps post some before and after performance results as proof of concept.

Thanks for the write up info :smile:
Would love to meet your request ... have no idea how to go about it. If this were something I could show you with framerates, no problem, but we're talking loading times between areas, etc. I could time it, then post those figures here, but then again, I could post anything at all and how would you know if it was BS without testing yourself?

Depending upon what you choose to load into RAMDisk, any time that Skyrim would normally go to disk to retrieve the data, that data would be made available far more quickly as a result of retrieving it directly from memory. So as far as "proof-of-concept" is concerned, not really necessary, the concept is sound. If you want exact numbers, however, I'm afraid I can't give you those because the reduction in time to load data depends upon several factors:
  • Speed of your HDD (5,400 / 7,200 / 10K rpm etc)
  • Speed of your system bus (PATA vs. SATA, etc)
  • Speed of your memory (DDR3, DDR4, DDR5, over-clocked, etc)
  • How much memory you have available to dedicate to RAMDrive
  • How much data you load into the RAMDrive
  • Other stuff I haven't even thought of...
In my case, I was not really encountering any major problems - hadn't seen any stuttering, FPS was mostly in the 40-60 range excepting the "bad areas" like Whiterun and Markarth, and load times were pretty decent. However, I'm always looking for performance boosts, and in this case, reducing loading times even by a few seconds was desirable.

Now since I just set this up yesterday (Merry Christmas, computer, here's 6GB more memory! YAY!), I really haven't had much time to do comparisons on my rig. I wanted to document the steps I took while they were fresh in my mind, having spent some time researching it before Christmas to understand the pros and cons and choosing additional memory over an SSD.

Now I "know" there will be some improvement loading certain Skyrim data into the RAMDisk, but how much and where I get the performance boosts is yet to be determined. I started by loading the textures folder because that was a simple step. Next, I might try loading the BSA texture files as well, and see what benefit that gives me. As I read through some of the folks' replies in this thread, I might even try some other RAMDisk options to get as much as 6GB available, but I doubt I'll go up to 8GB.

Some smarter folks than I can probably say which Skyrim data files would be best to load into the RAMDisk for peak performance benefits. I hope. Because I could use the advice. :blink:

Regards,

-RMWChaos
User avatar
Alba Casas
 
Posts: 2997
Joined: Tue Dec 12, 2006 2:31 pm

Post » Tue May 29, 2012 1:57 am

You could fraps it but then the deniers will just claim that you're fudging the values or playing with the video's timing. Its not a winnable situation and until you basically put a computer in front of them and make them try both methods they will continue to find some imagined flaw in the plan.

ED: Key files that make a big difference? The ones I see that get the most traffic have been the textures and meshes bsas hands down. Even the free 4gb free ramdisk being used with two softlinks from those stored there back to the data, gets hairer though once you add lots of loose files via 3rd party textures and what not though.
User avatar
butterfly
 
Posts: 3010
Joined: Wed Aug 16, 2006 8:20 pm

Post » Tue May 29, 2012 12:11 am

obviously, it doesnt well, or at least, not perfectly. and someone would recognize a continuously (1-exp(...)) increasing amount of reserved memory. and this definitely does not happen. at the end of the day, someone visiting all major areas and having 24GB of RAM should see about 6GB of RAM occupied.

The filesystem cache will expire stuff eventually if it's not used. That shouldn't affect performance that much.
If you want to test if it does, you could try tweaking your OSes http://technet.microsoft.com/en-us/library/cc785435%28WS.10%29.aspx:

Saying "fsutil behavior set memoryusage 2" in the command prompt increases the memory available for the cache.
User avatar
Micah Judaeah
 
Posts: 2987
Joined: Tue Oct 24, 2006 6:22 pm

Post » Mon May 28, 2012 6:54 pm

The filesystem cache will expire stuff eventually if it's not used. That shouldn't affect performance that much.
If you want to test if it does, you could try tweaking your OSes http://technet.microsoft.com/en-us/library/cc785435%28WS.10%29.aspx:

Saying "fsutil behavior set memoryusage 2" in the command prompt increases the memory available for the cache.

No no what he's saying is: Show us your tesv.exe occupying full memory because its caching.

See when I watch Tesv's memory usage it climbs and falls as the scene demands and during the act of changing scenes it flushes itself down to about 1GB each time, meanwhile if its truely caching it wouldn't do that, it'd slowly grow to full the cache and then start dropping the least used contents to add more prevelant stuff. It doesn't behave that way though. You say it does though, prove it.

Btw that fsutil edit will change the ntfs pool, nothing to do with superfetch or especially nothing to do with your unproven theory that tesv caches things in system memory, nothing at all.
User avatar
Steph
 
Posts: 2996
Joined: Sun Nov 19, 2006 7:44 am

Post » Tue May 29, 2012 12:34 am

*scratches head* I'm not really sure that 'has a life' is a contraversial term in these forums so I think you're safe in using it.

So suddenly you have a life after having the idle time to [censored] around with ramdisks and most hilariously detect "performance problems" on your high end gaming rig that everybody with a life would quite obviously have.

Oh wait you're implying that we're lying when we say boot times of skyrim are faster when the whole game's contents is assured to be in ram instead of on the disk or hoping that precaching has recognized it as something to cache?

Having the game start in, say 4 seconds instead of 15 is not a significant speedup, if you're going to sit there playing the game for two hours after that without any other benefit. For this whole thing to have point, there should be benefit for, you know, actually running the game. I'm not implying you're lying. I'm implying you're a victim of wishful thinking, and a [censored] for not realizing the fact that what you're seeing on your screen might not be repeatable by other people.
I've used computers since the early eighties, and been on the Internet since the early nineties, and from what I've seen, these kinds of "performance tweaks" have a habit of popping up. People figure out a "new thing", like ramdisks, which have been around for decades, and they all swear on seeing a HEEUEEG performance benefit with very little real data to show for it. These things are the LiveStrong-bracelets of the tech world.


No, prove to us that precaching knows to put skyrim's contents into its reserves, then we'll prove to you that using a ramdisk and manually ensuring that its in memory is better.

Skyrim's precaching knows to cache the stuff it'll need next. That's the Cell Buffer's job. I'm not talking about OS level precaching. Some data will expire from the cell buffer, but it'll still stay for some time in the file system cache. Not all of it, because it's pretty damn unlikely that all of it will be needed.

And once again, burden of proof doesn't work that way. You were the one making a claim that using a RAMdisk will give significant performance benefits for the game over the current tech, so you're the one who needs to demonstrate that. Hell, if this really is such a big performance booster, maybe you should start marketing the technology to gaming studios? Now, if you just claim that you can cut off, say 10 seconds from the game's startup time, and it'll run similarly the rest of the time, I'd be willing to say that's likely. But if you've somehow noticed "less stutter" on your rig, which should be more than enough to run the game decently on it's own, I have to say I'm skeptical.
User avatar
Leonie Connor
 
Posts: 2951
Joined: Mon Mar 12, 2007 4:18 pm

Post » Mon May 28, 2012 5:42 pm

Sorry to be the bearer of bad news, but usually when something seems blindingly obvious, someone has probably already thought about it. Windows and other modern operating systems already use any unused memory as disk cache that's freed if it's needed somewhere else. Which is the reason why you often hear people complaining about "Windows eating all their memory", when they don't understand how the Operating System's memory management works. If you have over 4GB of memory, you have plenty of it to cache the files Skyrim uses most often. And that happens automatically, courtesy of the OS. Like kalniel said, stuffing all that data onto a RAMdisk will only make starting up the game slower, since you have to do disk access for data that the game might not touch at all during your gameplay session(if you mount the RAMdisk in a script when starting the game, that is.). And it's extremely unlikely that you will see any speedup during gameplay, since the game preloads and caches the data it knows it'll need. At best, you'll just end up with one more copy of the game's data in the memory. IOW, if you have enough memory to store Skyrim on a RAMdisk, you have enough memory for the operating system to cache the game files in the memory anyway. If you don't, well...

In this case, you don't end up waiting to start the game while "stuffing all that data onto a RAMdisk" - it's already done via the RAMDisk image file, which loads, as you choose, at startup or manually. It's actually very quick. So starting the game is not any slower using this method.

As for the OS memory management caching files that Skyrim uses more frequently, agreed; the OS will cache the files into memory as they are called by Skyrim for use, meaning you have some delay the first time the file is called and anytime the file is cleared from cache and recalled for use again. This is the reason for loading delays between areas and such, which is typically not a major problem, but for those of us who are really impatient ... ? This method allows the user, not the OS, to choose which files are loaded into memory, and yes, the OS will cache those very same files as they are called, and clear some, and cache others, and some may never get called during any one gaming session; so things get doubled up and it's not exactly efficient overall.

But it does provide a benefit to those who have the memory to spare, and perhaps are running into a bottleneck with the HDD on their particular rig. In my case, to use some very suspect numbers as an example, my Windows Experience Index is as follows...
  • 7.5 - Processor
  • 7.5 - Memory
  • 7.8 - Graphics
  • 7.8 - Gaming Graphics
  • 5.9 - Primary Hard Disk
  • 5.9 - Base Score (determined by lowest subscore)
So as you can see, my HDD is the bottleneck in my rig by a wide margin. Therefore, it makes sense for me to do what I can to offload operations from disk to memory where possible. Others will likely have a different situation, but those who are in a similar position might find the combination of RAMDisk and SymLinks a useful means to improve certain aspects of Skyrim gaming performance ... obviously not a cure-all by any means, but a tweak that has the potential to improve some folks' gaming experience.

Regards,

-RMWChaos
User avatar
Chris Jones
 
Posts: 2958
Joined: Wed May 09, 2007 3:11 am

Post » Mon May 28, 2012 7:18 pm

And once again, burden of proof doesn't work that way. You were the one making a claim that using a RAMdisk will give significant performance benefits for the game over the current tech, so you're the one who needs to demonstrate that. Hell, if this really is such a big performance booster, maybe you should start marketing the technology to gaming studios? Now, if you just claim that you can cut off, say 10 seconds from the game's startup time, and it'll run similarly the rest of the time, I'd be willing to say that's likely. But if you've somehow noticed "less stutter" on your rig, which should be more than enough to run the game decently on it's own, I have to say I'm skeptical.
Good see this is what I'm saying and this is what you agree is plausible, it reduces the load times of scenes. Now when it comes to the stutter perhaps this will enlighten you to why its also very plausible and I don't have to screw around with fraps just to get the idea across in a way you'll accept: I run with UGrid 11 and 144 buffered cells. Every time I move in any direction through a cell's edge there's 12 more cells loading to meet that, this is much higer then the default, way way way higher. So you can understand how I value increases in data access rates. Now, are we both agreeable that these two conditions are plausible? Can I please not have to dretch around with fraps recording the aeros desk top plus a few monitor tools and a windowed skyrim? Because yes, I've got better things to do but I would be nice if we can agree that this is realistic and how it goes.

Having the game start in, say 4 seconds instead of 15 is not a significant speedup, if you're going to sit there playing the game for two hours after that without any other benefit. For this whole thing to have point, there should be benefit for, you know, actually running the game. I'm not implying you're lying. I'm implying you're a victim of wishful thinking, and a [censored] for not realizing the fact that what you're seeing on your screen might not be repeatable by other people.
I've used computers since the early eighties, and been on the Internet since the early nineties, and from what I've seen, these kinds of "performance tweaks" have a habit of popping up. People figure out a "new thing", like ramdisks, which have been around for decades, and they all swear on seeing a HEEUEEG performance benefit with very little real data to show for it. These things are the LiveStrong-bracelets of the tech world.
I'm with you on the outlandish performance things that are too good to be truth and almost never are anywhere near what the claimer had suggested, Skyboost and its predessor for instance I was pretty skeptical about until I saw the source code and read the author's blurb about what it was really doing and it made sense, low and behold they do in fact work as advertised. This ramdisk business though is not in the same league and my claim of stutter reduction is was not meant to suggest general game play but just that above situation with the 12 cells loading every time I cross a threshold. I never suggested the FPS goes up or low FPS gets smooth, I suggested that when I move around the game doesn't stutter to a pause as those 12 cells come from raw disk & my save file into ram since both are already in there they just have to cross over the controller instead.

This is why I value the ramdisk, its a neat trick and its not for everyone but if you've got the ram, meh good times.
User avatar
Shae Munro
 
Posts: 2968
Joined: Fri Feb 23, 2007 11:32 am

Post » Mon May 28, 2012 8:57 pm

No no what he's saying is: Show us your tesv.exe occupying full memory because its caching. See when I watch Tesv's memory usage it climbs and falls as the scene demands and during the act of changing scenes it flushes itself down to about 1GB each time, meanwhile if its truely caching it wouldn't do that, it'd slowly grow to full the cache and then start dropping the least used contents to add more prevelant stuff. It doesn't behave that way though. You say it does though, prove it.

Just looking at that one process won't tell the whole truth. The TESV.EXE process only has an address space of 4GB, but the game's assets will be cached by the OS's filesystem cache, in addition to the game's internal buffers. The cache uses separate memory that doesn't show up with that process. That one shows up as "Cached" in the Task Manager.

Btw that fsutil edit will change the ntfs pool, nothing to do with superfetch or especially nothing to do with your unproven theory that tesv caches things in system memory, nothing at all.

Actually the tweak does nothing. I just noticed that and talked for a while with a buddy of mine who's a Windows-side sysadmin. I'm a UNIX person myself. The flag is apparently there for backwards compatibility with something in the distant past.

However, what exactly are you using as your filesystem, if it's not NTFS? ZFS? NFS? It seems you haven't noticed that I haven't mentioned superfetch once in this conversation. That's because superfetch has nothing to very little to do with this issue. The precaching of game assets I've been talking about is done by the game engine, after which the assets will also be in the file system cache, since they've been read from the disk. Look up Cell Buffers and Gamebryo on Google or something.
User avatar
Nadia Nad
 
Posts: 2923
Joined: Thu Aug 31, 2006 3:17 pm

Next

Return to V - Skyrim