THotPDF Windowed Local File Mapping

Řídí ohraničené read-only memory mapping, které LoadFromFile používá u velkých místních dokumentů

Deklarace

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

function GetLastMappedFileStatistics(
  out Statistics: THPDFMappedFileStatistics): boolean;

Výchozí hodnoty

NastaveníVýchozíVýznam
LocalFileMappingThreshold8 MiBMinimální velikost zdroje, při které se použije memory mapping; nula mapping vypne
LocalFileMappingWindowSize16 MiBBajty pokryté jedním view zarovnaným na allocation granularity
LocalFileMappingCacheWindows4Maximální počet rezidentních view, které LRU cache udržuje
LocalFileMappingAdaptiveGeometryTruePřerozdělí stejný limit mapovaných bajtů podle dlouhodobě sekvenčního nebo náhodného přístupu

Statistiky

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 vrátí True jen tehdy, když poslední operace LoadFromFile zvolila mapping

MapCount počítá nová view a CacheHits čtení obsloužená existujícím view, takže aplikace i benchmarky mohou ladit geometrii oken proti reálným vzorcům přístupu

MappedByteLimit zůstává pevný, zatímco WindowSize a CacheWindowCount hlásí aktivní geometrii; peak mapované bajty, počty vzorců a příznaky režimu dělají každou adaptaci pozorovatelnou

Pokročilé typy zdrojů

THPDFMappedFileSource vlastní sdílený file handle, mapping objekt, synchronizovaná LRU okna, reference count a poziční fallback cestu

THPDFMappedFileStream vystavuje ohraničený seekovatelný řez nad tímto zdrojem a THPDFMappedFileWindow popisuje jedno interní view v cache

Chování

Viz také: LocalFileMappingAdaptiveGeometry, LoadFromFile, Scalable Loading, HPDFTransferStream, LoadedStreamMemoryThreshold