我有一个程序,积累来自网络接口的流量在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