PDFium Delphi Component Docs

FPdfBenchmark enhed

Enhed: FPdfBenchmark
Udfører gentagbare PDF-ydelsesmålinger og konformitetsgates uden at dele dokument-, side-, formular- eller bitmap-handles mellem gennemløb

Syntax

function PdfBenchmarkStatusName(Status: TPdfBenchmarkStatus): string;
function RunPdfBenchmarkCorpus(const Cases: array of TPdfBenchmarkCase; const Options: TPdfBenchmarkOptions; const CancellationToken: IPdfCancellationToken = nil): TPdfBenchmarkReport;
function RunPdfBenchmarkFiles(const FileNames: array of string; const Options: TPdfBenchmarkOptions; const CancellationToken: IPdfCancellationToken = nil): TPdfBenchmarkReport;

Public Types

TypeDescription
TPdfBenchmarkStatusSluttilstand med pbsPassed, pbsFailed eller pbsSkipped
TPdfBenchmarkCaseInputsti, valgfrit kodeord, enhancement-identifikator, visningsnavn og valgfrie forventede semantiske og pixel-hashes
TPdfBenchmarkCasesDynamisk array af TPdfBenchmarkCase-værdier
TPdfBenchmarkOptionsAntal opvarmnings- og målegennemløb, side- og pixelbudgetter, renderingsindstillinger, hash-valg, selvstændig genåbningsgate, samplinginterval, cancellation og fejlpolitik
TPdfBenchmarkCaseResultÉt case-resultat med byte-størrelser, sidetal, tidstagninger, gennemløb, working-set-samples, hashes, stabilitetsgates, genåbningsgates og fejlbeviser
TPdfBenchmarkCaseResultsDynamisk array af TPdfBenchmarkCaseResult-værdier
TPdfBenchmarkReportOrdninge caseresultater med aggregerede tællere, konformitetsstatus, JSON-eksport og CSV-eksport

Functions and Record Methods

MemberDescription
PdfBenchmarkStatusNameReturnerer det stabile visningsnavn for en TPdfBenchmarkStatus-værdi
TPdfBenchmarkCase.FromFileOpretter en case ud fra en filsti med valgfri enhancement-identifikator og visningsnavn
TPdfBenchmarkOptions.DefaultReturnerer afgrænsede standardværdier for opvarmning, måling, rendering, hashing, genåbningsvalidering og hukommelsessampling
TPdfBenchmarkCaseResult.IsPassedReturnerer True, når casens status er pbsPassed
TPdfBenchmarkReport.PassedCount / FailedCount / SkippedCountTæller resultater pr. slutstatus
TPdfBenchmarkReport.IsConformantReturnerer kun True, når gennemløbet ikke blev cancel'et, og alle cases bestod
TPdfBenchmarkReport.ToJson / ToCsvSerialiserer den komplette rapport til JSON- eller CSV-tekst
TPdfBenchmarkReport.SaveJsonToFile / SaveCsvToFileSkriver den serialiserede rapport til en UTF-8-fil
RunPdfBenchmarkCorpusKører fuldt beskrevne benchmark-cases med de ønskede indstillinger og cancellation-token
RunPdfBenchmarkFilesKører en liste af filnavne med standard-case-metadata og de ønskede indstillinger

Case and Option Fields

RecordPublic fields
TPdfBenchmarkCaseName, EnhancementId, FileName, Password, ExpectedSemanticHash og ExpectedPixelHash
TPdfBenchmarkOptionsWarmupRuns, MeasuredRuns, MaxPages, RenderWidth, RenderHeight, MaxPixelsPerPage, RenderOptions, BackgroundColor, IncludeSemanticHash, IncludePixelHash, VerifyIndependentReopen, MemorySampleIntervalMs og StopOnFailure

Measurement Model

Hvert opvarmnings- og målegennemløb åbner en frisk TPdf-instans fra casens sti, indlæser den via det normale PDFium-baserede API, renderer et afgrænset sideudsnit, beregner de ønskede hashes, gemmer i hukommelsen og frigiver alle handles

