2013-06-30 52 views
0

我正在C++項目上工作,我需要快速訪問字節值。 我已經試驗了很多內存映射文件,數據的智能排序,因此只有很少的必須被讀取,等等。我只是不能讓它工作得足夠快,可靠。總是有磁盤訪問和查找文件似乎是瓶頸的情況。加載39567865無符號字符到RAM中:有效的方法?

我現在想着把整個字節數據(無符號字符)加載到RAM中。 但是,它是39567865無符號字符。它適用於我的電腦,但我希望它可以在所有電腦上工作。

有人可以告訴我,如果我的方法是瘋了嗎?換句話說:對於一個通用軟件(不是在超級計算機上運行的某種科學方法),將這些數據加載到RAM中以使其快速訪問它是有效的。

+1

這是〜37.7 Mb,我不認爲今天有個電腦不能在RAM上存儲那麼多的內存:D –

回答

2

字符數是1個字節寬,所以

39567865/1024 = 38,640 kb 

這是一個關於37.7兆。除非你打算在內存非常小的嵌入式機器上工作,否則你會好起來的。供參考:您正在使用的機器很可能具有4-8 Gb的RAM,您的內存消耗約爲0.4%-0.8%。

+0

非常感謝! – tmighty

1

在今天通常的Win32(或win64)機器上加載一個100M文件到內存中是完全公平的,甚至是首選替代方案。

一般的答案取決於您設置的系統要求,以及程序的常用模式,如果在幾秒鐘內以幾十個副本啓動,可能會考慮其他方式。

+0

好點,謝謝! – tmighty

相關問題