Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Java Новый топик    Ответить
Топик располагается на нескольких страницах: 1 2      [все]
 Сборка мусора  [new]
Mandarin
Member

Откуда: Саратов
Сообщений: 1125
Всем привет!
Подскажите пожалуйста почему сборка мусора может происходить чаще чем я ожидаю?
Например я задал максимальный размер памяти для приложения 28 ГБ -Xmx28g
В моём понимании (оно может отличаться от правильного :) ) сборка должна происходить когда размер используемой памяти будет приближаться к 28 ГБ, а через Jconsole я вижу что сборка идёт чаще см. скриншот. Почему сборщик мусора так частит окоянный ? :)

К сообщению приложен файл. Размер - 131Kb
6 май 19, 13:01    [21878742]     Ответить | Цитировать Сообщить модератору
 Re: Сборка мусора  [new]
Leonid Kudryavtsev
Member

Откуда:
Сообщений: 7699
Медитировать над различием между Minor и Major GC.
У Вас full garbage collector запускался только 1 (один) раз.
6 май 19, 13:50    [21878840]     Ответить | Цитировать Сообщить модератору
 Re: Сборка мусора  [new]
Leonid Kudryavtsev
Member

Откуда:
Сообщений: 7699
нет, извеняюсь, 14 раз запускался

В любом случае:
нужная полная настройка JVM
нужен паксимально детальный лог GC из него скорее всего и будет понятно, почему сборка мусора запускалась

Как вариант: сборка мусора запускается из кода приложения
6 май 19, 13:52    [21878849]     Ответить | Цитировать Сообщить модератору
 Re: Сборка мусора  [new]
Mandarin
Member

Откуда: Саратов
Сообщений: 1125
Leonid Kudryavtsev
нет, извиняюсь, 14 раз запускался

В любом случае:
нужная полная настройка JVM
нужен максимально детальный лог GC из него скорее всего и будет понятно, почему сборка мусора запускалась

Как вариант: сборка мусора запускается из кода приложения


Чтобы получить лог GC нужно JVM запускать с какими-то параметрами?
Про сборку из приложения (приложение это Tomcat) хорошая идея, спасибо за подсказку. Я проверю.
6 май 19, 13:55    [21878857]     Ответить | Цитировать Сообщить модератору
 Re: Сборка мусора  [new]
Alexander A. Sak
Member

Откуда: Омск
Сообщений: 1019
Указание максимального размера не означает же, что будет взята вся память сразу по максимуму.

Если указать минимальный размер равный максимальному (что как раз и советуют для серверных приложений), картина такая же?
6 май 19, 14:06    [21878886]     Ответить | Цитировать Сообщить модератору
 Re: Сборка мусора  [new]
Leonid Kudryavtsev
Member

Откуда:
Сообщений: 7699
Mandarin
нужно JVM запускать с какими-то параметрами?

Да, разумеется

https://docs.oracle.com/javacomponents/jrockit-hotspot/migration-guide/logging.htm#JRHMG125

google:
https://confluence.atlassian.com/confkb/how-to-enable-garbage-collection-gc-logging-300813751.html
https://dzone.com/articles/enabling-and-analysing-the-garbage-collection-log
etc....

Mandarin
Про сборку из приложения (приложение это Tomcat) хорошая идея, спасибо за подсказку. Я проверю.

Плохая идея выделять сверх много памяти.

Т.к. при full GC все стоит "колом". Бизнес задачь, которые могут выдержать несколько секунд стояния __полным__ колом - я не знаю. При "обычных" GC выбор между "собирать мурок редко но колом стоять долго" vs "собирать мусор чаще, зато стоять колом будем меньше"

При таких объемах памяти нужно с какими-то более продвинутыми GC эксперементировать. IMHO

Не понятно, за какой период времени статистика. Т.к. на Вашем графике явно Minor, а не Full GC (пиков явно больше 14). Если minor GC запускается раз в 30 секунд - 1 мин. это крайне хороший показатель. Я бы успокоился и ничего не трогал.

