Какие настройки GC вы бы предложили для случая, когда буквально все объекты умирают очень молодыми? У меня 8 кучи Gb, по умолчанию 1.495 Gb используется для Eden и 191 Mb для каждого места для Survivor. Я вижу, что Tenured никогда не растет, он всегда остается на 0,01% занят. Но каждые 2-3 минуты у меня есть коллекция Eden. Отказ от неиспользованного пространства в Tenured не имеет смысла (или делает это?)? Какое у вас было бы предложение?java GC, когда все объекты умирают молодым
ответ
Это не опасно. Пока куча удобно вписывается в основную память, у вас не будет проблем. Я также предлагаю вам использовать сжатые oops, где это возможно (сохраняя кучу < 32 ГБ) У меня часто есть Eden из 24 GB, так что если я создаю 1 ГБ, если мусор в час я получаю одну небольшую коллекцию в день. (На самом деле я планирую полную коллекцию в известное время каждый день)
С одной стороны, вы должны серьезно рассмотреть использование Java 8, поскольку JVM имеет эффективный анализ утечки. Это означает, что очень короткие объекты помещаются в стек и вообще не используют кучу.
Следует помнить, что стоимость сбора Эдена в основном пропорциональна количеству и размеру сохраненных объектов. Имея Eden, где вы почти ничего не сохраняете, 8-гигабайтный eden занял в два раза больше, чем 8 МБ eden для сбора. Увеличение размера Eden может дать вам больше времени, чтобы умереть в пространстве Eden и избежать копирования на оставшийся в живых.
1) Считаете ли вы, что это нормально, чтобы установить -XX: NewRatio = 0.5, а это значит, что я хочу, чтобы молодые вдвое больше, чем пожилые? Едва ли представляю, что можно оставить крошечным Тенериным и крупным молодым .. :). 2) Не имеет значения для Java 8, что приложение, составленное Java 6, чтобы сделать трюк со стеком, о котором вы упомянули? Спасибо. –
@VladimirNabokov вы не можете установить новый размер, который не является целочисленным AFAIK. Но да, я часто устанавливал, что Иден был в 10 раз выше. Java оптимизирует код динамически во время выполнения, основываясь на том, как вы его используете. Как это было составлено, это не имеет значения. –
@ VladimirNabokov Кстати, только потому, что я установил Eden 10x, это не означает, что это имеет смысл для 95% случаев использования. Экстремальный пример - настройка на один gc в день. Моя точка зрения; это не проблема. –
- 1. Когда объекты PHP умирают?
- 2. Почему мои объекты не умирают?
- 3. NetLogo: n-ошибка, когда все черепахи умирают
- 4. Когда переменные public-члена умирают?
- 5. Управление случаем, когда сервлеты умирают
- 6. В python, когда потоки умирают?
- 7. Когда GC удаляет объекты, имеющие только слабые ссылки?
- 8. Java слабая ссылка: когда GC собирает объект
- 9. Как принудительно удалять объекты/GC
- 10. что вызывает java minor gc
- 11. Java GC и консоль
- 12. Что происходит, когда умирают() вызывается в функции
- 13. Java GC Stop и скопировать
- 14. Java GC safepoint
- 15. Мониторинг GC в java
- 16. Удалить все объекты в java?
- 17. Java GC - есть способ определить, какие объекты собраны.
- 18. Определить, какие объекты JavaScript были освобождены GC
- 19. Когда GC принимает действие
- 20. Когда выполняется GC?
- 21. Deletion GC ArrayList Java
- 22. Java: надежный вызов GC?
- 23. Java - GC большая строка
- 24. Как метод GC GC callizeize()?
- 25. Java GC странное поведение или утечка памяти?
- 26. Какие объекты имеют право на GC?
- 27. GC не очищающие объекты в области
- 28. Можно ли перехватывать объекты, собираемые GC?
- 29. GC в Java сеттере
- 30. Анализ журнала Java GC
Непонятно, почему кто-то понизил вопрос. В моем случае буквально все работы происходят в Идене, никогда в пространстве с тенями, С этим я боюсь максимизировать Иден и уменьшить Тенерифе, потому что я понятия не имею, опасно это или нет. Также я не хочу увеличивать время небольших коллекций, увеличивая количество eden. При всем том, что я вижу, как 6Gb Удержанное пространство всегда пусто, и все работает в 1.5Gb Eden. –
«отложено на основании мнения». Я не понимаю. Почему? Что может быть неправильным в мнениях, указанных принятым ответом? Если вы положили что-то на удержание, вам нужно указать, почему, а не просто вырезать свои очки. Позор. Это прекрасный ответ на мой вопрос. –