Возможно ли очистить / освободить ресурсы для перезапуска некоторой обработки без перезапуска приложения? - PullRequest
1 голос
/ 23 июня 2011

Я делаю веб-сканер, который работает автоматически.В определенный момент я хочу остановить его, изменить некоторые настройки и возобновить сканирование.

Я беспокоюсь о ресурсах.Я могу освободить объекты, которые я создал, но я не знаю об объектах, которые использует Java.Выполняя некоторую отладку, я вижу, что классов гораздо больше, чем в начале приложения.

Есть какой-то метод / способ / метод для их освобождения?Мне нужно беспокоиться об этом?

Ответы [ 2 ]

0 голосов
/ 23 июня 2011

Я думаю, вам нужно лучше понять, какие объекты создаются, а какие остаются в памяти. Инструмент профилировщика может помочь вам - многие из них позволяют вам сделать снимок памяти, выполнить некоторые операции, а затем сравнить текущее состояние со снимком. Это подчеркивает возможные утечки памяти.

Кроме того, убедитесь, что вы явно запустили сборщик мусора, прежде чем даже смотреть на состояние памяти - в противном случае вы можете увидеть множество объектов, которые на самом деле не ссылаются и будут собраны следующим GC.

Я бы не стал беспокоиться о ресурсах, выделенных JVM. Пока вы освобождаете все ресурсы, которые вы выделяете, у вас все будет хорошо - и профилировщик поможет вам убедиться, что вы действительно освободите их все.

0 голосов
/ 23 июня 2011

Есть какой-то метод / способ / метод для их освобождения?

Теоретически вы можете сериализовать ключевые структуры данных приложения, перезапустить и перезагрузить сериализованные структуры данных.

На практике приложение должно быть написано для этого. Возможно, вам придется перестроить существующее (не перезагружаемое) приложение, чтобы сделать это возможным. Таким образом, лучшей идеей было бы сохранить важное состояние приложения в таблицах базы данных, чтобы вы могли останавливаться и перезапускаться по желанию ... и пережить сбой приложения или сбой питания.

Мне нужно беспокоиться об этом?

Это зависит от вас / зависит от ваших требований. Но я бы не стал реализовывать приложение таким образом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...