gpt4 book ai didi

c++ - 内存交换或文件写入/读取

转载 作者:行者123 更新时间:2023-11-28 04:29:25 25 4
gpt4 key购买 nike

我的问题很简单(我猜)!
如果出于任何原因我有大量内存要分配(假设我想在内存中加载一个非常大的点云并对其应用过滤器以减少它然后再次保存它),但我的电脑没有有足够的内存来完全打开它,因此它将使用内存交换。

什么是更快的方法:
- 使用内存交换,让计算机做它的事情。
- 使用基于文件的八叉树(我创建的文件将包含我的点)。例如,我读取 X 点,并在相应的文件中重写它们,然后重新读取 X 点,直到我的点大文件是完整阅读。然后我在每个八叉树文件叶上应用过滤器,然后在大文件中一一重写它们。

有什么办法可以回答这个问题吗?

非常感谢!

最佳答案

作为第三种选择,请考虑 memory mapped file IO .它允许您访问一个文件,就好像它已完全加载到(虚拟)内存中一样,但允许操作系统加载和卸载它认为合适的部分文件,应用所有智能缓存策略(LRU、预取、平衡缓存与缓存)。寻呼,...)它有;您可能希望确保将文件映射为只读,以便操作系统知道它不必处理写回脏页。

某种索引结构(八叉树或其他)是否有益在很大程度上取决于您将执行的查询类型以及文件系统的 IO 性能。

关于c++ - 内存交换或文件写入/读取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53317636/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com