Renderingdiagnostiek en bewerkingstelemetrie
HotPDF onderscheidt weergegeven-pagina-cache-items door elke voor de aanroeper zichtbare toestand die paginapixels kan veranderen en stelt begrensde diagnostiek bloot wanneer paginainhoud niet volledig kan worden weergegeven
Toestandsbewuste cache-varianten
THotPDF.RenderLoadedPageToBitmapCached sleutelt geheugenitems op pagina, DPI, effectieve optionele-inhoud-zichtbaarheid, THotPDF.RenderColourIntent en THotPDF.RenderFallbackPolicy
De persistente cache gebruikt dezelfde toestands-digest, terwijl diagnosticum-producerende terugvalmodi alleen-in-geheugen blijven, zodat een schijf-hit geen overgeslagen-objectberichten kan verliezen
Het wijzigen van een optionele-inhoudsgroep selecteert een andere variant in plaats van de vorige bitmap te verwijderen, zodat het terugschakelen van een laag of kleurintentie eerder werk kan hergebruiken
Kleurintentie
PDF.RenderColourIntent := rciRelativeColorimetric;
Bitmap := PDF.RenderLoadedPageToBitmapCached(0, 144);
rciDocument honoreert elke ri-operator van de inhoudsstroom en blijft de standaard
De vier expliciete waarden overschrijven de intensie-selectie van de inhoudsstroom en worden toegepast op daaropvolgende ICCBased-vul- en -lijnconversies
Terugvalbeleid
PDF.RenderFallbackPolicy := rfpReport;
PDF.RenderFallbackDiagnosticLimit := 256;
Bitmap := PDF.RenderLoadedPageToBitmap(0, 144);
Diagnostics := PDF.GetLastRenderFallbackDiagnostics;
rfpIgnorebehoudt het legacy-permissieve gedragrfpReportlegt niet-ondersteunde operatoren, ontbrekende resources, ongeldige objecten, decode-fouten, recursielimieten en niet-ondersteunde objecttypen vastrfpStrictwerpt bij de eerste terugval buiten eenBX- enEX-compatibiliteitssectieTHotPDF.RenderFallbackDiagnosticLimitbegrenst behouden diagnostiekenTHotPDF.LastRenderFallbackDroppedCountrapporteert diagnostieken die na de geconfigureerde begrensde limiet zijn weggelaten
THotPDF.GetLastRenderFallbackDiagnostics retourneert de behouden set, terwijl THotPDF.ClearLastRenderFallbackDiagnostics deze wist; cached-report-modus-items behouden hun diagnostische set, zodat een geheugencache-hit dezelfde renderingsvolledigheidsinformatie retourneert als de oorspronkelijke weergave
Geünificeerde bewerkingstelemetrie
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 retourneert een THPDFOperationTelemetry-record met wandklok-tijd, huidige-thread-CPU-tijd, geheugen, toewijzing, proces-I/O, filterdecode, cache, object-aantal, succes- en annuleringsmetrieken
Documentladen, synchrone en cached-paginawergave, progressieve-weergave-slices, selectieve stroomoptimalisatie en parallelle afbeeldingsoptimalisatie publiceren dezelfde recordvorm
PeakMemoryBytes is een draagbare documentbewerking-schatting in plaats van de werkset van het besturingssysteem, zodat deze stabiel blijft over hosts en geladen bronbytes, weergegeven bitmap-items, decoded-afbeelding-cachegewicht en piek-filterketen-opslag omvat
PeakProcessMemoryBytes is de grootste bemonsterde proceswerkset, terwijl AllocationCount de grootste bemonsterde toename is van gelijktijdig levende Delphi-geheugenmanager-blokken ten opzichte van de bewerkingsstart in plaats van een levenslang toewijzingstotaal
CPUTimeMicroseconds meet de aanroepende thread, terwijl ReadIOBytes, WriteIOBytes en OtherIOBytes proces-brede tellerdelta's zijn en daarom gelijktijdig werk in hetzelfde proces kunnen omvatten
DecodeInputBytes is gecomprimeerde invoer, DecodeOutputBytes is laatste filterketen-uitvoer en DecodedBytes is geaggregeerd werk over elke filterfase; DecodeExpansionPermille deelt de uiteindelijke uitvoer door de invoer, met 1000 die 1x voorstelt
ScheduledMemoryBytes is de beweringstoelating-schatting, MemorySchedulerWaitMilliseconds legt wachtrijtijd vast en MemorySchedulerDelayed onderscheidt wachtende toelating van het zonder-toewijzing snelle pad
Geheugen- en toewijzingspieken worden bemonsterd op bewerkingsgrenzen, filterketen-voltooiing, progressieve slices en annuleringscheckpoints, zodat ze operationele signalen met lage overhead zijn in plaats van instructie-niveau-profiler-sporen