THotPDF.RenderLoadedPagesParallel Method
Canaliza la compilación y la reproducción de listas de visualización entre trabajadores acotados mientras preserva el orden de entrada en la matriz 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 bloqueo de la caché de listas de visualización, por lo que las páginas no relacionadas pueden compilarse de forma concurrente y la primera página lista puede comenzar a renderizarse antes de que se compile el conjunto de entrada completo
El programador equilibra dinámicamente el trabajo de compilación y reproducción, limita los trabajadores a MaxConcurrency, aísla el estado del renderizador por trabajador y comparte las entradas de caché mediante recuentos de uso protegidos
Cuando PeakMemorySchedulerEnabled es true, el número efectivo de trabajadores se reduce a partir de la solicitud normalizada usando la estimación de página más grande y el presupuesto global disponible en ese momento; después, cada página reclamada mantiene su propia reserva de memoria justa durante la compilación y la reproducción
La sobrecarga con Info informa de los trabajadores solicitados y efectivos, el límite de trabajadores derivado de la memoria, las estimaciones de reserva de página, el pico de bytes de renderizado reservados, las admisiones del programador, las páginas retrasadas, el tiempo de espera, los recuentos de compilación y aciertos de caché, la salida completada, la concurrencia máxima de etapas, la latencia del primer resultado, el tiempo total transcurrido y el número de páginas compiladas cuando se completó el primer mapa de bits
El llamador es propietario de cada mapa de bits no nil en Bitmaps
Los resultados de la matriz completados siguen siendo propiedad del llamador después de que se liberan sus reservas en curso, así que use RenderLoadedPagesParallelOrdered cuando el conjunto de salida completo deba permanecer dentro del presupuesto del programador
THPDFParallelRenderPipelineInfo · Listas de visualización y producción de impresión