StartRangeSourcePrefetch

Управление документами, постепенная загрузка, производительность

Описание

Ставит в очередь фоновое задание, которое повторно обнаруживает и загружает недостающие диапазоны байтов, требуемые графом зависимостей страницы, формы или косвенного объекта

Синтаксис

Delphi

Function TPDFlib.StartRangeSourcePrefetch(DataKind, Index, Priority: Integer;
  MaxBytes: Int64= 0; ReadAheadBytes: LongInt= 0;
  MaxPasses: Integer= 0): Integer;

Параметры

DataKindPDF_RANGE_DATA_PAGE, PDF_RANGE_DATA_FORM или PDF_RANGE_DATA_OBJECT
IndexНомер страницы с базой 1, ноль для запроса формы или номер косвенного объекта
PriorityPDF_RANGE_PREFETCH_PRIORITY_LOW, NORMAL, HIGH или CRITICAL
MaxBytesБюджет чтения задания; ноль выбирает 64 МиБ, а явное значение должно вмещать хотя бы один блок источника
ReadAheadBytesДополнительные байты, планируемые после каждого обнаруженного диапазона зависимости до выравнивания по блокам
MaxPassesМаксимум раундов обнаружения зависимостей; ноль выбирает 128

Возвращаемое значение

Положительный локальный для потока дескриптор задания при успехе или ноль с LastErrorCode 401, когда выбранный документ не обеспечен диапазонами или аргументы недопустимы

Примечания

Один рабочий поток обслуживает каждый потоковый источник диапазонов и выбирает наивысший приоритет в очереди, сохраняя порядок FIFO при равных приоритетах

Рабочий поток использует изолированный парсер над общим кэшем диапазонов байтов, поэтому обнаружение зависимостей не разделяет изменяемое состояние читателя с операциями над документом на переднем плане

Байтовый бюджет включает некэшированные чтения, выполняемые при инициализации и продвижении изолированного парсера зависимостей

Упреждающе выбранные байты остаются подчиненными бюджету кэша потоков и политике вытеснения по наименее недавнему использованию