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;
rfpIgnoreišsaugo senąją leidžiančią elgsenąrfpReportįrašo nepalaikomus operatorius, trūkstamus išteklius, netinkamus objektus, dekodavimo gedimus, rekursijos ribas ir nepalaikomus objektų tipusrfpStrictsukelia pirmojo atsitraukimo metu užBXirEXsuderinamumo sekcijosTHotPDF.RenderFallbackDiagnosticLimitriboja išlaikytą diagnostikąTHotPDF.LastRenderFallbackDroppedCountpraneša diagnostiką, praleistą po sukonfigūruotos ribos
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