memory. Информация о памяти под контролем сборщика мусора
Это поле - хеш с информацией о памяти, находящейся под контролем сборщика мусора.
Поле
|
Значение (в килобайтах)
|
Детали
|
used
|
Занято
|
В это число не включен размер cлужебных данных самого сборщика мусора.
|
free
|
Свободно
|
Свободная память скорее всего фрагментирована.
|
ever_allocated_since_compact
|
Было выделено с момента последней сборки мусора. См. memory:compact.
|
Между сборками мусора это число только растет.
Факты освобождения памяти без сборки мусора на него не влияют, только сборки мусора. |
ever_allocated_since_start
|
Было выделено за все время обработки запроса
|
Это число только растет.
Ни факты сборки мусора, ни освобождения памяти между сборками мусора на него не влияют. |
Рекомендуемый способ анализа
Временно добавьте вызовы…
^musage[before XXX]
^musage[after XXX]
…вокруг интересующего вас блока вот этого метода…
@musage[comment][v;now;prefix;message;line]
$v[$status:memory]
$now[^date::now[]]
$prefix[[^now.sql-string[]] $env:REMOTE_ADDR: $comment]
$message[$v.used $v.free $v.ever_allocated_since_compact $v.ever_allocated_since_start $request:uri]
$line[$prefix $message ^#0A]
^line.save[append;/musage.log]
$result[]
…и проанализируйте журнал.
Важно: в ходе работы Parser захватывает у операционной системы дополнительные блоки памяти по мере необходимости. Поэтому есть моменты, когда и used и free, увеличиваются. Это нормально.
Примечание: для записи журнала не рекомендуется использовать веб-пространство.