THotPDF.RenderLoadedPagesParallel Method

Potokuje kompilację i odtwarzanie display-list na ograniczonej liczbie workerów, zachowując kolejność wejściową w tablicy wynikowej

Deklaracja

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;

Zachowanie

Kompilacja działa poza blokadą cache display-list, więc niepowiązane strony mogą być kompilowane współbieżnie, a pierwsza gotowa strona może zacząć się renderować, zanim całe wejście zostanie skompilowane

Scheduler dynamicznie równoważy pracę kompilacji i odtwarzania, ogranicza liczbę workerów do MaxConcurrency, izoluje stan renderera per worker i współdzieli wpisy cache przez chronione liczniki użyć

Gdy PeakMemorySchedulerEnabled jest true, efektywna liczba workerów jest redukowana z znormalizowanego żądania na podstawie największego szacunku strony i aktualnie dostępnego globalnego budżetu, a każda przyznana strona trzyma własną sprawiedliwą rezerwację pamięci przez kompilację i odtwarzanie

Wariant z Info raportuje żądane i efektywne workery, limit workerów wynikający z pamięci, szacunki rezerwacji stron, szczytową liczbę zarezerwowanych bajtów renderu, przyjęcia przez scheduler, opóźnione strony, czas oczekiwania, liczniki kompilacji i trafień w cache, ukończone wyjście, szczytową współbieżność etapów, opóźnienie pierwszego wyniku, całkowity czas oraz liczbę stron skompilowanych w chwili ukończenia pierwszej bitmapy

Każda nie-nilowa bitmapa w Bitmaps pozostaje własnością wywołującego

Ukończone wyniki w tablicy pozostają własnością wywołującego po zwolnieniu swoich rezerwacji w toku, więc gdy cały zestaw wyjściowy ma mieścić się w budżecie schedulera, użyj RenderLoadedPagesParallelOrdered

THPDFParallelRenderPipelineInfo · Listy wyświetlania i produkcja poligraficzna