Mandarin
Про сборку из приложения

-XX:+DisableExplicitGC.
6 май 19, 14:06    [21878889]     Ответить | Цитировать Сообщить модератору
 Re: Сборка мусора  [new]
ivanra
Member

Откуда:
Сообщений: 851
Из графика видно:
Под кучу занято пока не 28, а только 20 гб;
По дефолту -XX:MinHeapFreeRatio=40, то есть следующее увеличение кучи произойдет, когда после сборки будет занято более 12гб (60%), на картинке видно, что пока после сборки остается занятым 9гб;

аномалии:
По идее, minor сборка должна происходить на 9+20*1/3 ~ 15 гб, а тут почему-то раньше. Искать в коде вызов GC;
Подозрительно много занято под oldgen. Если это рядовые web-приложения на Tomcat-е, неплохо бы поискать утечки
6 май 19, 14:31    [21878965]     Ответить | Цитировать Сообщить модератору
 Re: Сборка мусора  [new]
Mandarin
Member

Откуда: Саратов
Сообщений: 1125
Leonid Kudryavtsev,

Понятно, спасибо за подсказки.
6 май 19, 14:31    [21878967]     Ответить | Цитировать Сообщить модератору
 Re: Сборка мусора  [new]
lleming
Member

Откуда:
Сообщений: 1595
а какой gc ?
6 май 19, 14:55    [21879027]     Ответить | Цитировать Сообщить модератору
 Re: Сборка мусора  [new]
mayton
Member

Откуда: loopback
Сообщений: 40989
Mandarin, есть желание покататься на 12-той модели жигулей?
6 май 19, 15:18    [21879051]     Ответить | Цитировать Сообщить модератору
 Re: Сборка мусора  [new]
Мозговой_слизень
Member

Откуда:
Сообщений: 3008
Mandarin,

Где-то я читал, что GC с версии джавы 8 запускается когда сам посчитает нужным, а не когда его попросят.
12 май 19, 00:22    [21882609]     Ответить | Цитировать Сообщить модератору
 Re: Сборка мусора  [new]
mayton
Member

Откуда: loopback
Сообщений: 40989
Жаль. Надо было погонять этот Шенандох.
12 май 19, 00:49    [21882627]     Ответить | Цитировать Сообщить модератору
 Re: Сборка мусора  [new]
Alexey Tomin
Member

Откуда: Самара
Сообщений: 1711
Мозговой_слизень
Mandarin,

Где-то я читал, что GC с версии джавы 8 запускается когда сам посчитает нужным, а не когда его попросят.


Ошибаетесь. На JDK8 System.gc() запускает полную сборку в _большинстве_ случаев.
Но в целом глупо ждать от сборщика мусора соответствия своим фантазиям.
13 май 19, 06:08    [21882953]     Ответить | Цитировать Сообщить модератору
 Re: Сборка мусора  [new]
Мозговой_слизень
Member

Откуда:
Сообщений: 3008
Alexey Tomin
Мозговой_слизень
Mandarin,

Где-то я читал, что GC с версии джавы 8 запускается когда сам посчитает нужным, а не когда его попросят.


Ошибаетесь. На JDK8 System.gc() запускает полную сборку в _большинстве_ случаев.
Но в целом глупо ждать от сборщика мусора соответствия своим фантазиям.


источник знания?
14 май 19, 03:42    [21883925]     Ответить | Цитировать Сообщить модератору
 Re: Сборка мусора  [new]
Мозговой_слизень
Member

Откуда:
Сообщений: 3008
впрочем, пилите, Шура, пилите.
14 май 19, 03:46    [21883926]     Ответить | Цитировать Сообщить модератору
 Re: Сборка мусора  [new]
Alexey Tomin
Member

