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.




Reply via email to