Рубрики
Без рубрики

[PT-BR] Mark and Sweep и поколений, кучи

Одна из целей JVM является управление памятью, используемой в наших системах. Это делается через d… Помеченный java, jvm, pt br.

Одна из целей JVM это управление памятью, используемой в наших системах. Это делается с помощью процессов, которые выполняются в течение жизненного цикла приложения. Garbage collector является одним из самых важных. Вкратце, он отвечает за освобождение места в памяти, собирая объекты, которые больше не ссылаются. Идея этого поста-объяснить подробно, как осуществляется этот сбор.

Всегда что instanciamos объект в наше приложение, даже выделяется в памяти, называется | heap . С течением времени многие объекты теряют свои ссылки и не самые полезные для системы. С аккумулирует объектов, на которые нет ссылок, garbage collector вызывается. Этот процесс называется mark and sweep и состоит из двух шагов. На первом этапе необходимо выяснить, какие объекты все еще есть ссылка. Когда обнаружены эти объекты будут помечены. На втором этапе все другие объекты, которые не были помечены как готовые для сбора и именно в этот момент происходит сканирование, чтобы освободить пространство памяти. Um detalhe que nao foi informado é que enquanto о процессе, который был выполнен, a aplicação para de rodar, com o intuito de evitar concorrencia com o сборщик мусора . Essa prada é chamada de остановить мир . При garbage collector сканирования | heap , объекты, которые имеют ссылки помечены, поднимут время остановки, и пользователи считают, что приложение не отвечает в тот момент, что это не интересно. Итак, как сделать, чтобы улучшить процесс сбора?

Чтобы избежать проблемы, ранее видели, |heap была разделена на несколько поколений. Essas geraçoes делают молодое поколение e a старое поколение . A молодые поссуи ум эспасо мужчины разделены на 3 части, в поисках рая, s0 e s1 (места для выживших). Каждый новый объект будет создан в eden. Соответствие документации количественному определению объектов без эдема, о сборщике мусора чамаду, порем о процессе оценки и оценки уровня жизни, о соответствии информации, о том, как люди выбирают судьбу для молодого поколения . После выполнения gc объекты, в которых еще ссылка будет выделено в пространстве s0. Как новые объекты создаются в eden, когда gc выполняется, он будет искать выживших eden и s0 и переносятся в пространство s1. После этого начального процесса, все объекты, созданные в eden, могут быть перенесены в s0 или s1, не в порядке приоритета и gc будет действовать в все эти пробелы. Приложения um numero x de execuçoes (защитник да ДЖЕМ и конфигурационные файлы, которые обычно используются) os objetos sobreviventes na молодое поколение , serão fragmentados e movidos para a старое поколение . В old generation процесс сбора данных будет работать только тогда, когда это необходимо, или есть, когда он не имеет больше места, и это будет происходить реже.

Мы понимаем, что garbage collector является очень важным процессом для поддержания производительности нашего приложения. Однако, если был проведен сбор по всей кучи , существовать stop the world , приложение прекратит работать, чтобы не конкурировать с gc и это вызовет instisfação пользователям системы, что они будут чувствовать, что приложение не было бы отвечая на тот момент. Этого можно избежать благодаря поколений кучи . В young generation процесс сбора выполняется наиболее часто, но очень быстро, потому что будет меньше места, что делает, что не воспринимается пользователями. Уже в old generation пространстве , который имеет объекты, оставшийся в живых, процесс запускается только при необходимости, с частотой, значительно меньшей, и когда это происходит, несмотря на чувство пользователями, и не так вредно. Тема поста сегодня был короткий, но сложный, поэтому вся критика, вопросы или предложения будут приветствоваться. Я надеюсь, что вам понравилось. До следующего.

Оригинал: “https://dev.to/j_a_o_v_c_t_r/pt-br-mark-and-sweep-e-as-geracoes-da-heap-28dj”