什么是Windows的CreateFile的默认缓冲区大小?
-
22-08-2019 - |
题
当CreateFile函数被不带标志FILE_FLAG_NO_BUFFERING, 什么是操作系统的内缓冲器?
的大小如果我的缓冲器大小比视窗的内部缓冲器时,可予 充分利用磁盘的吞吐量?
解决方案
有可能变化从视窗版本的Windows版本,以及根据空闲RAM的量。而不是依赖于任何具体的,你应该简单地做读取,并与您的应用程序正常工作缓冲区的大小写。
其他提示
这取决于你有多少RAM,机器的配置方式。服务器通常被配置为特权系统缓存。你可以通过改变以下注册表项更改
[HKEY_LOCAL_MACHINE \System \CurrentControlSet \Control \Session Manager \Memory Management] LargeSystemCache
在 SetSystemFileCacheSize功能可用于改变高速缓存大小。不过,从我个人理解,设定工作集合大小比硬限制更多的是暗示的操作系统。
在关于你的第二个问题,我不太明白你的意思。我看不出你的缓冲区的大小会影响产量,但我敢肯定有人会纠正我,如果我错了。
如果您正在使用无缓冲,真的不是为我一个缓冲器/ O比你给读/写一个其他。 (这被除外的压缩文件,这是蜡的不同的球。)
在系统高速缓存在这种情况下被忽略,这就是为什么你需要(见的 MSDN )要小心调整和您的I / O的大小。
不隶属于 StackOverflow