THotPDF.RenderLoadedPagesParallel Metodu
Display-list derleme ve playback işlemini sınırlı worker'lara pipeline eder; çıktı dizisinde girdi sırasını korur
Bildirim
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;
Davranış
Derleme, display-list cache kilidi dışında çalışır; böylece birbirinden bağımsız sayfalar eşzamanlı derlenebilir ve tam girdi kümesi derlenmeden önce hazır olan ilk sayfa render'a başlayabilir
Scheduler, derleme ve playback işini dinamik olarak dengeler, worker'ları MaxConcurrency ile sınırlar, renderer durumunu worker başına izole eder ve cache entry'lerini korumalı kullanım sayaçları üzerinden paylaşır
PeakMemorySchedulerEnabled true olduğunda etkin worker sayısı, normalleştirilmiş istekten en büyük sayfa tahmini ve o an kullanılabilir global bütçe kullanılarak düşürülür; sonra talep edilen her sayfa, derleme ve playback boyunca kendi adil bellek rezervasyonunu elinde tutar
Info alan overload; istenen ve etkin worker sayısını, bellekten türetilen worker sınırını, sayfa rezervasyon tahminlerini, tepe rezerve render baytını, scheduler kabul sayısını, gecikmiş sayfaları, bekleme süresini, derleme ve cache-hit sayılarını, tamamlanan çıktıyı, tepe stage eşzamanlılığını, ilk sonuç gecikmesini, toplam geçen süreyi ve ilk bitmap tamamlandığında derlenmiş sayfa sayısını raporlar
Bitmaps içindeki nil olmayan her bitmap'in sahibi çağıran taraftır
Tamamlanan dizi sonuçları, in-flight rezervasyonları serbest bırakıldıktan sonra da çağıranın mülkiyetinde kalır; çıktı kümesinin tamamının scheduler bütçesi içinde kalması gerekiyorsa RenderLoadedPagesParallelOrdered metodunu kullanın
THPDFParallelRenderPipelineInfo · Display List'ler ve Baskı Üretimi