Оконное отображение локального файла в THotPDF

Управляет ограниченным отображением в память только для чтения, которое LoadFromFile использует для больших локальных документов

Объявления

property LocalFileMappingThreshold: Int64;
property LocalFileMappingWindowSize: Integer;
property LocalFileMappingCacheWindows: Integer;
property LocalFileMappingAdaptiveGeometry: boolean;
property LastLoadUsedMemoryMapping: boolean;

function GetLastMappedFileStatistics(
  out Statistics: THPDFMappedFileStatistics): boolean;

Значения по умолчанию

ПараметрПо умолчаниюОписание
LocalFileMappingThreshold8 МиБМинимальный размер источника, при котором выбирается отображение в память; ноль отключает отображение
LocalFileMappingWindowSize16 МиБСколько байтов покрывает одно представление, выровненное по гранулярности выделения
LocalFileMappingCacheWindows4Максимум резидентных представлений, удерживаемых LRU cache
LocalFileMappingAdaptiveGeometryTrueПерераспределяет тот же лимит отображаемых байтов между устойчиво последовательным и случайным доступом

Статистика

THPDFMappedFileStatistics = record
  FileSize: Int64;
  ConfiguredWindowSize: Int64;
  ConfiguredCacheWindowCount: Integer;
  WindowSize: Int64;
  CacheWindowCount: Integer;
  MappedByteLimit: Int64;
  CurrentMappedBytes: Int64;
  PeakMappedBytes: Int64;
  GeometryChangeCount: Int64;
  SequentialReadCalls: Int64;
  RandomReadCalls: Int64;
  AdaptiveGeometry: Boolean;
  SequentialGeometryActive: Boolean;
  RandomGeometryActive: Boolean;
  ReadCalls: Int64;
  BytesRead: Int64;
  MapCount: Int64;
  CacheHits: Int64;
  FallbackReadCalls: Int64;
  FallbackBytes: Int64;
  DirectTransferCalls: Int64;
  DirectTransferBytes: Int64;
end;

GetLastMappedFileStatistics возвращает True, только если последняя операция LoadFromFile выбрала отображение

MapCount считает новые представления, а CacheHits — чтения, обслуженные уже существующим представлением; это позволяет приложениям и бенчмаркам подбирать геометрию окон под реальные паттерны доступа

MappedByteLimit остаётся неизменным, а WindowSize и CacheWindowCount сообщают активную геометрию; пиковый объём отображённых байтов, счётчики паттернов и флаги режимов делают каждую адаптацию наблюдаемой

Дополнительные типы источников

THPDFMappedFileSource владеет общим file handle, объектом отображения, синхронизированными LRU-окнами, счётчиком ссылок и резервным позиционным путём чтения

THPDFMappedFileStream предоставляет ограниченный срез с поддержкой seek над этим источником, а THPDFMappedFileWindow описывает одно удерживаемое в cache внутреннее представление

Поведение

См. также: LocalFileMappingAdaptiveGeometry, LoadFromFile, Scalable Loading, HPDFTransferStream, LoadedStreamMemoryThreshold