Откуда: Самара
Сообщений: 1711
Мозговой_слизень
Alexey Tomin
Ошибаетесь. На JDK8 System.gc() запускает полную сборку в _большинстве_ случаев.
Но в целом глупо ждать от сборщика мусора соответствия своим фантазиям.

источник знания?


Знаний чего?

Что gc() работает? Несколько лет в мою зону ответственности входит поиск проблем с памятью приложения на JDK8. Так что и из кода вызов смотрел, и сам в jconsole и т.п. тыкал - собирается мусор. Особенно если тыкать с умом (например после окончания работы алгоритмов, которых памяти нахватали временно).

Или того, что это не обязательство а везение? Ну так это документация- сборка мусора может запутиться сама, или НЕ запуститься при вызова gc(). Никаких гарантий.

Плюс разные сборщики мусора работают по-разному.
14 май 19, 07:24    [21883958]     Ответить | Цитировать Сообщить модератору
 Re: Сборка мусора  [new]
Мозговой_слизень
Member

Откуда:
Сообщений: 3008
Alexey Tomin
Мозговой_слизень
пропущено...

источник знания?


Знаний чего?

Что gc() работает? Несколько лет в мою зону ответственности входит поиск проблем с памятью приложения на JDK8. Так что и из кода вызов смотрел, и сам в jconsole и т.п. тыкал - собирается мусор. Особенно если тыкать с умом (например после окончания работы алгоритмов, которых памяти нахватали временно).

Или того, что это не обязательство а везение? Ну так это документация- сборка мусора может запутиться сама, или НЕ запуститься при вызова gc(). Никаких гарантий.

Плюс разные сборщики мусора работают по-разному.


Ну и как это противоречит моему утверждению, что GC запускается когда сам сочтет нужным? Я вот тут хотел цитатку привести из документации по GC, да передумал. Вижу вы и без меня умный.
14 май 19, 07:57    [21883976]     Ответить | Цитировать Сообщить модератору
 Re: Сборка мусора  [new]
Leonid Kudryavtsev
Member

Откуда:
Сообщений: 7699
наверное тогда, когда наступят УСЛОВИЯ для его запуска. Другое дело, что эти условия для разных GC могут быть разными

Про ручной запуск вызовом System.gc, в документации все нормально написано.

Где-то я читал, что GC с версии джавы 8 запускается когда сам посчитает нужным, а не когда его попросят.

я так понимаю, нужно читать так:

"Сидел с бабками на завалинке, одна бабка сказала ....[далее по тексту]"
14 май 19, 10:34    [21884116]     Ответить | Цитировать Сообщить модератору
 Re: Сборка мусора  [new]
Leonid Kudryavtsev
Member

Откуда:
Сообщений: 7699
Alexey Tomin
или НЕ запуститься при вызова gc(). Никаких гарантий.

Что значит "никакой гарантии" ? Есть ключи командной строки которые управляют данным поведением.
14 май 19, 10:38    [21884121]     Ответить | Цитировать Сообщить модератору
 Re: Сборка мусора  [new]
mayton
Member

Откуда: loopback
Сообщений: 40989
Почему никто до сих пор не попросил у мандарина его командную строку?

Почему никому не интересно увидеть вкладку плагина Visual GC ?
14 май 19, 10:41    [21884124]     Ответить | Цитировать Сообщить модератору
 Re: Сборка мусора  [new]
Alexey Tomin
Member

Откуда: Самара
Сообщений: 1711
Leonid Kudryavtsev
Alexey Tomin
или НЕ запуститься при вызова gc(). Никаких гарантий.

Что значит "никакой гарантии" ? Есть ключи командной строки которые управляют данным поведением.


Ключи? Знаю только XX:+DisableExplicitGC который делаеть System.gc() пустышкой. А что ещё?
14 май 19, 11:22    [21884192]     Ответить | Цитировать Сообщить модератору
 Re: Сборка мусора  [new]
