0

我正在使用 Ubuntu 32 位。- 我的应用程序需要将传入的数据存储在 RAM 中(因为我需要对传入的数据进行大量搜索并计算一些东西)。- 我需要将数据保存 X 秒 => 所以我需要分配 12GB 的内存。(客户要求) - 我使用的是 Ubuntu 32 位(并且不想使用 Ubuntu 64 位) - 所以我使用 Ram Disk 来保存传入的数据并对其进行搜索。(所以我可以在 32 位系统上使用 12GB 的内存)

当我使用 2GB 分配的内存(而不是 12GB)测试应用程序时,我发现使用 RAM 时的 CPU 性能比我刚刚将数据写入数据库时​​使用 RAM DISK 时更好(15% VS 17% CPU 使用率)但是当我测试查询(如果我正在使用 RAM 磁盘,则读取大量数据/或文件)时,我看到了巨大的不同(20% 与 80% 的 CPU 使用率)。

我不明白为什么会有很大的差异?RAM 和 RAM DISK 都在 RAM 上工作?不 ?我能做些什么来获得更好的性能吗?

4

1 回答 1

2

关于为什么 RAM 磁盘较慢,我可以想到两个原因。

  1. 使用 RAMDisk 我们可能会使用 RAM 作为文件介质,但我们仍然需要使用文件系统的开销。这涉及使用其他形式的间接或复制访问数据的系统调用。直接访问内存就是这样。

  2. 内存访问往往很快,因为我们经常可以在处理器缓存中找到我们正在寻找的东西。这使我们不必直接从较慢的 RAM 中读取数据。如果没有其他原因,使用 RAMDisk 可能无法在相同程度上利用处理器缓存,它需要系统调用。

于 2014-06-02T11:19:44.140 回答