В настоящее время я использую небольшой Java-класс для научных вычислений на графиках (который внутренне создает множество огромных коллекций) из Eclipse на MacOSX Snow Leopard. У меня есть Macbook с 2 ГБ оперативной памяти, и для успешного запуска приложения без ошибки OutOfMemory мне нужно запустить его из eclipse с -Xmx1200m (я знаю, что это очень много).
На выполнение всех вычислений, которые мне нужно выполнить, уходит около 500 секунд, и он также использует всю память, которую я ему предоставил (я контролировал ее с помощью монитора прогресса macosx, а для Real Mem это 1,2 ГБ)
После того, как это приложение выполнено, мой MacOSX практически не работает. Даже если я закрою Затмение, все станет вялым и медленным. Я также замечаю, что все, что я делаю потом (даже после закрытия Eclipse), например, Навигация по поиску очень медленная. Требуются годы, чтобы сделать некоторые папки или изменить каталоги. Иногда я перезагружаю систему, чтобы снова работать эффективно.
Я бы хотел понять, что происходит в фоновом режиме, когда это происходит?
У меня сложилось впечатление, что когда java-класс / приложение завершит работу, сборщик мусора по крайней мере в конце очистит все, и я ожидал, что другие программы снова смогут использовать эту память. Но это «ощущается» как утечка памяти, которая затрагивает всю систему, даже если приложение Java больше не работает.
Буду признателен за любые подсказки или прочтения в этом направлении.