0

我正在做一个 C++ 项目,我需要快速访问字节值。我已经对内存映射文件、数据的智能排序进行了很多实验,以便只需要读取很少的内容等。我只是无法让它以足够快的速度可靠地工作。在某些情况下,文件中的磁盘访问和查找似乎是瓶颈。

我现在正在考虑将整个字节数据(无符号字符)加载到 RAM 中。但是,它是 39567865 个无符号字符。它适用于我的计算机,但我希望它适用于所有计算机。

谁能告诉我我的方法是否疯狂?换句话说:普通软件(不是在超级计算机上运行的某种科学方法)将如此大量的数据加载到 RAM 中以使其快速访问是否有效?

4

2 回答 2

2

字符是 1 字节宽,所以

39567865 / 1024 = 38,640 kb

这大约是 37.7 Mb。你会没事的,除非你打算在内存很少的嵌入式机器上工作。供参考:您正在使用的机器很可能具有 4-8 Gb 的 RAM,您的内存消耗约为其中的 0.4%-0.8%。

于 2013-06-30T13:12:31.920 回答
1

在当今通常的 Win32(或 win64)机器上,将 100M 文件加载到内存中是完全公平的,甚至优于其他机器。

一般的答案取决于您设置的系统要求,以及程序的通常使用模式是什么,如果它在几秒钟内启动了几十份,可能会考虑其他方式。

于 2013-06-30T13:17:19.717 回答