Renderöintidiagnostiikka ja operaatiotelemetria

HotPDF erottaa renderöidyn sivun välimuistimerkinnät jokaisen soittajalle näkyvän tilan mukaan, joka voi muuttaa sivun pikseleitä, ja paljastaa rajatun diagnostiikan, kun sivun sisältöä ei voi renderöidä täydellisesti

Tilatietoiset välimuistivariantit

THotPDF.RenderLoadedPageToBitmapCached avaimistaa muistimerkinnät sivun, DPI-arvon, tehokkaan valinnaisen sisällön näkyvyyden, THotPDF.RenderColourIntent-arvon ja THotPDF.RenderFallbackPolicy-arvon mukaan

Pysyvä välimuisti käyttää samaa tilatiivistettä, kun taas diagnostiikkaa tuottavat varajärjestelmätilat pysyvät vain muistissa, joten levyosuma ei voi menettää ohitettujen objektien raportteja

Valinnaisen sisällön ryhmän vaihtaminen valitsee toisen variantin aiemman bittikartan poistamisen sijaan, joten kerroksen tai väritarkoituksen vaihtaminen takaisin voi käyttää aiempaa työtä uudelleen

Väritarkoitus

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

rciDocument kunnioittaa kutakin sisältövirran ri-operaattoria ja pysyy oletuksena

Neljä nimenomaista arvoa ohittavat sisältövirran tarkoituksen valinnan ja sovelletaan myöhempiin ICCBased-täyttö- ja viivakonversioihin

Varajärjestelmäkäytäntö

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

THotPDF.GetLastRenderFallbackDiagnostics palauttaa säilytetyn joukon, kun taas THotPDF.ClearLastRenderFallbackDiagnostics tyhjentää sen; välimuistitettu raporttitilan merkintä säilyttää diagnostiikkajoukkonsa, joten muistivälimuistiosuma palauttaa saman renderöinnin täydellisyystiedon kuin alkuperäinen renderöinti

Yhdistetty operaatiotelemetria

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 palauttaa THPDFOperationTelemetry-tietueen, joka sisältää seinäkelloajan, nykyisen säikeen CPU-ajan, muistin, varauksen, prosessin I/O:n, suodatindekoodauksen, välimuistin, objektimäärän, onnistumisen ja peruutuksen mittarit

Asiakirjan lataaminen, synkroninen ja välimuistitettu sivun renderöinti, progressiiviset renderöintiviipaleet, valikoiva virtaoptimointi ja rinnakkainen kuvan optimointi julkaisevat saman tietueen muodon

PeakMemoryBytes on kannettava asiakirjaoperaation arvio käyttöjärjestelmän prosessin työskentelyjoukon sijaan, joten se pysyy vakaana isäntien yli ja sisältää ladatut lähdetavut, renderöidyt bittikarttamerkinnät, purettujen kuvien välimuistipainon ja suodatinketjun huipputallennuksen

PeakProcessMemoryBytes on suurin mitattu prosessin työskentelyjoukko, kun taas AllocationCount on suurin mitattu samanaikaisesti elävien Delphi-muistinhallinnan lohkojen kasvu suhteessa operaation alkuun eikä elinikäinen varauksen kokonaismäärä

CPUTimeMicroseconds mittaa kutsuvan säikeen, kun taas ReadIOBytes, WriteIOBytes ja OtherIOBytes ovat prosessinlaajuisia laskurieroja ja voivat siksi sisältää samanaikaista työtä samassa prosessissa

DecodeInputBytes on pakattu syöte, DecodeOutputBytes on lopullinen suodatinketjun tuloste ja DecodedBytes on yhteenlaskettu työ jokaisen suodatinvaiheen yli; DecodeExpansionPermille jakaa lopullisen tulosteen syötteellä, ja 1000 edustaa 1x-arvoa

ScheduledMemoryBytes on operaation sisäänpääsyarvio, MemorySchedulerWaitMilliseconds tallentaa jonotusajan ja MemorySchedulerDelayed erottaa jonotetun sisäänpääsyn varauksettomasta nopeasta polusta

Muisti- ja varaushuiput otetaan näytteiksi operaation rajoilla, suodatinketjun valmistuessa, progressiivisissa viipaleissa ja peruutustarkistuspisteissä, joten ne ovat kevyitä operatiivisia signaaleja eivätkä käskykohtaisia profiloijajälkiä

Liittyvät API:t