Statusmemory
memory. Информация о памяти под контролем сборщика мусора [3.1] | |
Это поле - хеш с информацией о памяти, находящейся под контролем сборщика мусора.
Поле | Значение (в килобайтах) | Детали | |||
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, увеличиваются. Это нормально.
Примечание: для записи журнала не рекомендуется использовать веб-пространство.