This discussion, and you guys, are amazing. I am learning so much! On Wed, Mar 25, 2015 at 8:56 PM, Keith Medcalf <kmedcalf at dessus.com> wrote:
> > 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. > > > > > _______________________________________________ > sqlite-users mailing list > sqlite-users at mailinglists.sqlite.org > http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users >