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;

Поведение

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

Планировщик динамически балансирует компиляцию и воспроизведение, ограничивает число workers значением MaxConcurrency, изолирует состояние renderer'а для каждого worker и разделяет записи cache через защищённые счётчики использования

Когда PeakMemorySchedulerEnabled включён, фактическое число workers уменьшается от нормализованного запроса с учётом самой крупной оценки страницы и текущего доступного глобального бюджета, после чего каждая захваченная страница удерживает собственную справедливую резервацию памяти на протяжении компиляции и воспроизведения

Перегрузка с Info сообщает запрошенное и фактическое число workers, лимит workers по памяти, оценки резерваций страниц, пик зарезервированных байтов отрисовки, допуски планировщика, отложенные страницы, время ожидания, счётчики компиляций и попаданий в cache, завершённый вывод, пиковую конкуренцию стадий, задержку первого результата, общее время выполнения и число скомпилированных страниц к моменту завершения первого bitmap

Владельцем каждого не-nil bitmap в Bitmaps является вызывающий код

Готовые результаты в массиве остаются во владении вызывающего кода после освобождения их активных резерваций, поэтому если весь выходной набор должен удерживаться в бюджете планировщика, используйте RenderLoadedPagesParallelOrdered

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