Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > MS Windows > Еще раз об оперативной памяти


Автор: Oceanolog 3.6.2005, 13:52
smile У меня система - Windows 2000, мозгов 2 Гб. Запускаю огромную расчетную задачу (3-х мерную гидродинамическую модель), которая периодически выдает результаты на жесткий диск. При счете размер свободной оперативной памяти не меняется ( т.к. программа изначально себе взяла столько, сколько надо), при выдаче результатов на диск свободная оперативная память начинает уменьшается. Затем программа считает дальше и уровень свободной памяти опять постоянен, хотя и значительно ниже чем до записи результатов. Затем результаты опять пишутся на диск и память уменьшается, ... , потом счет,... В результате программа вылетает из-за нехватки оперативной памяти. С самой программой все в порядке (т.е. массивы перезаписываются, место экономится), проблема в Windows. Те, кто считают такие задачи под Linux с этой проблемой не сталкиваются. Что делать? Есть у кого-нибудь идея как чистить память после записи на диск? smile

Автор: Akina 3.6.2005, 14:10
1) Не надо на нас кричать. Поправь постинг, сделай нормальный человеческий шрифт.
2) Включи мониторинг потребления памяти по процессам, потокам, модулям, смотри на что расходуется дополнительная память и почему не отпускается. Родные тулзы этого не умеют - используй сторонние. Начни с ProcessExplorer Руссиновича, потом дебаггеры-профайлеры...
Добавлено @ 14:12
У меня в одной программе как-то была именно такая ерунда... долго искал откуда ноги растут - вроде все чиститься должно по коду... ляп был самый тривиальный - запись выполнялась асинхронно, а треды давить сами себя не хотели...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)