THotPDF.RenderLoadedPagesParallel Method

Конвейеризира компилацията на display list и възпроизвеждането между ограничен брой workers, като запазва входния ред в изходния масив

Декларация

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;

Поведение

Компилацията протича извън заключването на display-list кеша, така че несвързани страници могат да се компилират едновременно, а първата готова страница може да започне да се изобразява, преди целият входен набор да е компилиран

Scheduler-ът динамично балансира компилацията и възпроизвеждането, ограничава workers до MaxConcurrency, изолира състоянието на renderer-а за всеки worker и споделя кеш записи чрез защитени броячи на употреба

Когато PeakMemorySchedulerEnabled е true, действителният брой workers се намалява от нормализираната заявка според оценката за най-голямата страница и наличния в момента глобален бюджет, след което всяка заявета страница държи собствената си справедлива резервация на памет през компилацията и възпроизвеждането

Претоварената версия с Info докладва заявените и действителните workers, лимита на workers, произтичащ от паметта, оценките на резервациите за страници, пикова резервирана памет за render, допусканията на scheduler-а, забавените страници, времето за изчакване, броя компилации и попадения в кеша, завършения изход, пикова едновременност на етапите, латентност до първия резултат, общо изминало време и броя компилирани страници към момента на завършване на първата bitmap

Всички ненулеви bitmaps в Bitmaps са собственост на извикващия

Завършените резултати в масива остават собственост на извикващия след освобождаването на текущите им резервации, затова използвайте RenderLoadedPagesParallelOrdered, когато целият изходен набор трябва да остане в бюджета на scheduler-а

THPDFParallelRenderPipelineInfo · Display списъци и печатно производство