Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > MS Windows > освобождение оперативной памяти |
Автор: Андрей Гусев 1.6.2005, 13:31 |
![]() [[email protected]]Я работаю под Windows 2000. У меня считается большая вычислительная задача. Периодически записываютя результаты на диск. Оперативная память забивается. После записи результатов на диск, память не освобождается и программа вылетает. Я пробовал использовать различные программы по освобождению оперативной памяти, но они для моего количества расчетов практически не помогают. Помогите! Неужели нет способа эффективно освобождать оперативную память в Windows? С уважением, Андрей.[/email] ![]() |
Автор: Akella 1.6.2005, 14:25 |
На чем пишешь? Это твоя программа? Нужно грамотно освобождать ресурсы после расчетов. Иначе никакие менеджеры памяти не помогут. |
Автор: Андрей Гусев 1.6.2005, 16:33 |
Пишу на Фортране. Советуешь прямо в программе после записи освобождать место? Андрей. |
Автор: Akina 1.6.2005, 17:38 |
Любые менеджеры памяти - фикция и только ухудшают состояние дел. Их алгоритм - захватить побольше кусок памяти (принудительно заставить VMM выполнить garbage collection) и потом отдать его одним куском. Однако это порождает сброс части данных в своп и тормоза. В программе надо самому руками следить за выделением и своевременным высвобождением памяти, а также искать и устранять утечки. Иначе проблемы неизбежны. |
Автор: Андрей Гусев 1.6.2005, 17:53 |
Спасибо! Буду думать над программой! ![]() |
Автор: Kolia 2.6.2005, 01:30 | ||
Истина, истина. На каждый new должен быть свой delete. А в твоем случае allocate на deallocate, если мне память не изменяет. Надо за всем следить самому и не доверять всяким сборщикам мусора. В противном случае это не программа, а помойка |
Автор: batigoal 2.6.2005, 09:37 | ||
Это смотря на чем пишешь. |
Автор: Незнайка 2.6.2005, 11:50 |
А файл подкачки? |
Автор: Akina 2.6.2005, 11:57 | ||
Ты о чем? тормоз - это медленный газ? ![]() |
Автор: Андрей Гусев 2.6.2005, 13:45 |
![]() |