Førsteside-metrikken kombinerer dokumentindlæsning og den første afgrænsede siderendering, så den udtrykker tiden til de første brugbare pixels frem for alene parser-opbygning

Render-gennemløbet bruger det målte sidetal og renderingsvarigheden, mens MaxPages, RenderWidth, RenderHeight og MaxPixelsPerPage afgrænser arbejdet inden bitmap-allokering

Den semantiske SHA-256-digest dækker siderækkefølge, siddimensioner, rotationer og UTF-16-tekst, mens pixel-SHA-256-digesten dækker deterministiske bitmap-dimensioner og scanline-bytes

Når selvstændig genåbningsvalidering er slået til, indlæses de gemte bytes i en anden TPdf-instans, og sidetal, semantisk hash og pixel-hash skal matche det målte inputgennemløb

En case fejler, hvis hashes varierer mellem målegennemløbene, en forventet hash ikke matcher, selvstændig genåbning ændrer semantik eller pixels, indlæsning eller gemning fejler, eller en afgrænset operation udløser en fejl

Result Fields

FieldMeaning
InputBytes / SavedBytesKildefilens længde og længden af PDFium-save-outputtet
LoadMillisecondsGennemsnitlig målt varighed af dokumentindlæsning
FirstPageMillisecondsGennemsnit af indlæsning plus første afgrænsede rendering
RenderMilliseconds / RenderPagesPerSecondGennemsnitlig afgrænset renderingsvarighed og afledt sidegennemløb
SaveMilliseconds / ReopenMillisecondsGennemsnitlig varighed af in-memory-save og selvstændig genåbningsvalidering
BaselineWorkingSetBytes / PeakWorkingSetBytesLaveste baseline og højeste samplede proces-working-set på tværs af målegennemløb
PeakWorkingSetIncreaseBytesStørste samplede stigning over den tilsvarende kørings-baseline
SemanticHash / PixelHashLowercase SHA-256-digests, der bruges til stabilitets- og korpusforventningsgates
ReopenSemanticHash / ReopenPixelHashIdentiteter beregnet ud fra den selvstændigt genåbnede gemte fil
StableAcrossRunsTrue, når hvert målegennemløb producerer de samme semantiske og pixel-identiteter
IndependentReopenChecked / IndependentReopenSucceededRapporterer, hvorvidt genåbningsvalidering blev ønsket, og hvorvidt genåbningen lykkedes
EquivalentAfterReopenTrue, når den selvstændigt genåbnede gemte fil bevarer sidetal og de valgte identiteter
ExpectedSemanticHashMatched / ExpectedPixelHashMatchedRapporterer hver konfigureret korpusforventningsgate uafhængigt

Report and Result Identity Fields

RecordPublic fields
TPdfBenchmarkCaseResultName, EnhancementId, FileName, Status, ErrorText, PageCount, PagesRendered, WarmupRuns og MeasuredRuns ud over de måle- og gate-felter, der er listet ovenfor
TPdfBenchmarkReportResults indeholder de ordninge caseresultater, og Cancelled registrerer terminal cancellation

Remarks

Example

uses FPdfBenchmark;

var
  Cases: TPdfBenchmarkCases;
  Options: TPdfBenchmarkOptions;
  Report: TPdfBenchmarkReport;
begin
  SetLength(Cases, 1);
  Cases[0] := TPdfBenchmarkCase.FromFile('C:\Corpus\sample.pdf', 100, 'release-sample');
  Options := TPdfBenchmarkOptions.Default;
  Options.MaxPages := 8;
  Options.RenderWidth := 1024;
  Report := RunPdfBenchmarkCorpus(Cases, Options);
  Report.SaveJsonToFile('C:\Corpus\benchmark.json');
  Report.SaveCsvToFile('C:\Corpus\benchmark.csv');
end;