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 и печатное производство