Método THotPDF.RenderLoadedPagesParallel

Canaliza la compilación y la reproducción de display lists entre workers acotados mientras conserva el orden de entrada en el array de salida

Declaración

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;

Comportamiento

La compilación se ejecuta fuera del lock de la caché de display lists, así que páginas no relacionadas pueden compilarse concurrentemente y la primera página lista puede comenzar a renderizarse antes de que el conjunto de entrada completo esté compilado

El scheduler balancea dinámicamente el trabajo de compilación y reproducción, limita los workers a MaxConcurrency, aísla el estado del renderizador por worker y comparte entradas de caché mediante conteos de uso protegidos

Cuando PeakMemorySchedulerEnabled es true, el conteo efectivo de workers se reduce desde la solicitud normalizada usando la estimación de la página más grande y el presupuesto global disponible al momento, y luego cada página reclamada mantiene su propia reserva justa de memoria durante compilación y reproducción

La sobrecarga con Info reporta workers solicitados y efectivos, el límite de workers derivado de memoria, estimaciones de reserva por página, bytes pico de render reservados, admisiones del scheduler, páginas retrasadas, tiempo de espera, conteos de compilación y aciertos de caché, salida completada, concurrencia pico por etapa, latencia del primer resultado, tiempo total transcurrido y la cantidad de páginas compiladas cuando el primer bitmap se completó

Quien llama es dueño de cada bitmap no nil en Bitmaps

Los resultados del array completados siguen siendo propiedad de quien llama después de que sus reservas en vuelo se liberan, así que use RenderLoadedPagesParallelOrdered cuando el conjunto de salida completo debe permanecer dentro del presupuesto del scheduler

THPDFParallelRenderPipelineInfo · Display Lists y producción de impresión