Запись THPDFParserArenaStatistics
Сообщает телеметрию блоков, аллокаций, токенов и элиминации от arena-аллокатора парсера
Объявление
THPDFParserArenaStatistics= record
BlockSize: Integer;
RetainedBlockCount: Integer;
RetainedBytes: Int64;
PeakUsedBytes: Int64;
AllocationCount: Int64;
BytesRequested: Int64;
BlockAllocationCount: Int64;
ReusedAllocationCount: Int64;
ResetCount: Int64;
TokenCount: Int64;
TemporaryObjectElisionCount: Int64;
end;
Модуль
HPDFDoc
Поля
| Поле | Назначение |
|---|---|
BlockSize | Ёмкость одного блока arena, заданная при создании (по умолчанию 65536) |
RetainedBlockCount | Число блоков, которые arena сейчас удерживает для повторного использования |
RetainedBytes | Сумма ёмкостей всех удержанных блоков |
PeakUsedBytes | Максимальное число байтов arena, занятых за сессию |
AllocationCount | Число запросов на аллокацию, обслуженных из arena |
BytesRequested | Суммарное число байтов, запрошенное всеми аллокациями |
BlockAllocationCount | Число свежих блоков, взятых у менеджера памяти |
ReusedAllocationCount | Аллокации, удовлетворённые из освобождённого пространства внутри существующих блоков |
ResetCount | Сколько раз откатывалась метка arena или сбрасывалась сама arena |
TokenCount | Токены парсера, посчитанные владеющей сессией загрузки; заполняется THotPDF после отчёта arena |
TemporaryObjectElisionCount | Временные объекты парсера, элиминированные за сессию; тоже заполняется THotPDF |
Примечания по использованию
- Получайте снимок через
GetLastParserArenaStatistics: он возвращает false, когда активной сессии arena нет, и обнуляет запись - Сравните
PeakUsedBytesсRetainedBytes, чтобы оценить, сколько памяти arena держит зарезервированной между сессиями TokenCountиTemporaryObjectElisionCountберутся из счётчиков сессии и обнуляются методомBeginParserArenaSession