Metoda THotPDF.RenderLoadedPagesParallel

Rulează în pipeline compilarea și redarea display list-urilor pe worker-i delimitați, păstrând ordinea intrării în array-ul de ieșire

Declarație

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;

Comportament

Compilarea rulează în afara lock-ului cache-ului de display list-uri, astfel că paginile fără legătură pot fi compilate concurent, iar prima pagină gata poate începe randarea înainte ca întregul set de intrare să fie compilat

The scheduler dynamically balances compile and playback work, caps workers at MaxConcurrency, isolates renderer state per worker, and shares cache entries through protected use counts

Când PeakMemorySchedulerEnabled este true, numărul efectiv de worker-i este redus față de cererea normalizată, pe baza celei mai mari estimări de pagină și a bugetului global disponibil în acel moment, iar apoi fiecare pagină revendicată își păstrează propria rezervare echitabilă de memorie pe durata compilării și a redării

Overload-ul cu Info raportează worker-ii ceruți și cei efectivi, limita de worker-i derivată din memorie, estimările de rezervare pe pagină, vârful de octeți de randare rezervați, admiterile din scheduler, paginile amânate, timpul de așteptare, numărul de compilări și de accesări ale cache-ului, ieșirea finalizată, concurența maximă pe etape, latența primului rezultat, timpul total scurs și numărul de pagini compilate în momentul în care s-a finalizat primul bitmap

The caller owns every non-nil bitmap in Bitmaps

Rezultatele finalizate din array rămân în proprietatea apelantului după ce rezervările lor în curs sunt eliberate, așa că folosiți RenderLoadedPagesParallelOrdered când setul complet de ieșire trebuie să rămână el însuși în bugetul scheduler-ului

THPDFParallelRenderPipelineInfo · Display Lists and Print Production