THotPDF.RenderLoadedPagesParallel Method
Esegue in pipeline la compilazione della display-list e il playback su worker limitati, preservando l'ordine di input nell'array di output
Dichiarazione
function RenderLoadedPagesParallel(const PageIndices: array of Integer;
DPI, MaxConcurrency: Integer; out Bitmaps: THPDFBitmapArray): Integer; overload;
function RenderLoadedPagesParallel(const PageIndices: array of Integer;
DPI, MaxConcurrency: Integer; out Bitmaps: THPDFBitmapArray;
out Info: THPDFParallelRenderPipelineInfo): Integer; overload;
Comportamento
La compilazione viene eseguita fuori dal lock della cache della display-list, cosicché pagine indipendenti possono compilare in parallelo e la prima pagina pronta può iniziare il rendering prima che l'intero set di input sia stato compilato
Lo scheduler bilancia dinamicamente il lavoro di compilazione e playback, limita i worker a MaxConcurrency, isola lo stato del renderer per worker e condivide le voci di cache attraverso use count protetti
Quando PeakMemorySchedulerEnabled è true, il numero effettivo di worker viene ridotto rispetto alla richiesta normalizzata usando la stima della pagina più grande e il budget globale attualmente disponibile; ogni pagina rivendicata mantiene quindi la propria equa riserva di memoria durante compilazione e playback
L'overload con Info riporta worker richiesti ed effettivi, il limite di worker derivato dalla memoria, le stime di riservazione delle pagine, il picco di byte di rendering riservati, le ammissioni dello scheduler, le pagine ritardate, il tempo di attesa, i conteggi di compilazione e di cache hit, l'output completato, la concorrenza di picco per stage, la latenza del primo risultato, il tempo totale trascorso e il numero di pagine compilate al completamento della prima bitmap
Il chiamante possiede ogni bitmap non nil in Bitmaps
I risultati degli array completati restano di proprietà del chiamante dopo il rilascio delle riservazioni in corso, quindi usare RenderLoadedPagesParallelOrdered quando l'intero set di output deve restare dentro il budget dello scheduler
THPDFParallelRenderPipelineInfo · Display list e produzione di stampa