THotPDF.RenderLoadedPagesParallel – metoda

Zřetězí kompilaci display listů a jejich playback napříč omezenými workery, přičemž ve výstupním poli zachová vstupní pořadí

Deklarace

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;

Chování

Kompilace běží mimo zámek display-list cache, takže nesouvisející stránky mohou kompilovat souběžně a první hotová stránka může začít renderovat, dokud se ještě kompiluje celá vstupní množina

Scheduler dynamicky vyvažuje kompilaci a playback, omezuje workery na MaxConcurrency, izoluje stav rendereru na workera a sdílí položky cache přes chráněné use counts

Když je PeakMemorySchedulerEnabled true, efektivní počet workerů se z normalizovaného požadavku sníží podle odhadu největší stránky a aktuálně dostupného globálního budgetu, a pak si každá přiznaná stránka drží vlastní spravedlivou paměťovou rezervaci po celou kompilaci i playback

Overload s Info hlásí požadované a efektivní workery, limit workerů odvozený z paměti, odhady rezervací stránek, peak rezervovaných render bajtů, připuštění scheduleru, odložené stránky, čas čekání, počty kompilací a zásahů cache, dokončený výstup, peak souběžnosti stádií, latenci prvního výsledku, celkový uplynulý čas a počet stránek zkompilovaných k okamžiku dokončení první bitmapy

Každou ne-nilovou bitmapu v Bitmaps vlastní volající

Dokončené výsledky pole zůstávají majetkem volajícího i po uvolnění svých rozjetých rezervací, takže pokud má kompletní výstupní množina sama zůstat uvnitř budgetu scheduleru, použijte RenderLoadedPagesParallelOrdered

THPDFParallelRenderPipelineInfo · Zobrazovací seznamy a tisková produkce