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