- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
据我所知,然后使用 POSIX O_DIRECT
与 open()
阻止设备文件的工作方式与组合 FILE_FLAG_WRITE_THROUGH
的工作方式相同和 FILE_FLAG_NO_BUFFERING
与 CreateFile()
在 Windows 上 - 这是我正确假设的吗?
打开:
O_DIRECT Try to minimize cache effects of the I/O to and from this file. In general this will degrade performance, but it is useful in special situations, such as when applications do their own caching. File I/O is done directly to/from user space buffers.
If FILE_FLAG_WRITE_THROUGH is used but FILE_FLAG_NO_BUFFERING is not also specified, so that system caching is in effect, then the data is written to the system cache but is flushed to disk without delay. If FILE_FLAG_WRITE_THROUGH and FILE_FLAG_NO_BUFFERING are both specified, so that system caching is not in effect, then the data is immediately flushed to disk without going through the Windows system cache. The operating system also requests a write-through of the hard disk's local hardware cache to persistent media.
最佳答案
是的,在 Windows 系统中将这两个标志用作 O_DIRECT
会产生非常相似的效果。在 POSIX 系统上。由于这是两个不同的操作系统,您可以预期没有完全匹配。
但是,除非您试图确切地了解文件系统是如何工作的,否则您会从这两个选项中得到“不要缓冲数据,并尽快将其直接写入磁盘”。
关于file - POSIX O_DIRECT 与 Windows FILE_FLAG_WRITE_THROUGH & FILE_FLAG_NO_BUFFERING,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15971746/
正如标题所说,我正在编写一个网络程序,我在其中使用 CreateFile 打开网络驱动程序的句柄,并且我一直在试验 NO_BUFFERING 标志。 大多数文档甚至都不会提及将其与通信设备一起使用,而
最近在 MSDN 中注意到 FILE_FLAG_NO_BUFFERING 标志的详细描述,并阅读了几个关于 Windows 中无缓冲 I/O 的 Google 搜索结果。 http://msdn.mi
我正在使用VB6和Win32 API将数据写入文件,此功能用于导出数据,因此磁盘写入性能是我考虑的关键因素。因此,在调用 CreateFile 打开文件时,我使用 FILE_FLAG_NO_BUFFE
我正在尝试测量 FILE_FLAG_WRITE_THROUGH 和 FILE_FLAG_NO_BUFFERING 对文件写入序列的影响,如 another question 中的请求。但我发现我无法写
我正在使用 Windows ReadFile 函数按顺序读取一个 4GB 的文件,使用 FILE_FLAG_NO_BUFFERING。我使用 64K 的缓冲区,一切正常,但问题是我的数据在当前缓冲区的
我正在 try catch 子进程的输出 (stdout/stderr),特别是如果它异常退出,我可能会得到一些有用的错误输出。 我创建了一个输出文件,并在 STARTF_USESTDHANDLES
考虑这个程序: #include #include int main(int argc, char** argv) { if (argc != 2) return 1; HANDL
一些背景知识:我一直在尝试在对大文件进行 IO 时使用 FILE_FLAG_NO_BUFFERING 标志。我们正在尝试减少缓存管理器的负载,希望通过后台 IO 减少我们的应用程序对用户机器的影响。性
我在使用带有重叠 I/O 的标志 FILE_FLAG_NO_BUFFERING 时观察到一个奇怪的行为。我调用了一系列 ReadFile() 函数调用,稍后使用 GetOverlappedResult
我正在尝试对 NTFS 的文件读取时间(顺序访问)进行基准测试。我的代码获取开始时间,执行大小等于 4096 字节(系统上 NTFS 的簇大小)的读取并记录结束时间。然后存储两个时间之间的差异,并重复
据我所知,然后使用 POSIX O_DIRECT与 open()阻止设备文件的工作方式与组合 FILE_FLAG_WRITE_THROUGH 的工作方式相同和 FILE_FLAG_NO_BUFFERI
大家,我每秒有很多文件写入磁盘,我想禁用磁盘缓存以提高性能,我谷歌搜索找到解决方案:win32 CreateFile 方法与 FILE_FLAG_NO_BUFFERING 和 How to empty
大家,我每秒有很多文件写入磁盘,我想禁用磁盘缓存以提高性能,我谷歌搜索找到解决方案:win32 CreateFile 方法与 FILE_FLAG_NO_BUFFERING 和 How to empty
我是一名优秀的程序员,十分优秀!