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
| DataKind | PDF_RANGE_DATA_PAGE, PDF_RANGE_DATA_FORM oppure PDF_RANGE_DATA_OBJECT |
|---|---|
| Index | Un numero di pagina a base 1, zero per l'interrogazione del modulo, oppure un numero di oggetto indiretto |
| Priority | PDF_RANGE_PREFETCH_PRIORITY_LOW, NORMAL, HIGH oppure CRITICAL |
| MaxBytes | Il budget di lettura del lavoro; zero seleziona 64 MiB e un valore esplicito deve contenere almeno un chunk della sorgente |
| ReadAheadBytes | Byte extra pianificati dopo ogni intervallo di dipendenza scoperto, prima dell'allineamento ai chunk |
| MaxPasses | Il 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