Пильный рисунок в использовании кучи можно объяснить тем, что при вызове вызова System.out.println
создается несколько локальных переменных. В частности, в Oracle / Sun JRE несколько экземпляров HeapCharBuffer
создаются в молодом поколении, как указано в следующем снимке, полученном с использованием профилировщика памяти VisualVM:
[/g0]
Интересный бит находится в количестве живых объектов, которые присутствуют в куче. Пилообразный рисунок получается из цикла сбора мусора молодого поколения, который возникает, когда пространство эден заполняется; поскольку в программе нет тяжелой вычислительной активности, JVM может выполнять несколько итераций цикла, в результате чего заполняется пространство eden (размером 4 МБ). Последующий цикл сбора молодого поколения затем очищает большую часть мусора; это почти всегда все пространство eden, если только объекты еще не используются, о чем свидетельствует следующая следа gc, полученная из VisualVM:
[/g1]
Таким образом, поведение пилообразного шаблона может быть объяснено серией распределений объектов в быстрой последовательности, которые заполняют пространство эден, вызывая цикл сбора мусора молодого поколения; этот процесс циклически повторяется без задержек, поскольку основной процесс JVM не вытесняется другим процессом, а основной поток в JVM, который отвечает за распределение объектов, также не вытесняется другим потоком.
Ваш раскрывающийся список относится к одной конкретной ячейке со значением «январь», «февраль», .... Вы можете настроить условное форматирование на основе формулы, ссылающейся на эту ячейку (в моем примере эта ячейка [ 110]):
=A1="January"
=A1="February"
Исходя из вашего отредактированного вопроса, вы можете использовать условное форматирование со следующей формулой:
=COLUMN()-2<=MATCH($A$2,Mapping_Others!$C$2:$C$13,0)
Применяется к следующему диапазону: =$C$4:$N$6