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