On Wednesday, 25 March, 2015 10:42, Simon Slavin <slavins at bigfraud.org> said:
>On 25 Mar 2015, at 1:47pm, Rob van der Stel <RvanderStel at >benelux.tokheim.com> wrote: >> One open issue for me remains however. Can I assume that the >> FlushFileBuffers API that SQLite uses still causes cache to be >> written to disk even though the 'automatic write-cache flushing' >> of Windows is turned off ? This depends on the device itself. Basically, one setting enables use of the >I can't answer your question because Windows isn't my field of expertise, >but you could read the section 'Write-Cache Buffer Flushing' in > http://www.samsung.com/global/business/semiconductor/minisite/SSD/us/html/whitepaper/whitepaper12.html Well, this is chock full of errors: Virtual Memory: In order to address any potential lack of memory capacity, the Windows OS automatically generates a block of virtual memory (stored in a hidden pagefile.sys file) on the "C:" drive. In the past, before PC Memory (DRAM) was available in high volume, PCs needed to utilize some HDD space to address any memory shortcomings. The Windows OS automatically reserves storage space for Virtual Memory equal to 100% of physical DRAM capacity (e.g. Windows will reserve 4GB of Virtual Memory for a system with 4GB of DRAM or 32GB of capacity for systems using a 64-bit OS and featuring 32GB of DRAM). is completely bogus. A machine with 4GB of RAM and a 4GB swapfile has 8GB of total virtual memory. If you change the 4GB of RAM to 8GB of RAM and set no swap then you will have 8GB of virtual memory. In both cases you have the same amount of virtual memory available. Turning off the swap file reduces the number of levels of hardware lookasides and management overhead that need to be done to perform V:R mapping increasing performance significantly. In addition, if your pagefile size is fixed, then the number of pagetable entries is fixed and the amount of management overhead of dynamic VM size is eliminated resulting in performance about half-way between operating in "magical" mode (the default, where the VM size is not fixed) and the optimal (where there is no swapfile at all). This applies mutatis mutandis no matter what size of virtual ram you are talking about. If you have 256 GB of RAM then there is no way that you need to have a 256 GB swapfile (or any swapfile at all). These myths started in the mid-80's when the price of RAM chips went over $100 per 256 kilobit and you needed to be, shall we say, rather well-to-do in order to have anything beyond the bare necessity of RAM. In the modern era, you should simply buy sufficient RAM and do away with the archaic concept of a swapfile. Prefetch/Superfetch: Windows stores common device drivers and frequently used applications in main memory (DRAM) in order to improve performance. By disabling these features, the OS can reduce system memory (DRAM) use. Furthermore, since SSDs have very fast data access times, these features are no longer really necessary. Thus, they are disabled for all profiles. is also somewhat misleading. Superfetch moves commonly used stuff from "spinning disk" to Flash Storage based on the premise that "spinning disk" has crappy random access characteristics and Flash (even USB) is better in this regard, and that spinning disk has better sequential performance compared to that same Flash (which it does). If the OS detects that the system volume is located on a volume with decent random access performace characteristics and decent sequential performance, then it will disable Superfetch for you all by itself, and ignore your attempts to re-enable it. Prefetch is somewhat different. Prefetch is a list of dependancy and relocation data to allow modules to be loaded without having the loader do all sorts of extra work resolving linkage references and finding and loading dependent modules, in addition to pre-loading and relocating dependencies before they are requested. It provides an advantage only if you have a really really really old and very very very slow computer with a really super slow I/O system. The advantage declines quite rapidly and goes negative long before it become negligible again -- but on any modern computing equipment it does nothing of any significance (nor hinderance). Be careful of things that claim they "magically optimize" for you. Often they don't. >Also, I like this post: >http://blogs.msdn.com/b/oldnewthing/archive/2013/04/16/10411267.aspx This guy is a Balmerite and should be shot on site (or at least put out to pasture like Ballmer where he can do no more harm). Maybe you want to hide such things from certain classes of people. Perhaps when Windows is first installed it should ask you for your I.Q. and configure itself appropriately by hiding dangerous things from the people who ought not know about them (and relegating them to Tile World and useless Windows 10 Start Menu), but configuring Windows to act like a "computer" for the rest of us that do not need such protection. --- Theory is when you know everything but nothing works. Practice is when everything works but no one knows why. Sometimes theory and practice are combined: nothing works and no one knows why.