0

我有一個程序,積累來自網絡接口的流量在800 Mb/s。這個程序是由Delphi開發的,也是在32bit平臺上(Delphi不支持64bit架構)。 我正在寫存儲器(RAM)的接收日期,過了一段時間(未知和取決於接收到的數據),將一塊接收到的數據(未知大小,取決於接收到的數據)寫入硬盤並釋放存儲器(RAM )。高速率數據流和內存不足

當我運行應用程序,一些次後,它會拋出「內存不足」例外。我應該怎麼做才能防止這種異常?

+0

我想用SSD代替RAM。這是可能的和合理的嗎? – salman

回答

0

這是一個非常高的數據速率 - 我假設它是Mbits(100 MBytes /秒)。只有最快的固態硬盤才能夠跟上,而且只有當你的編程效率達到100%。檢查連續寫入速度表:http://www.anandtech.com/storage/showdoc.aspx?i=3702&p=9

如果你可以拋出更多的RAM的問題,我建議去64位模式,並一次分配你的整個RAM緩衝區。

+0

謝謝。但正如我所提到的,我的程序是由Delphi 2009開發的,Delphi不支持64位平臺。 此外,速度與連續讀取和寫入有關,而我需要隨機訪問硬盤。 – salman

+0

這個頁面是隨機訪問速度: http://www.anandtech.com/storage/showdoc.aspx?i=3702&p=10 – salman

+0

@salman:如果你需要隨機訪問,你可以看到自己最快的可用磁盤只有你需要的速度的一半。我的建議仍然存在,即使是32位 - 也可以分配儘可能多的RAM,而不用交換,然後填充它。 –