THotPDF.RenderLoadedPagesParallel Method

Pipelinear displaylistkompilering och uppspelning över avgränsade arbetare samtidigt som inmatningsordningen bevaras i utmatningsarrayen

Deklaration

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;

Beteende

Kompilering körs utanför displaylistcache-låset, så orelaterade sidor kan kompileras samtidigt och den första färdiga sidan kan börja renderas innan hela inmatningsuppsättningen är kompilerad

Schemaläggaren balanserar dynamiskt kompilerings- och uppspelningsarbete, begränsar arbetare till MaxConcurrency, isolerar renderartillstånd per arbetare och delar cacheposter genom skyddade användningsantal

När PeakMemorySchedulerEnabled är true reduceras det effektiva arbetarantalet från den normaliserade begäran med den största siduppskattningen och den för närvarande tillgängliga globala budgeten, och varje anspråkad sida håller sedan sin egen rättvisa minnesreservation genom kompilering och uppspelning

Överlagringen med Info rapporterar begärda och effektiva arbetare, den minneshärledda arbetargränsen, sidreservationsuppskattningar, toppreserverade renderingsbytes, schemaläggarantagningar, fördröjda sidor, väntetid, kompilerings- och cacheträffantal, slutförd utmatning, toppstegskonkurrens, svarstid för första resultat, total förfluten tid och antalet sidor som kompilerats när den första bitmappen slutfördes

Anroparen äger varje icke-nil-bitmapp i Bitmaps

Slutförda arrayresultat förblir anropareägda efter att deras pågående reservationer frigjorts, så använd RenderLoadedPagesParallelOrdered när hela utmatningsuppsättningen i sig måste förbli inom schemaläggarbudgeten

THPDFParallelRenderPipelineInfo · Displaylistor och tryckproduktion