THotPDF.RenderLoadedPagesParallel Method

Exécute en pipeline la compilation et la lecture des display lists sur des workers bornés, tout en préservant l’ordre d’entrée dans le tableau de sortie

Déclaration

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;

Comportement

La compilation s’exécute hors du verrou du cache des display lists : des pages indépendantes peuvent donc être compilées en parallèle, et la première page prête peut commencer à être rendue avant la compilation de l’ensemble des entrées

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

Lorsque PeakMemorySchedulerEnabled est vrai, le nombre effectif de workers est réduit à partir de la demande normalisée, en fonction de la plus grande estimation de page et du budget global actuellement disponible ; chaque page prise en charge détient alors sa propre réservation mémoire équitable pendant la compilation et la lecture

La surcharge avec Info rapporte les workers demandés et effectifs, la limite de workers dérivée de la mémoire, les estimations de réservation par page, le pic d’octets de rendu réservés, les admissions de l’ordonnanceur, les pages différées, le temps d’attente, les nombres de compilations et de cache hits, la sortie terminée, le pic de concurrence par étape, la latence du premier résultat, le temps écoulé total et le nombre de pages compilées lorsque le premier bitmap a été terminé

The caller owns every non-nil bitmap in Bitmaps

Les résultats de tableau terminés restent la propriété de l’appelant une fois leurs réservations en cours libérées ; utilisez donc RenderLoadedPagesParallelOrdered lorsque l’ensemble complet de la sortie doit lui-même rester dans le budget de l’ordonnanceur

THPDFParallelRenderPipelineInfo · Display Lists and Print Production