Dijagnostika prikazivanja i telemetrija operacija
HotPDF razlikuje unose u predmemoriji prikazanih stranica prema svakom stanju vidljivom pozivatelju koje može promijeniti piksele stranice i izlaže omeđenu dijagnostiku kada se sadržaj stranice ne može u potpunosti prikazati
Varijante predmemorije svjesne stanja
THotPDF.RenderLoadedPageToBitmapCached ključa memorijske unose prema stranici, DPI, stvarnoj vidljivosti neobaveznog sadržaja, THotPDF.RenderColourIntent-u i THotPDF.RenderFallbackPolicy-ju
Trajna predmemorija koristi isti sažetak stanja, dok načini rezervnog povratka koji proizvode dijagnostiku ostaju samo u memoriji tako da pogodak diska ne može izgubiti izvješća preskočenih objekata
Promjena grupe neobaveznog sadržaja odabire drugu varijantu umjesto brisanja prethodnog bitmapa, pa se vraćanjem sloja ili namjere boja mogu ponovno iskoristiti raniji rad
Namjera boja
PDF.RenderColourIntent := rciRelativeColorimetric;
Bitmap := PDF.RenderLoadedPageToBitmapCached(0, 144);
rciDocument poštuje svaki operator ri u toku sadržaja i ostaje zadana vrijednost
Četiri izričite vrijednosti nadjačavaju odabir namjere toka sadržaja i primjenjuju se na kasnije ICCBased ispune i pretvorbe obrisa
Politika rezervnog povratka
PDF.RenderFallbackPolicy := rfpReport;
PDF.RenderFallbackDiagnosticLimit := 256;
Bitmap := PDF.RenderLoadedPageToBitmap(0, 144);
Diagnostics := PDF.GetLastRenderFallbackDiagnostics;
rfpIgnorečuva naslijeđeno permisivno ponašanjerfpReportbilježi nepodržane operatore, nedostajuće resurse, neispravne objekte, neuspjehe dekodiranja, ograničenja rekurzije i nepodržane tipove objekatarfpStrictpodiže pogrešku pri prvom rezervnom povratku izvan odsječka kompatibilnostiBXiEXTHotPDF.RenderFallbackDiagnosticLimitomeđuje zadržanu dijagnostikuTHotPDF.LastRenderFallbackDroppedCountizvještava o dijagnostici izostavljenoj nakon konfiguriranog ograničenja
THotPDF.GetLastRenderFallbackDiagnostics vraća zadržani skup, dok ga THotPDF.ClearLastRenderFallbackDiagnostics čisti; unosi načina izvješćivanja u predmemoriji zadržavaju svoj dijagnostički skup, pa pogodak predmemorije vraća iste informacije o potpunosti prikazivanja kao izvorno prikazivanje
Ujedinjena telemetrija operacija
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 vraća zapis THPDFOperationTelemetry koji sadrži zidno vrijeme, CPU vrijeme trenutne niti, memoriju, dodjelu, procesni unos-izlaz, dekodiranje filtra, predmemoriju, brojanje objekata, uspjeh i metriku otkazivanja
Učitavanje dokumenta, sinkrono i predmemorirano prikazivanje stranica, progresivni odsječci prikazivanja, selektivna optimizacija tokova i paralelna optimizacija slika objavljuju isti oblik zapisa
PeakMemoryBytes je prijenosna procjena operacije dokumenta, a ne radni skup procesa operacijskog sustava, pa ostaje stabilan među domaćinima i uključuje učitane izvorne bajtove, unose prikazanih bitmapa, težinu predmemorije dekodiranih slika i vršnu pohranu lanca filtara
PeakProcessMemoryBytes je najveći uzorkovan radni skup procesa, dok je AllocationCount najveći uzorkovan porast istodobno živih blokova Delphi upravitelja memorije u odnosu na početak operacije, a ne ukupna dodjela tijekom životnog vijeka
CPUTimeMicroseconds mjeri pozivajuću nit, dok su ReadIOBytes, WriteIOBytes i OtherIOBytes razlike brojila na razini procesa pa mogu uključivati istodobni rad u istom procesu
DecodeInputBytes je komprimirani ulaz, DecodeOutputBytes je konačni izlaz lanca filtara, a DecodedBytes je agregirani rad kroz svaki stupanj filtra; DecodeExpansionPermille dijeli konačni izlaz s ulazom, pri čemu 1000 predstavlja 1x
ScheduledMemoryBytes je procjena prijema operacije, MemorySchedulerWaitMilliseconds bilježi vrijeme čekanja u redu, a MemorySchedulerDelayed razlikuje redovno prikupljanje od brze putanje bez dodjele
Vrhovi memorije i dodjele uzorkuju se na granicama operacija, dovršenju lanca filtara, progresivnim odsječcima i točkama provjere otkazivanja, pa su to signali niskih režijskih troškova, a ne tragovi profila na razini instrukcija