gpt4 book ai didi

performance - 使用 ssd 和 mmap 改进并发文件读取

转载 作者:行者123 更新时间:2023-12-04 01:43:36 28 4
gpt4 key购买 nike

我有巨大的气象文件。太大,无法装入 ram。

我需要执行大量并发随机读取。
所以,我认为 SSD + mmap 可以提高性能。

但是并发 mmap 读取呢?他们应该如何组织?

enter image description here

最佳答案

是否存在并发原因(线程之间共享数据结构和资源的争用)为什么要在不同线程中独立打开相同的文件?如果没有,那么我看不出这样做的理由。它只会让内核工作更难一些,因为必须跟踪一堆不同的内存映射(每个线程一个),这些映射最终都映射到同一个对象,消耗更多的文件描述符(没什么大不了的,除非你有一个非常大的数字)文件),并在多次映射相同文件时消耗更多地址空间。

如果我理解在您的场景中,文件大多很少打开,阅读很多,然后很少关闭,我认为您在线程之间不会有太多争用。因此,请为所有线程全局打开文件。

无论您是否在线程之间争用打开文件的内务处理,有一个最重要的原因是支持每个进程只映射每个文件一次,那就是如果您的地址备用只有 32 位。如果您处于 32 位模式,那么如果您的文件很大并且您想要映射其中的重要部分,那么地址空间是非常有限的资源。在这种情况下,您肯定需要通过不要在两个不同的线程中浪费地映射同一文件两次来节省地址空间。

关于performance - 使用 ssd 和 mmap 改进并发文件读取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14685115/

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