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,而不用交换,然后填充它。 –