0

네트워크 인터페이스에서 트래픽을 누적하는 프로그램이 800 Mb/s입니다. 이 프로그램은 Delphi에서 32 비트 플랫폼 ()으로 개발되었으며 Delphi는 64 비트 아키텍처을 지원하지 않습니다. 받은 날짜가 알 수없고 수신 된 데이터에 달려있는 경우 메모리 (RAM)에받은 날짜를 쓰고, 알 수없는 크기 (수신 된 데이터에 따라 다름)의 블록을 하드 디스크에 쓰고 메모리 (RAM).고속 데이터 스트림 및 메모리 부족

일부 응용 프로그램을 실행하면 "메모리 부족" 예외가 발생합니다. 이 예외를 방지하려면 어떻게해야합니까?

+0

RAM 대신 SSD를 사용하려고 생각하고 있습니다. 그것은 가능하고 이성적입니까? – salman

답변

0

데이터 속도가 매우 빠릅니다. Mbits (100MB/초)라고 가정합니다. 가장 빠른 SSD 만 유지할 수 있으며 프로그래밍이 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을 할당 한 다음 채 웁니다. –