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),並寫入內存而不是文件。我仍然懷疑刷新並不是真正的問題,但內存映射文件使用更好的接口將數據寫入文件,因爲它不需要對數據進行雙重緩衝 - 它可以直接從內存頁面寫入它分配給該文件中的該位置。 –