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;

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

Povezani API-ji