Leonid Kudryavtsev
Member

Откуда:
Сообщений: 7699
А этого мало? )))

Просто мне кажется, что по ходу дискуссии идея "что в зависимости от настроек и используемого GC, System.GC() МОЖЕТ игнорироваться" трансформировалась в "код System.GC() выглядит примерно так":
if random() {
  ВЫЗВАТЬ_ЭТОТ_ЧЕРТОВ_GC();
} else {
  пощли_все_лесом()
}

А, IMHO & AFAIK, это совсем не так. Нет там никакого random().

Разумеется осмысленного использования Systen.GC() в продакшен коде - исчезающе мало. Но в __редких__ случаях, он вполне себе используется.

Почему никто до сих пор не попросил у мандарина его командную строку?

Почему никому не интересно увидеть вкладку плагина Visual GC ?

А зачем?
Без логов GC все равно смысла мало, ссылку на включение логов автору я вроде кинул. Автор исчез.

А в логах и так причина вызова GC должна английским по экрану быть написана.
14 май 19, 13:57    [21884403]     Ответить | Цитировать Сообщить модератору
 Re: Сборка мусора  [new]
mayton
Member

Откуда: loopback
Сообщений: 40989
А ну тогда топик можно закрыть за остуствием фактов. Кстати всегда удивляла способность программистов к телепатии.
14 май 19, 14:16    [21884437]     Ответить | Цитировать Сообщить модератору
 Re: Сборка мусора  [new]
Мозговой_слизень
Member

Откуда:
Сообщений: 3008
Leonid Kudryavtsev
А этого мало? )))

Просто мне кажется, что по ходу дискуссии идея "что в зависимости от настроек и используемого GC, System.GC() МОЖЕТ игнорироваться" трансформировалась в "код System.GC() выглядит примерно так":
if random() {
  ВЫЗВАТЬ_ЭТОТ_ЧЕРТОВ_GC();
} else {
  пощли_все_лесом()
}

А, IMHO & AFAIK, это совсем не так. Нет там никакого random().

Разумеется осмысленного использования Systen.GC() в продакшен коде - исчезающе мало. Но в __редких__ случаях, он вполне себе используется.

Почему никто до сих пор не попросил у мандарина его командную строку?

Почему никому не интересно увидеть вкладку плагина Visual GC ?

А зачем?
Без логов GC все равно смысла мало, ссылку на включение логов автору я вроде кинул. Автор исчез.

А в логах и так причина вызова GC должна английским по экрану быть написана.


Как приятно наблюдать кипение мозгов. Вот ведь когда не знаешь вопроса какой велосипед можно изобрести. Пятиколесный аж.
14 май 19, 15:40    [21884559]     Ответить | Цитировать Сообщить модератору
 Re: Сборка мусора  [new]
Leonid Kudryavtsev
Member

Откуда:
Сообщений: 7699
Мозговой_слизень
.....
Как приятно наблюдать кипение мозгов. Вот ведь когда не знаешь вопроса какой велосипед можно изобрести. Пятиколесный аж.

+++

Мозговой_слизень
Ну и как это противоречит моему утверждению, что GC запускается когда сам сочтет нужным? Я вот тут хотел цитатку привести из документации по GC, да передумал. Вижу вы и без меня умный.
14 май 19, 15:42    [21884562]     Ответить | Цитировать Сообщить модератору
 Re: Сборка мусора  [new]
Мозговой_слизень
Member

Откуда:
Сообщений: 3008
Не, ну написано же в умных книгах, что попытка вызвать GC в коде будет носить статус "suggest". Переводится как "предложение".
А дальше в этих книгах написано, что когда ссылки на объект нет, тогда объект может быть удален GC.

Выглядит так, как будто на фундаменте этого простого принципа вы нагородили высокий небоскреб хитроумных противоречий.
14 май 19, 15:59    [21884573]     Ответить | Цитировать Сообщить модератору
 Re: Сборка мусора  [new]
