|
|
1
2
我认为这可能是由于这个问题,在msdn的页面上描述
一般来说,
我认为
从实施
|
|
|
2
2
传统上,C运行时库函数缓冲数据,只触发写操作(因此需要像
从您的测量中可以看到,缓冲的I/O往往更有效… |
|
3
2
我可能疯了,但写一个替代品不是更容易吗?
至少你不必担心重新实现
|
|
4
1
我还是有点不清楚问题是什么。首先讨论管理临时文件的生存期,然后跳到包装整个文件I/O接口。您是否在询问如何管理一个临时文件,而不需要包装所有文件I/O的性能惩罚?或者您对CRT函数如何比它们构建在上面的winapi函数更快感兴趣? 在C运行时函数和winapi函数之间进行的一些比较是苹果和橙子的种类。 C运行时函数缓冲库内存中的I/O。操作系统中还有另一层缓冲(和缓存)。
未对齐的写入很昂贵。操作系统缓冲区使未对齐的写入成为可能,但它们并不能真正加速进程。库缓冲区可以在将数据推送到操作系统之前接受多次写入,从而有效地减少了对磁盘的未对齐写入次数。 库例程也有可能(尽管这只是猜测)利用磁盘的重叠(异步)I/O,直接到WinAPI的实现都是同步的。 |
|
|
user23819755 · 从文件加载的数据未按正确顺序返回 2 年前 |
|
|
Grekys · C数组元素全部变为相同值 2 年前 |
|
|
Deba · 为什么在cin语句中打印空格时,第0个字符没有打印出来? 2 年前 |
|
|
catodd · C-试图将整数和结构数组存储到二进制文件中 2 年前 |
|
|
heapyams · Java可执行文件无法读取资源文件夹[重复] 2 年前 |
|
|
Community wiki · 在文件中插入值 2 年前 |