1
A
回答
4
相关问题
- 1. 如何刷新Erlang中的io缓冲区?
- 2. C#或.NET刷新键盘缓冲区
- 3. 刷新Vim缓冲区
- 4. 期待刷新缓冲区
- 5. emacs ediff刷新缓冲区
- 6. C - 在强制终止时刷新文件缓冲区
- 7. C++缓冲流IO
- 8. Java IO缓冲区导航
- 9. 文件IO和缓冲区
- 10. 从刷新和未刷新缓冲区读取
- 11. 当我在Python中刷新串行缓冲区时,它停止读取
- 12. PHP刷新停止在IIS7.5中冲洗
- 13. 如何刷新NSLog的缓冲区?
- 14. 缓冲IO与非缓冲IO
- 15. php缓冲区不会停止后ob_end_clean
- 16. zlib在缓冲区扩展上停止
- 17. HTML5音频/视频停止缓冲区
- 18. 如何刷新Rx缓冲区onComplete?
- 19. Windows不会刷新COM缓冲区
- 20. 如何刷新System.err缓冲区?
- 21. 自动刷新ENSIME错误缓冲区
- 22. 读取/ proc时刷新流缓冲区
- 23. 如何使rsyslogd刷新其缓冲区
- 24. Tomcat没有刷新响应缓冲区
- 25. 防止冲洗缓冲区
- 26. 从缓冲区读取C
- 27. 从缓冲区取值C++
- 28. Python的打印函数在调用缓冲区时刷新缓冲区?
- 29. C++中的位缓冲区
- 30. Vim - 每次关闭缓冲区时停止缓冲区编号自动递增
您是否真的确定是造成问题的潮水?如果你正在向一个文件写入大量数据(如果你使用iostream,你已经删除了'endl'而不是'\ n''),那么硬盘很可能是限制因素。如果受到硬盘驱动器实际速度的限制,刷新缓冲区将无济于事。 –
这是一个有效的观点。在这种情况下,数据不会超过几兆字节,但对于其他可能导致问题的情况。有没有办法在C中要求操作系统分配RAM而不是页面文件? –
读取/写入文件的最快方式之一是使用“内存映射文件”。这意味着您使用'mmap'(在Linux/MacOS /其他Unix)或'MapViewOfFile'(Windows),并写入内存而不是文件。我仍然怀疑刷新并不是真正的问题,但内存映射文件使用更好的接口将数据写入文件,因为它不需要对数据进行双重缓冲 - 它可以直接从内存页面写入它分配给该文件中的该位置。 –