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;
rfpIgnoresäilyttää vanhan sallivan käyttäytymisenrfpReporttallentaa tukemattomat operaattorit, puuttuvat resurssit, virheelliset objektit, dekoodausvirheet, rekursiorajat ja tukemattomat objektityypitrfpStrictnostaa poikkeuksen ensimmäisessä varajärjestelmässäBX- jaEX-yhteensopivuusosion ulkopuolellaTHotPDF.RenderFallbackDiagnosticLimitrajaa säilytetyn diagnostiikanTHotPDF.LastRenderFallbackDroppedCountraportoi määritetyn rajatun rajan jälkeen pois jätetyt diagnostiikat
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ä