mayton
Member

Откуда: loopback
Сообщений: 40989
Мне кажется надо как в сайте Ораклистов начать с цитаты официальной документации.

Инфа по восьмерке
https://docs.oracle.com/javase/8/docs/api/java/lang/System.html#gc--
public static void gc()

Runs the garbage collector.

Calling the gc method suggests that the Java Virtual Machine expend effort toward recycling unused objects in
order to make the memory they currently occupy available for quick reuse. When control returns from the method
call, the Java Virtual Machine has made a best effort to reclaim space from all discarded objects.

The call System.gc() is effectively equivalent to the call:
Runtime.getRuntime().gc()

See Also:

Runtime.gc()


Потом пойти в jvm specification и потом в исходники.
14 май 19, 16:04    [21884581]     Ответить | Цитировать Сообщить модератору
 Re: Сборка мусора  [new]
Leonid Kudryavtsev
Member

Откуда:
Сообщений: 7699
Мозговой_слизень
....носить статус "suggest". Переводится как "предложение"....

Во...блин
У Java уже искуственный интелект появился. Ему предлогаешь и он сам принимает решение. КРУТО!
А я похоже отстал от жизни
14 май 19, 16:04    [21884582]     Ответить | Цитировать Сообщить модератору
 Re: Сборка мусора  [new]
Leonid Kudryavtsev
Member

Откуда:
Сообщений: 7699
mayton
Потом пойти в jvm specification и потом в исходники.


OpenJDK_на_просторах_Inet

JVM_ENTRY_NO_ENV(void, JVM_GC(void))
JVMWrapper("JVM_GC");
if (!DisableExplicitGC) {
Universe::heap()->collect(GCCause::_java_lang_system_gc);
}
JVM_END

14 май 19, 16:18    [21884588]     Ответить | Цитировать Сообщить модератору
 Re: Сборка мусора  [new]
mayton
Member

Откуда: loopback
Сообщений: 40989
Ну.. если автор будет happy.
14 май 19, 16:22    [21884591]     Ответить | Цитировать Сообщить модератору
 Re: Сборка мусора  [new]
забыл ник
Member

Откуда:
Сообщений: 2811
А в других JVM?
14 май 19, 16:29    [21884594]     Ответить | Цитировать Сообщить модератору
 Re: Сборка мусора  [new]
mayton
Member

Откуда: loopback
Сообщений: 40989
А в epsilon-gc?
14 май 19, 16:47    [21884609]     Ответить | Цитировать Сообщить модератору
 Re: Сборка мусора  [new]
Мозговой_слизень
Member

Откуда:
Сообщений: 3008
Leonid Kudryavtsev
Мозговой_слизень
....носить статус "suggest". Переводится как "предложение"....

Во...блин
У Java уже искуственный интелект появился. Ему предлогаешь и он сам принимает решение. КРУТО!
А я похоже отстал от жизни


ну а в чем я не прав-то? У тебя есть возможность принудительно и однозначно вызвать GC?
14 май 19, 17:37    [21884656]     Ответить | Цитировать Сообщить модератору
 Re: Сборка мусора  [new]
Leonid Kudryavtsev
Member

Откуда:
Сообщений: 7699
Мозговой_слизень
У тебя есть возможность принудительно и однозначно вызвать GC?

Да
14 май 19, 17:51    [21884664]     Ответить | Цитировать Сообщить модератору
 Re: Сборка мусора  [new]
Leonid Kudryavtsev
Member

Откуда:
Сообщений: 7699
Хотя поторопился.

Сначала, пожалуйсто, поясните, что Вы понимаете под словом "однозначно" Т.к., как я уже и сказал, "в зависимости от настроек".
14 май 19, 17:57    [21884667]     Ответить | Цитировать Сообщить модератору
 Re: Сборка мусора  [new]
Leonid Kudryavtsev
Member

