StartRangeSourcePrefetch

Gestione dei documenti, caricamento progressivo, prestazioni

Descrizione

Accoda un lavoro in background che scopre e recupera ripetutamente gli intervalli di byte mancanti richiesti da un grafo di dipendenze di pagina, modulo o oggetto indiretto

Sintassi

Delphi

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

Parametri

DataKindPDF_RANGE_DATA_PAGE, PDF_RANGE_DATA_FORM oppure PDF_RANGE_DATA_OBJECT
IndexUn numero di pagina a base 1, zero per l'interrogazione del modulo, oppure un numero di oggetto indiretto
PriorityPDF_RANGE_PREFETCH_PRIORITY_LOW, NORMAL, HIGH oppure CRITICAL
MaxBytesIl budget di lettura del lavoro; zero seleziona 64 MiB e un valore esplicito deve contenere almeno un chunk della sorgente
ReadAheadBytesByte extra pianificati dopo ogni intervallo di dipendenza scoperto, prima dell'allineamento ai chunk
MaxPassesIl numero massimo di round di scoperta delle dipendenze; zero seleziona 128

Valore restituito

Un handle di lavoro positivo locale allo stream in caso di successo, oppure zero con LastErrorCode impostato a 401 quando il documento selezionato non è basato su intervalli oppure gli argomenti non sono validi

Note

Un worker serve ogni flusso a intervalli e sceglie la priorità in coda più alta, preservando l'ordine FIFO a parità di priorità

Il worker usa un analizzatore isolato sulla cache a intervalli di byte condivisa, così l'individuazione delle dipendenze non condivide stato mutabile di lettore con le operazioni di documento in primo piano

Il budget di byte include le letture non in cache eseguite durante l'inizializzazione e l'avanzamento dell'analizzatore di dipendenze isolato

I byte precaricati restano soggetti al budget della cache di flussi e alla politica di evizione least-recently-used