Mappage fenêtré de fichiers locaux THotPDF

Contrôle le mappage mémoire borné en lecture seule utilisé par LoadFromFile pour les grands documents locaux

Déclarations

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

function GetLastMappedFileStatistics(
  out Statistics: THPDFMappedFileStatistics): boolean;

Valeurs par défaut

RéglageDéfautSignification
LocalFileMappingThreshold8 MiBTaille source minimale qui sélectionne le mappage mémoire ; zéro désactive le mappage
LocalFileMappingWindowSize16 MiBOctets couverts par une vue alignée sur la granularité d’allocation
LocalFileMappingCacheWindows4Vues résidentes maximales conservées par le cache LRU
LocalFileMappingAdaptiveGeometryTrueRedistribue la même limite d’octets mappés pour un accès séquentiel ou aléatoire soutenu

Statistiques

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 renvoie True uniquement lorsque la dernière opération LoadFromFile a sélectionné le mappage

MapCount compte les nouvelles vues et CacheHits compte les lectures servies par une vue existante, ce qui permet aux applications et aux benchmarks d’ajuster la géométrie des fenêtres face aux patterns d’accès réels

MappedByteLimit reste fixe tandis que WindowSize et CacheWindowCount rapportent la géométrie active ; les octets mappés au pic, les compteurs de patterns et les indicateurs de mode rendent chaque adaptation observable

Types de sources avancés

THPDFMappedFileSource possède le handle de fichier partagé, l’objet de mappage, les fenêtres LRU synchronisées, le compteur de références et le chemin de repli positionnel

THPDFMappedFileStream expose une tranche seekable bornée sur cette source, tandis que THPDFMappedFileWindow décrit une vue interne en cache

Comportement

Voir aussi : LocalFileMappingAdaptiveGeometry, LoadFromFile, Chargement de PDF évolutif, HPDFTransferStream, LoadedStreamMemoryThreshold