Atvaizdavimo diagnostika ir operacijų telemetrija

HotPDF išskiria atvaizduoto puslapio talpyklos įrašus pagal kiekvieną iškvietėjui matomą būseną, kuri gali pakeisti puslapio pikselius, ir atskleidžia apribotą diagnostiką, kai puslapio turinio negalima atvaizduoti pilnai

Būseną išmanantys talpyklos variantai

THotPDF.RenderLoadedPageToBitmapCached raktuoja atminties įrašus pagal puslapį, DPI, efektyvų pasirenkamo turinio matomumą, THotPDF.RenderColourIntent ir THotPDF.RenderFallbackPolicy

Nuolatinė talpykla naudoja tą pačią būsenos santrauką, o diagnostiką kuriantys atsitraukimo režimai lieka tik atmintyje, kad disko pataikymas negalėtų prarasti praleistų objektų ataskaitų

Pasirenkamo turinio grupės keitimas parenka kitą variantą, o ne ištrina ankstesnį bitmap, todėl sluoksnio arba spalvos tikslo perjungimas atgal gali pakartotinai naudoti ankstesnį darbą

Spalvos tikslas

PDF.RenderColourIntent := rciRelativeColorimetric;
Bitmap := PDF.RenderLoadedPageToBitmapCached(0, 144);

rciDocument gerbia kiekvieno turinio srauto ri operatorių ir lieka numatytuoju

Keturios aiškios reikšmės perrašo turinio srauto tikslo pasirinkimą ir taikomos vėlesnėms ICCBased užpildymo ir potėpio konversijoms

Atsitraukimo politika

PDF.RenderFallbackPolicy := rfpReport;
PDF.RenderFallbackDiagnosticLimit := 256;
Bitmap := PDF.RenderLoadedPageToBitmap(0, 144);
Diagnostics := PDF.GetLastRenderFallbackDiagnostics;

THotPDF.GetLastRenderFallbackDiagnostics grąžina išlaikytą rinkinį, o THotPDF.ClearLastRenderFallbackDiagnostics jį išvalo; talpykliniai ataskaitų režimo įrašai išlaiko savo diagnostikos rinkinį, todėl atminties talpyklos pataikymas grąžina tą pačią atvaizdavimo išsamumo informaciją kaip pirminis atvaizdavimas

Vieninga operacijų telemetrija

if PDF.GetLastOperationTelemetry(Info) then
begin
  WriteLn(Info.OperationName);
  WriteLn(Info.ElapsedMilliseconds);
  WriteLn(Info.CPUTimeMicroseconds);
  WriteLn(Info.PeakProcessMemoryBytes);
  WriteLn(Info.MemorySchedulerWaitMilliseconds);
  WriteLn(Info.DecodeExpansionPermille);
end;

THotPDF.GetLastOperationTelemetry grąžina THPDFOperationTelemetry įrašą, turintį sieninio laiko, dabartinės gijos CPU laiko, atminties, paskirstymo, proceso I/O, filtro dekodavimo, talpyklos, objekto skaičiaus, sėkmės ir atšaukimo metrikas

Dokumento įkėlimas, sinchroninis ir talpyklinis puslapio atvaizdavimas, progresyvūs atvaizdavimo pjūviai, selektyvus srauto optimizavimas ir lygiagretus vaizdo optimizavimas publikuoja tą pačią įrašo formą

PeakMemoryBytes yra nešiojamas dokumento operacijos įvertinimas, o ne operacinės sistemos proceso darbinis rinkinys, todėl jis išlieka stabilus tarp pagrindinių platformų ir apima įkeltus šaltinio baitus, atvaizduotus bitmap įrašus, dekoduoto vaizdo talpyklos svorį ir didžiausią filtro grandinės saugyklą

PeakProcessMemoryBytes yra didžiausias pamatytas proceso darbinis rinkinys, o AllocationCount yra didžiausias pamatytas lygiagrečiai veikiančių Delphi atminties tvarkyklės blokų padidėjimas, palyginti su operacijos pradžia, o ne gyvavimo trukmės paskirstymo suma

CPUTimeMicroseconds matuoja kvietimo giją, o ReadIOBytes, WriteIOBytes ir OtherIOBytes yra visam procesui skirti skaitiklių skirtumai ir todėl gali apimti lygiagretų darbą tame pačiame procese

DecodeInputBytes yra suglaudinta įvestis, DecodeOutputBytes yra galutinė filtro grandinės išvestis, o DecodedBytes yra suvestinis darbas per kiekvieną filtro pakopą; DecodeExpansionPermille dalija galutinę išvestį iš įvesties, o 1000 reiškia 1x

ScheduledMemoryBytes yra operacijos priėmimo įvertinimas, MemorySchedulerWaitMilliseconds įrašo eilės laiką, o MemorySchedulerDelayed skiria eilėje esantį priėmimą nuo be paskirstymo greito kelio

Atminties ir paskirstymo didžiausios reikšmės imamos operacijos ribose, filtro grandinės užbaigimo, progresyvių pjūvių ir atšaukimo kontrolinių taškų metu, todėl jos yra mažos apkrovos operaciniai signalai, o ne instrukcijų lygio profilerio pėdsakai

Susijusios API