THotPDF.RenderLoadedPagesParallel Method

Faz pipeline da compilação de display lists e da reprodução através de workers limitados, preservando a ordem de entrada no array de saída

Declaração

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;

Comportamento

A compilação corre fora do lock da cache de display lists, pelo que páginas não relacionadas podem compilar em simultâneo e a primeira página pronta pode começar a renderizar antes de todo o conjunto de entrada estar compilado

The scheduler dynamically balances compile and playback work, caps workers at MaxConcurrency, isolates renderer state per worker, and shares cache entries through protected use counts

Quando PeakMemorySchedulerEnabled é true, o número efetivo de workers é reduzido a partir do pedido normalizado, usando a maior estimativa de página e o orçamento global atualmente disponível; depois, cada página reclamada mantém a sua própria reserva de memória equitativa durante a compilação e a reprodução

O overload com Info reporta os workers pedidos e efetivos, o limite de workers derivado da memória, as estimativas de reserva por página, o pico de bytes de render reservados, as admissões do scheduler, as páginas atrasadas, o tempo de espera, as contagens de compilações e de acertos na cache, a saída concluída, o pico de concorrência por fase, a latência do primeiro resultado, o tempo total decorrido e o número de páginas compiladas quando o primeiro bitmap ficou concluído

The caller owns every non-nil bitmap in Bitmaps

Os resultados concluídos do array continuam a pertencer ao chamador depois de as respetivas reservas em curso serem libertadas, pelo que deve usar RenderLoadedPagesParallelOrdered quando o próprio conjunto de saída completo tiver de permanecer dentro do orçamento do scheduler

THPDFParallelRenderPipelineInfo · Listas de apresentação e produção de impressão