Я создаю веб-приложение на Java, используя Play! Фреймворк . Я размещаю его на playapps.net . Я долго ломал голову над предоставленными графиками потребления памяти. Вот пример:
График основан на периоде постоянной, но номинальной активности. Я не сделал ничего, чтобы вызвать спад в памяти, поэтому я предполагаю, что это произошло из-за того, что сборщик мусора работал, когда он почти достиг своего допустимого потребления памяти.
Мои вопросы:
System.gc ()
, начиная от нейтрального («это всего лишь запрос на запуск GC, поэтому JVM может просто игнорировать вас») до полностью против («Код, основанный на System.gc ()
, в корне не работает»). Или я здесь не на базе, и мне следует искать дефекты в моем собственном коде, которые вызывают такое поведение и периодическую потерю производительности? ОБНОВЛЕНИЕ
Я открыл обсуждение на PlayApps.net, указав на этот вопрос и упомянув здесь некоторые моменты; в частности, комментарий @Affe относительно консервативных настроек для полного GC и комментарий @G_H о настройках начального и максимального размера кучи.
Вот ссылка на обсуждение , хотя вам, к сожалению, нужна учетная запись playapps для просмотра.
Я сообщу здесь отзыв, когда я его получу; Большое спасибо всем за ваши ответы, я уже многому от них научился!
Разрешение
Поддержка Playapps, которая все еще хороша, не дала мне много предложений, их единственная мысль заключалась в том, что если я активно использовал кеш, это может поддерживать объекты в живых дольше, чем необходимо, но это не так. Я все еще выучил тонну (у-у-у!), И я дал @Ryan Amos зеленый флажок, поскольку я принял его предложение звонить System.gc ()
каждые полдня, что на данный момент работает нормально.