我使用boost::iostreams::mapped_file_source
創建一個內存映射文件。超過1024.當我創建大約1024個內存映射文件時,我驚訝地發現我的程序會拋出一個異常,指出打開的文件過多。經過一番研究後,我發現Ubuntu使用每個進程1024的最大文件大小(從ulimit -n
找到)。不幸的是,我需要同時打開所有文件。有沒有人知道解決這個問題的方法?有沒有可能使文件不能達到極限?我正在考慮將它們合併成一個文件;不過,如果可能的話,我想避免這種表現。我也不想通過改變這個值來修改操作系統。任何正確的方向點非常感謝!內存映射文件和最大文件大小
回答
爲什麼你需要許多映射文件打開?這似乎非常低效。也許你可以映射(區域)一個大文件?
問:我想把它們合併成一個文件;然而,我想避免,如果可能由於性能
這是......廢話。表現可能基本上只會增加。要牢記
一個特別的事情是你的「大映射文件」內的不同區域對準你的內存頁/磁盤塊大小的倍數。 4k應該是這個粗略對齊的好起點。
您認爲這會提高性能的原因是什麼? – joshu
一件事,你會減少開銷上(很明顯,因爲你已經跑出特定資源的你的配置下......)。另一方面,您顯然不需要隨時打開/重新打開映射(您可以保持打開狀態)。常見的誤解是「這會佔用太多內存」,但虛擬內存根本就不能這樣工作。 – sehe
(在那最後一個話題:http://stackoverflow.com/questions/24249763/release-memory-mapped-memory/24253385,也可能是有趣的:http://stackoverflow.com/questions/24352943/write-only-memory -mapping式升壓/ 24354199 S = 55 |?0.0000#24354199) – sehe
- 1. 最大內存映射分配大小?
- 2. 內存映射文件有多大?
- 3. php zip壓縮文件內存,內存和最大文件大小
- 4. 使用內存映射文件讀取大文件
- 5. Linux內存映射文件保留大量物理內存
- 6. QT中的非常大的QImage和內存映射文件
- 7. 內存映射文件如何處理大於內存的文件?
- 8. Yii2最大文件大小
- 9. RadAsyncUpload最大文件大小
- 10. Java最大文件大小
- 11. 最大文件大小PyCharm
- 12. Git中的最大文件大小和最大存儲庫大小?
- 13. 內存映射文件C++
- 14. 內存映射文件.NET
- 15. Windows內存映射文件
- 16. 內存映射文件
- 17. WiredTiger,GridFS和Mongodb上傳文件和最大文件大小
- 18. 文件系統 - 內存映射文件
- 19. 如何映射Artifactory中最大的文件\文件夾
- 20. Windows如何映射一個文件,其大小大於4GB?
- 21. Java內存映射文件和交換
- 22. FILE_FLAG_DELETE_ON_CLOSE和內存映射文件
- 23. Java - 內存映射文件和刷新
- 24. Cassandra SSTable和內存映射文件
- 25. 內存映射文件 - 映射結構而不是文件?
- 26. wordpress上傳文件和php最大文件大小
- 27. 將幾個大文件映射到內存中
- 28. Linux上內存映射文件的巨大頁面
- 29. 寫入內存映射文件比非內存映射文件慢
- 30. java.nio的內存映射的Java文件進行讀取大文件
您可能想檢查此問題http://unix.stackexchange.com/questions/75996/modify-ulimit-open-files-of-a-specific-process – Oleg