Что происходит во время Сборки "мусора", если Поколение 2 заполнено?

Попробуйте:


jQuery

$('.input_class_checkbox').each(function(){
    $(this).hide().after('
'); }); $('.class_checkbox').on('click',function(){ $(this).toggleClass('checked').prev().prop('checked',$(this).is('.checked')) });

Скрипка: http://jsfiddle.net/cn6kn/

13
задан George Stocker 10 November 2010 в 14:24
поделиться

3 ответа

Да, он увеличит размер поколения 2, если сможет. Если свободного места больше нет, вы получите исключение OutOfMemoryException .

20
ответ дан 1 December 2019 в 21:25
поделиться

Различные поколения сборки мусора связаны не с определенным размером, а с возрастом мусора. Насколько мне известно, ни одно из поколений не имеет ограничений по размеру.

3
ответ дан 1 December 2019 в 21:25
поделиться

Насколько я понимаю, куча всего одна (по иронии судьбы, она обычно изображается как стек). Объекты переходят в поколение 1 не при заполнении поколения 0, а когда они выживают в коллекции. Вкратце, ссылки не «перемещаются», а местоположение, используемое для определения того, где заканчивается поколение, перемещается.

Когда куча приближается к заполнению, происходит несколько вещей:

  1. Каждое поколение собирается, начиная с 0 и заканчивая 2.
    • Если сбора поколения 0 достаточно, оно не будет собирать поколения 1 и 2.
    • Если сбора поколения 0 недостаточно, но сбора поколения 1 достаточно, оно не будет собирать поколение 2.
  2. уплотняется куча (убираются зазоры)
  3. Продвигаем поколения
    • Выжившие поколения 1 помечены как поколение 2.
    • Выжившие поколения 0 помечены как поколение 1.

Объекты, оставшиеся в живых после сбора, затем перемещаются в поколение 0 (если это их первый цикл сбора) или поколение 2 ( если они уцелели более чем в одной коллекции). Это сделано для эффективности, чтобы гарантировать, что мы не будем постоянно пытаться собирать долгоживущие объекты.

Вы не исчерпываете пространство в определенных для поколения способах. См. Эту статью для хорошего объяснения.

3
ответ дан 1 December 2019 в 21:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: