Высокая скорость потока данных и недостаток памяти - PullRequest
0 голосов
/ 25 января 2010

У меня есть программа, которая накапливает трафик с сетевого интерфейса в 800 Мбит / с . Эта программа разработана Delphi также на 32-битной платформе ( Delphi не поддерживает 64-битную архитектуру ). Я записываю полученную дату в память (RAM) и через некоторое время (неизвестно и зависит от полученных данных) записываю блок полученных данных (неизвестный размер и зависит от полученных данных) на жесткий диск и освобождаю память (RAM) .

Когда я запускаю приложение, через некоторое время оно выдает «Out Of Memory» исключение. Что я должен сделать, чтобы предотвратить это исключение?

1 Ответ

0 голосов
/ 26 января 2010

Это очень высокая скорость передачи данных - я предполагаю, что это Мбит (100 МБ / с). Только самые быстрые твердотельные накопители смогут поддерживать скорость, и это только в том случае, если ваше программирование на 100% эффективно. Проверьте таблицу последовательных скоростей записи: http://www.anandtech.com/storage/showdoc.aspx?i=3702&p=9

Если вы можете использовать больше ОЗУ для решения проблемы, я бы предложил перейти в 64-битный режим и выделить весь буфер ОЗУ сразу.

...