THotPDF.RenderLoadedPagesParallel Method
Führt Display-List-Kompilierung und -Wiedergabe als Pipeline über begrenzte Worker aus und behält dabei die Eingabereihenfolge im Ausgabe-Array bei
Deklaration
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;
Verhalten
Die Kompilierung läuft außerhalb des Locks des Display-List-Caches; so können voneinander unabhängige Seiten gleichzeitig kompiliert werden, und die erste fertige Seite kann bereits gerendert werden, bevor die gesamte Eingabemenge kompiliert ist
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
Ist PeakMemorySchedulerEnabled true, wird die effektive Worker-Anzahl ausgehend von der normalisierten Anforderung anhand der größten Seitenschätzung und des aktuell verfügbaren globalen Budgets reduziert; danach hält jede übernommene Seite über Kompilierung und Wiedergabe hinweg ihre eigene, faire Speicherreservierung
Die Überladung mit Info meldet angeforderte und effektive Worker, das aus dem Speicher abgeleitete Worker-Limit, Schätzungen der Seitenreservierungen, den Spitzenwert der reservierten Render-Bytes, Scheduler-Zulassungen, verzögerte Seiten, Wartezeit, Anzahl der Kompilierungen und Cache-Treffer, die fertige Ausgabe, die Spitzen-Parallelität der Stufen, die Latenz bis zum ersten Ergebnis, die Gesamtdauer sowie die Anzahl der Seiten, die beim Abschluss des ersten Bitmaps bereits kompiliert waren
The caller owns every non-nil bitmap in Bitmaps
Fertige Array-Ergebnisse bleiben nach Freigabe ihrer laufenden Reservierungen im Besitz des Aufrufers; verwenden Sie daher RenderLoadedPagesParallelOrdered, wenn auch die vollständige Ausgabemenge innerhalb des Scheduler-Budgets bleiben soll
THPDFParallelRenderPipelineInfo · Display Lists and Print Production