Я запускаю Java-приложение, которое должно обрабатывать пакет файлов через какой-то модуль принятия решений. Мне нужно обработать партию примерно за 50 часов. Проблема, с которой я сталкиваюсь, заключается в том, что процесс работает нормально около часа, а затем начинает простаивать. Итак, я сделал это - я запускаю JVM в течение одного часа, а затем выключаю его, перезапускаю JVM через 30 минут, но все же по какой-то причине второй запуск занимает почти 4-5 часов. делать то, что делает первый прогон за 1 час. Любая помощь или идеи будут с благодарностью.
Я использую это на 64-битном сервере Windows R2, 2 четырехъядерных процессора Intel (2,53 ГГц), 24 ГБ ОЗУ. Версия Java - 1.6.0_22 (64-разрядная версия), памяти, выделенной для приложения, - куча (16 ГБ) и PermGen (2 ГБ).
внешний модуль также работает на jvm, и я тоже выключаю его, но у меня такое ощущение, что он удерживает память даже после выключения. до того, как я начну использовать JVM RAM, 1 ГБ, после того, как я закончу его, он, как правило, остается около 3 ГБ. Могу ли я попросить JAVA принудительно освободить эту память?