我有一個程序,積累來自網絡接口的流量在800 Mb/s。這個程序是由Delphi開發的,也是在32bit平臺上(Delphi不支持64bit架構)。 我正在寫存儲器(RAM)的接收日期,過了一段時間(未知和取決於接收到的數據),將一塊接收到的數據(未知大小,取決於接收到的數據)寫入硬盤並釋放存儲器(RAM )。高速率數據流和內存不足
當我運行應用程序,一些次後,它會拋出「內存不足」例外。我應該怎麼做才能防止這種異常?
我有一個程序,積累來自網絡接口的流量在800 Mb/s。這個程序是由Delphi開發的,也是在32bit平臺上(Delphi不支持64bit架構)。 我正在寫存儲器(RAM)的接收日期,過了一段時間(未知和取決於接收到的數據),將一塊接收到的數據(未知大小,取決於接收到的數據)寫入硬盤並釋放存儲器(RAM )。高速率數據流和內存不足
當我運行應用程序,一些次後,它會拋出「內存不足」例外。我應該怎麼做才能防止這種異常?
這是一個非常高的數據速率 - 我假設它是Mbits(100 MBytes /秒)。只有最快的固態硬盤才能夠跟上,而且只有當你的編程效率達到100%。檢查連續寫入速度表:http://www.anandtech.com/storage/showdoc.aspx?i=3702&p=9
如果你可以拋出更多的RAM的問題,我建議去64位模式,並一次分配你的整個RAM緩衝區。
我想用SSD代替RAM。這是可能的和合理的嗎? – salman