Откуда:
Сообщений: 7699
К сожалению "однозначного" в этом мире ничего нет

Java может вообще никогда GC не вызвать, например если компьютер выключен. То никакой System.GC разумеется, ничем помочь не может ((( Без включенной вилки в розетку - GC очень тяжело работать. Но обычно, я выполнению рекомендации MicroSoft и когда что-то не работает, то проверяю, воткнута ли вилка в розетку.
14 май 19, 18:00    [21884672]     Ответить | Цитировать Сообщить модератору
 Re: Сборка мусора  [new]
Мозговой_слизень
Member

Откуда:
Сообщений: 3008
Leonid Kudryavtsev
К сожалению "однозначного" в этом мире ничего нет

Java может вообще никогда GC не вызвать, например если компьютер выключен. То никакой System.GC разумеется, ничем помочь не может ((( Без включенной вилки в розетку - GC очень тяжело работать. Но обычно, я выполнению рекомендации MicroSoft и когда что-то не работает, то проверяю, воткнута ли вилка в розетку.


ну понятно, пошли отмазки. Вот еще цитатка, подтверждающая то, что Java может игнорировать попытки вызвать GC.

К сообщению приложен файл. Размер - 38Kb
14 май 19, 18:23    [21884688]     Ответить | Цитировать Сообщить модератору
 Re: Сборка мусора  [new]
Leonid Kudryavtsev
Member

Откуда:
Сообщений: 7699
Я уже признал свою вину (((.

Особенно игнорирует когда компьютер выключен. Просто когда писал ответ, об этой возможности не подумал ((( но об этом уже покаялся

Как сложно жить! Все так не однозначно (((
  if (!DisableExplicitGC) {
    Universe::heap()->collect(GCCause::_java_lang_system_gc);
  }


P.S.
Модератор, забаньте меня пожалуйсто на пару суток. А то реально "кипение мозгов". Пойду их холодным стаутом Belhaven залью (((
14 май 19, 18:54    [21884718]     Ответить | Цитировать Сообщить модератору
 Re: Сборка мусора  [new]
mayton
Member

Откуда: loopback
Сообщений: 40989
Leonid Kudryavtsev, а я с тёмного на светлое пшеничное перешёл.
14 май 19, 19:00    [21884724]     Ответить | Цитировать Сообщить модератору
 Re: Сборка мусора  [new]
забыл ник
Member

Откуда:
Сообщений: 2811
Leonid Kudryavtsev
Я уже признал свою вину (((.

Особенно игнорирует когда компьютер выключен. Просто когда писал ответ, об этой возможности не подумал ((( но об этом уже покаялся

Как сложно жить! Все так не однозначно (((
  if (!DisableExplicitGC) {
    Universe::heap()->collect(GCCause::_java_lang_system_gc);
  }


P.S.
Модератор, забаньте меня пожалуйсто на пару суток. А то реально "кипение мозгов". Пойду их холодным стаутом Belhaven залью (((

В данном случае вы не правы. Есть разница между спецификацией и конкретной имплементацией
14 май 19, 19:03    [21884728]     Ответить | Цитировать Сообщить модератору
 Re: Сборка мусора  [new]
Leonid Kudryavtsev
Member

Откуда:
Сообщений: 7699
Мозговой_слизень
...Вот еще цитатка...может игнорировать....

Плохая цитата. Плохая книга. Тут еще полно возможностей:
+

1. Компьютер игнорирует включение, т.к. не воткнут в розетку
2. Windows игнорирует ПРОСЬБУ войти в систему, т.к. не правильный пароль
3. Windows игнориурет ПРОСЬБУ запустить программу, т.к. на компьютере не установлена Java Runtime
4. Windows игнорирует ПРОСЬБУ поставить Java, т.к. нет места на жестком диске
....
10. Кофеварка игнорирует ПРОСЬБУ налить кофе, т.к. закончился кофейный порошек.
....
23. Пивная пробка игнорирует ПРОСЬБУ открутиться, т.к. в конструкции бутылки пива Brewdog PUNK IPA предполагалось использовать открывашку, а ее нет в наличии на работе ((( а открывать пивные бутылки подручными средствами я не умею (((
...
100500. Java игнорирetт ПРОСЬБУ вызвать GC, т.к. у него просто нет настроения

Как сложно жить !!!!

Все... ушел за пивом...

o.s.
Спасибо клавиатуре за любезно предоставленные буквы. Какая хорошая клавиатура, какая плохая Java (((
p.p.s.
- Доктор меня все игнорируют
- Кто "все"?
- Java
- Следующий...
14 май 19, 19:07    [21884734]     Ответить | Цитировать Сообщить модератору
 Re: Сборка мусора  [new]
Андрей Панфилов
Member

Откуда: Москва > Melbourne
Сообщений: 3247
Leonid Kudryavtsev
Я уже признал свою вину (((.

Особенно игнорирует когда компьютер выключен. Просто когда писал ответ, об этой возможности не подумал ((( но об этом уже покаялся

Как сложно жить! Все так не однозначно (((
  if (!DisableExplicitGC) {
    Universe::heap()->collect(GCCause::_java_lang_system_gc);
  }

Совершенно зря юродствуете. Код, что вы привели всего-лишь передает информацию сборщику мусора, что кто-то вызвал System.gc(), а тому в свою очередь ничего не мешает это проигнорировать или, к примеру, не выполнять Full GC.

g1CollectedHeap.cpp
bool G1CollectedHeap::should_do_concurrent_full_gc(GCCause::Cause cause) {
  switch (cause) {
    case GCCause::_gc_locker:               return GCLockerInvokesConcurrent;
    case GCCause::_java_lang_system_gc:     return ExplicitGCInvokesConcurrent;
    case GCCause::_g1_humongous_allocation: return true;
    case GCCause::_update_allocation_context_stats_inc: return true;
    default:                                return false;
  }
}


cmsHeap.cpp
bool CMSHeap::should_do_concurrent_full_gc(GCCause::Cause cause) {
  switch (cause) {
    case GCCause::_gc_locker:           return GCLockerInvokesConcurrent;
    case GCCause::_java_lang_system_gc:
    case GCCause::_dcmd_gc_run:         return ExplicitGCInvokesConcurrent;
    default:                            return false;
  }
}


т.е. крутилок там несколько, а не одна в виде -XX:+DisableExplicitGC
14 май 19, 19:36    [21884747]     Ответить | Цитировать Сообщить модератору
 Re: Сборка мусора  [new]
Мозговой_слизень
Member

Откуда:
Сообщений: 3008
Leonid Kudryavtsev
Плохая цитата. Плохая книга.


странно, несколько тысяч человек с вами не согласятся)
14 май 19, 19:44    [21884749]     Ответить | Цитировать Сообщить модератору
 Re: Сборка мусора  [new]
Alexey Tomin
Member

Откуда: Самара
Сообщений: 1711
Leonid Kudryavtsev
А этого мало? )))


Ключи - я думал, ещё есть :)

Leonid Kudryavtsev
Просто мне кажется, что по ходу дискуссии идея "что в зависимости от настроек и используемого GC, System.GC() МОЖЕТ игнорироваться" трансформировалась в "код System.GC() выглядит примерно так":
if random() {
  ВЫЗВАТЬ_ЭТОТ_ЧЕРТОВ_GC();
} else {
  пощли_все_лесом()
}



Никакого рандома.
Скорее так: есть накоторое число, харрактеризущее "нужность полной сборки". Например от 0 до 100. При 90 fullGC запуститься автоматически. При 30 и прямой вызов не поможет. Все числа от балды.
15 май 19, 07:43    [21884916]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: 1 2      [все]
Все форумы / Java Ответить