Penjadwalan Memori Puncak
HotPDF mengizinkan operasi ber-jejak-besar yang bersaing melalui satu anggaran byte seluruh-proses sebelum mereka mengalokasikan set kerja utama
Operasi yang tercakup
- Pemuatan dokumen
- Pemuatan dokumen
- Rendering halaman sinkron, ter-cache, dan progresif
- Optimasi aliran selektif
- Optimasi gambar paralel terbatas
Setiap operasi memesan perkiraan konservatif yang diturunkan dari ukuran sumber, dimensi render, DPI, ambang aliran, dan jumlah pekerja, lalu melepaskan reservasi di batas telemetri operasi yang ada
Kebijakan penerimaan
- Anggaran default seluruh-proses adalah
536870912byte - Nilai
0menonaktifkan pembatasan anggaran - Penunggu diterima dalam urutan FIFO sehingga permintaan kecil yang datang kemudian tidak membuat permintaan besar sebelumnya kelaparan
- Permintaan lebih besar dari anggaran yang dikonfigurasi hanya dapat berjalan saat tidak ada reservasi lain yang aktif
- Menaikkan anggaran dapat menerima kerja antrean segera, sedangkan menurunkannya tidak pernah mengganggu kerja aktif
- Antrean penunggu memeriksa token pembatalan operasi pada interval 50 ms terbatas
Jalur tanpa-kontensi tidak mengalokasikan event tunggu, sedangkan operasi terkontensi menggunakan satu event privat dan tidak berputar
Konfigurasi
PDF.PeakMemorySchedulerEnabled := True;
PDF.PeakMemorySchedulerBudgetBytes := 768 * 1024 * 1024;
PDF.ResetPeakMemorySchedulerStatistics;
if PDF.GetPeakMemorySchedulerStatistics(Stats) then
begin
WriteLn(Stats.PeakReservedBytes);
WriteLn(Stats.DelayedAdmissionCount);
WriteLn(Stats.TotalWaitMilliseconds);
end;
PeakMemorySchedulerEnabled bersifat per-komponen dan dapat melewati penerimaan untuk kerja terisolasi yang tepercaya, sedangkan PeakMemorySchedulerBudgetBytes mengonfigurasi penjadwal bersama seluruh-proses
Statistik
THPDFPeakMemorySchedulerStatistics melaporkan byte terpesan saat ini dan puncak, reservasi aktif saat ini dan puncak, penunggu saat ini dan puncak, penerimaan total dan tertunda, penerimaan berukuran-berlebih, pembatalan, dan waktu tunggu agregat
THPDFOperationTelemetry.ScheduledMemoryBytes, MemorySchedulerWaitMilliseconds, dan MemorySchedulerDelayed mengatribusikan biaya penjadwalan ke operasi terbaru