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