diff --git a/BenchmarkDotNet.Artifacts/DbfSharp.Benchmark.DbfReaderBenchmarks-20250808-130146.log b/BenchmarkDotNet.Artifacts/DbfSharp.Benchmark.DbfReaderBenchmarks-20250808-130146.log new file mode 100644 index 0000000..cf86d85 --- /dev/null +++ b/BenchmarkDotNet.Artifacts/DbfSharp.Benchmark.DbfReaderBenchmarks-20250808-130146.log @@ -0,0 +1,93 @@ +// Validating benchmarks: +// ***** BenchmarkRunner: Start ***** +// ***** Found 1 benchmark(s) in total ***** +// ***** Building 1 exe(s) in Parallel: Start ***** +// start dotnet restore /p:UseSharedCompilation=false /p:BuildInParallel=false /m:1 /p:Deterministic=true /p:Optimize=true /p:ArtifactsPath="/app/DbfSharp.Benchmark/bin/Release/net9.0/DbfSharp.Benchmark-DefaultJob-1/" /p:OutDir="/app/DbfSharp.Benchmark/bin/Release/net9.0/DbfSharp.Benchmark-DefaultJob-1/bin/Release/net9.0/" /p:OutputPath="/app/DbfSharp.Benchmark/bin/Release/net9.0/DbfSharp.Benchmark-DefaultJob-1/bin/Release/net9.0/" /p:PublishDir="/app/DbfSharp.Benchmark/bin/Release/net9.0/DbfSharp.Benchmark-DefaultJob-1/publish/" in /app/DbfSharp.Benchmark/bin/Release/net9.0/DbfSharp.Benchmark-DefaultJob-1 +// command took 3.67 sec and exited with 0 +// start dotnet build -c Release --no-restore /p:UseSharedCompilation=false /p:BuildInParallel=false /m:1 /p:Deterministic=true /p:Optimize=true /p:ArtifactsPath="/app/DbfSharp.Benchmark/bin/Release/net9.0/DbfSharp.Benchmark-DefaultJob-1/" /p:OutDir="/app/DbfSharp.Benchmark/bin/Release/net9.0/DbfSharp.Benchmark-DefaultJob-1/bin/Release/net9.0/" /p:OutputPath="/app/DbfSharp.Benchmark/bin/Release/net9.0/DbfSharp.Benchmark-DefaultJob-1/bin/Release/net9.0/" /p:PublishDir="/app/DbfSharp.Benchmark/bin/Release/net9.0/DbfSharp.Benchmark-DefaultJob-1/publish/" --output "/app/DbfSharp.Benchmark/bin/Release/net9.0/DbfSharp.Benchmark-DefaultJob-1/bin/Release/net9.0/" in /app/DbfSharp.Benchmark/bin/Release/net9.0/DbfSharp.Benchmark-DefaultJob-1 +// command took 17.33 sec and exited with 0 +// ***** Done, took 00:00:21 (21.13 sec) ***** +// Found 1 benchmarks: +// DbfReaderBenchmarks.'Read all records from a DBF file': DefaultJob + +// ************************** +// Benchmark: DbfReaderBenchmarks.'Read all records from a DBF file': DefaultJob +// *** Execute *** +// Launch: 1 / 1 +// Execute: dotnet DbfSharp.Benchmark-DefaultJob-1.dll --anonymousPipes 113 114 --benchmarkName DbfSharp.Benchmark.DbfReaderBenchmarks.ReadAllRecords --job Default --benchmarkId 0 in /app/DbfSharp.Benchmark/bin/Release/net9.0/DbfSharp.Benchmark-DefaultJob-1/bin/Release/net9.0 +// Failed to set up high priority (Permission denied). In order to run benchmarks with high priority, make sure you have the right permissions. +// BeforeAnythingElse + +// Benchmark Process Environment Information: +// BenchmarkDotNet v0.15.2 +// Runtime=.NET 9.0.8 (9.0.825.36511), X64 RyuJIT AVX2 +// GC=Concurrent Workstation +// HardwareIntrinsics=AVX2,AES,BMI1,BMI2,FMA,LZCNT,PCLMUL,POPCNT VectorSize=256 +// Job: DefaultJob + +OverheadJitting 1: 1 op, 299667.00 ns, 299.6670 us/op + +System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. + ---> DbfSharp.Core.Exceptions.DbfNotFoundException: DBF file not found: people.dbf + at DbfSharp.Core.DbfReader.Create(String filePath, DbfReaderOptions options) in /app/DbfSharp.Core/DbfReader.cs:line 340 + at DbfSharp.Benchmark.DbfReaderBenchmarks.ReadAllRecords() in /app/DbfSharp.Benchmark/DbfReaderBenchmarks.cs:line 14 + at BenchmarkDotNet.Autogenerated.Runnable_0.WorkloadActionNoUnroll(Int64 invokeCount) in /app/DbfSharp.Benchmark/bin/Release/net9.0/DbfSharp.Benchmark-DefaultJob-1/DbfSharp.Benchmark-DefaultJob-1.notcs:line 311 + at BenchmarkDotNet.Engines.Engine.Measure(Action`1 action, Int64 invokeCount) + at BenchmarkDotNet.Engines.Engine.RunIteration(IterationData data) + at BenchmarkDotNet.Engines.EngineFactory.Jit(Engine engine, Int32 jitIndex, Int32 invokeCount, Int32 unrollFactor) + at BenchmarkDotNet.Engines.EngineFactory.CreateReadyToRun(EngineParameters engineParameters) + at BenchmarkDotNet.Autogenerated.Runnable_0.Run(IHost host, String benchmarkName) in /app/DbfSharp.Benchmark/bin/Release/net9.0/DbfSharp.Benchmark-DefaultJob-1/DbfSharp.Benchmark-DefaultJob-1.notcs:line 176 + at System.RuntimeMethodHandle.InvokeMethod(Object target, Void** arguments, Signature sig, Boolean isConstructor) + at System.Reflection.MethodBaseInvoker.InvokeDirectByRefWithFewArgs(Object obj, Span`1 copyOfArgs, BindingFlags invokeAttr) + --- End of inner exception stack trace --- + at System.Reflection.MethodBaseInvoker.InvokeDirectByRefWithFewArgs(Object obj, Span`1 copyOfArgs, BindingFlags invokeAttr) + at System.Reflection.MethodBaseInvoker.InvokeWithFewArgs(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) + at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) + at BenchmarkDotNet.Autogenerated.UniqueProgramName.AfterAssemblyLoadingAttached(String[] args) in /app/DbfSharp.Benchmark/bin/Release/net9.0/DbfSharp.Benchmark-DefaultJob-1/DbfSharp.Benchmark-DefaultJob-1.notcs:line 57 +// AfterAll +No Workload Results were obtained from the run. +// Benchmark Process 4820 has exited with code 255. + +// ** Remained 0 (0.0 %) benchmark(s) to run. Estimated finish 2025-08-08 13:02 (0h 0m from now) ** +// ***** BenchmarkRunner: Finish ***** + +// * Export * + BenchmarkDotNet.Artifacts/results/DbfSharp.Benchmark.DbfReaderBenchmarks-report.csv + BenchmarkDotNet.Artifacts/results/DbfSharp.Benchmark.DbfReaderBenchmarks-report-github.md + BenchmarkDotNet.Artifacts/results/DbfSharp.Benchmark.DbfReaderBenchmarks-report.html + +// * Detailed results * +DbfReaderBenchmarks.'Read all records from a DBF file': DefaultJob +Runtime = .NET 9.0.8 (9.0.825.36511), X64 RyuJIT AVX2; GC = Concurrent Workstation +There are not any results runs + +// * Summary * + +BenchmarkDotNet v0.15.2, Linux Ubuntu 24.04.2 LTS (Noble Numbat) +Intel Xeon Processor 2.30GHz, 1 CPU, 4 logical and 4 physical cores +.NET SDK 9.0.109 + [Host] : .NET 9.0.8 (9.0.825.36511), X64 RyuJIT AVX2 + DefaultJob : .NET 9.0.8 (9.0.825.36511), X64 RyuJIT AVX2 + + +| Method | Mean | Error | +|----------------------------------- |-----:|------:| +| 'Read all records from a DBF file' | NA | NA | + +Benchmarks with issues: + DbfReaderBenchmarks.'Read all records from a DBF file': DefaultJob + +// * Legends * + Mean : Arithmetic mean of all measurements + Error : Half of 99.9% confidence interval + 1 ns : 1 Nanosecond (0.000000001 sec) + +// * Diagnostic Output - MemoryDiagnoser * + + +// ***** BenchmarkRunner: End ***** +Run time: 00:00:00 (0.4 sec), executed benchmarks: 1 + +Global total time: 00:00:21 (21.71 sec), executed benchmarks: 1 +// * Artifacts cleanup * +Artifacts cleanup is finished diff --git a/BenchmarkDotNet.Artifacts/DbfSharp.Benchmark.DbfReaderBenchmarks-20250808-130308.log b/BenchmarkDotNet.Artifacts/DbfSharp.Benchmark.DbfReaderBenchmarks-20250808-130308.log new file mode 100644 index 0000000..e292fbc --- /dev/null +++ b/BenchmarkDotNet.Artifacts/DbfSharp.Benchmark.DbfReaderBenchmarks-20250808-130308.log @@ -0,0 +1,176 @@ +// Validating benchmarks: +// ***** BenchmarkRunner: Start ***** +// ***** Found 1 benchmark(s) in total ***** +// ***** Building 1 exe(s) in Parallel: Start ***** +// start dotnet restore /p:UseSharedCompilation=false /p:BuildInParallel=false /m:1 /p:Deterministic=true /p:Optimize=true /p:ArtifactsPath="/app/DbfSharp.Benchmark/bin/Release/net9.0/DbfSharp.Benchmark-DefaultJob-1/" /p:OutDir="/app/DbfSharp.Benchmark/bin/Release/net9.0/DbfSharp.Benchmark-DefaultJob-1/bin/Release/net9.0/" /p:OutputPath="/app/DbfSharp.Benchmark/bin/Release/net9.0/DbfSharp.Benchmark-DefaultJob-1/bin/Release/net9.0/" /p:PublishDir="/app/DbfSharp.Benchmark/bin/Release/net9.0/DbfSharp.Benchmark-DefaultJob-1/publish/" in /app/DbfSharp.Benchmark/bin/Release/net9.0/DbfSharp.Benchmark-DefaultJob-1 +// command took 6.62 sec and exited with 0 +// start dotnet build -c Release --no-restore /p:UseSharedCompilation=false /p:BuildInParallel=false /m:1 /p:Deterministic=true /p:Optimize=true /p:ArtifactsPath="/app/DbfSharp.Benchmark/bin/Release/net9.0/DbfSharp.Benchmark-DefaultJob-1/" /p:OutDir="/app/DbfSharp.Benchmark/bin/Release/net9.0/DbfSharp.Benchmark-DefaultJob-1/bin/Release/net9.0/" /p:OutputPath="/app/DbfSharp.Benchmark/bin/Release/net9.0/DbfSharp.Benchmark-DefaultJob-1/bin/Release/net9.0/" /p:PublishDir="/app/DbfSharp.Benchmark/bin/Release/net9.0/DbfSharp.Benchmark-DefaultJob-1/publish/" --output "/app/DbfSharp.Benchmark/bin/Release/net9.0/DbfSharp.Benchmark-DefaultJob-1/bin/Release/net9.0/" in /app/DbfSharp.Benchmark/bin/Release/net9.0/DbfSharp.Benchmark-DefaultJob-1 +// command took 18.26 sec and exited with 0 +// ***** Done, took 00:00:25 (25.05 sec) ***** +// Found 1 benchmarks: +// DbfReaderBenchmarks.'Read all records from a DBF file': DefaultJob + +// ************************** +// Benchmark: DbfReaderBenchmarks.'Read all records from a DBF file': DefaultJob +// *** Execute *** +// Launch: 1 / 1 +// Execute: dotnet DbfSharp.Benchmark-DefaultJob-1.dll --anonymousPipes 113 114 --benchmarkName DbfSharp.Benchmark.DbfReaderBenchmarks.ReadAllRecords --job Default --benchmarkId 0 in /app/DbfSharp.Benchmark/bin/Release/net9.0/DbfSharp.Benchmark-DefaultJob-1/bin/Release/net9.0 +// Failed to set up high priority (Permission denied). In order to run benchmarks with high priority, make sure you have the right permissions. +// BeforeAnythingElse + +// Benchmark Process Environment Information: +// BenchmarkDotNet v0.15.2 +// Runtime=.NET 9.0.8 (9.0.825.36511), X64 RyuJIT AVX2 +// GC=Concurrent Workstation +// HardwareIntrinsics=AVX2,AES,BMI1,BMI2,FMA,LZCNT,PCLMUL,POPCNT VectorSize=256 +// Job: DefaultJob + +OverheadJitting 1: 1 op, 288501.00 ns, 288.5010 us/op +WorkloadJitting 1: 1 op, 30140263.00 ns, 30.1403 ms/op + +OverheadJitting 2: 16 op, 363121.00 ns, 22.6951 us/op +WorkloadJitting 2: 16 op, 1446368.00 ns, 90.3980 us/op + +WorkloadPilot 1: 16 op, 939888.00 ns, 58.7430 us/op +WorkloadPilot 2: 32 op, 1814393.00 ns, 56.6998 us/op +WorkloadPilot 3: 64 op, 3307920.00 ns, 51.6863 us/op +WorkloadPilot 4: 128 op, 6482129.00 ns, 50.6416 us/op +WorkloadPilot 5: 256 op, 13951201.00 ns, 54.4969 us/op +WorkloadPilot 6: 512 op, 22474772.00 ns, 43.8960 us/op +WorkloadPilot 7: 1024 op, 39491888.00 ns, 38.5663 us/op +WorkloadPilot 8: 2048 op, 83103041.00 ns, 40.5777 us/op +WorkloadPilot 9: 4096 op, 179982396.00 ns, 43.9410 us/op +WorkloadPilot 10: 8192 op, 413165656.00 ns, 50.4353 us/op +WorkloadPilot 11: 16384 op, 659961306.00 ns, 40.2808 us/op + +OverheadWarmup 1: 16384 op, 53474.00 ns, 3.2638 ns/op +OverheadWarmup 2: 16384 op, 51684.00 ns, 3.1545 ns/op +OverheadWarmup 3: 16384 op, 51425.00 ns, 3.1387 ns/op +OverheadWarmup 4: 16384 op, 58996.00 ns, 3.6008 ns/op +OverheadWarmup 5: 16384 op, 52501.00 ns, 3.2044 ns/op +OverheadWarmup 6: 16384 op, 51480.00 ns, 3.1421 ns/op +OverheadWarmup 7: 16384 op, 51500.00 ns, 3.1433 ns/op +OverheadWarmup 8: 16384 op, 51458.00 ns, 3.1407 ns/op + +OverheadActual 1: 16384 op, 52706.00 ns, 3.2169 ns/op +OverheadActual 2: 16384 op, 51699.00 ns, 3.1555 ns/op +OverheadActual 3: 16384 op, 51655.00 ns, 3.1528 ns/op +OverheadActual 4: 16384 op, 51481.00 ns, 3.1422 ns/op +OverheadActual 5: 16384 op, 52581.00 ns, 3.2093 ns/op +OverheadActual 6: 16384 op, 51494.00 ns, 3.1429 ns/op +OverheadActual 7: 16384 op, 51531.00 ns, 3.1452 ns/op +OverheadActual 8: 16384 op, 51481.00 ns, 3.1422 ns/op +OverheadActual 9: 16384 op, 52440.00 ns, 3.2007 ns/op +OverheadActual 10: 16384 op, 51471.00 ns, 3.1415 ns/op +OverheadActual 11: 16384 op, 51420.00 ns, 3.1384 ns/op +OverheadActual 12: 16384 op, 51507.00 ns, 3.1437 ns/op +OverheadActual 13: 16384 op, 52377.00 ns, 3.1968 ns/op +OverheadActual 14: 16384 op, 51606.00 ns, 3.1498 ns/op +OverheadActual 15: 16384 op, 51532.00 ns, 3.1453 ns/op + +OverheadWarmup 1: 16384 op, 51718.00 ns, 3.1566 ns/op +OverheadWarmup 2: 16384 op, 52372.00 ns, 3.1965 ns/op +OverheadWarmup 3: 16384 op, 51446.00 ns, 3.1400 ns/op +OverheadWarmup 4: 16384 op, 58767.00 ns, 3.5869 ns/op +OverheadWarmup 5: 16384 op, 51481.00 ns, 3.1422 ns/op +OverheadWarmup 6: 16384 op, 52266.00 ns, 3.1901 ns/op + +// BeforeActualRun +WorkloadActual 1: 16384 op, 393475292.00 ns, 24.0158 us/op +WorkloadActual 2: 16384 op, 399702934.00 ns, 24.3959 us/op +WorkloadActual 3: 16384 op, 380332294.00 ns, 23.2136 us/op +WorkloadActual 4: 16384 op, 391050207.00 ns, 23.8678 us/op +WorkloadActual 5: 16384 op, 388226419.00 ns, 23.6955 us/op +WorkloadActual 6: 16384 op, 390641857.00 ns, 23.8429 us/op +WorkloadActual 7: 16384 op, 390583348.00 ns, 23.8393 us/op +WorkloadActual 8: 16384 op, 387881649.00 ns, 23.6744 us/op +WorkloadActual 9: 16384 op, 387307597.00 ns, 23.6394 us/op +WorkloadActual 10: 16384 op, 393756155.00 ns, 24.0330 us/op +WorkloadActual 11: 16384 op, 390015344.00 ns, 23.8046 us/op +WorkloadActual 12: 16384 op, 392858004.00 ns, 23.9781 us/op +WorkloadActual 13: 16384 op, 390921771.00 ns, 23.8600 us/op +WorkloadActual 14: 16384 op, 392079844.00 ns, 23.9307 us/op +WorkloadActual 15: 16384 op, 386203479.00 ns, 23.5720 us/op + +// AfterActualRun +WorkloadResult 1: 16384 op, 393423760.00 ns, 24.0127 us/op +WorkloadResult 2: 16384 op, 380280762.00 ns, 23.2105 us/op +WorkloadResult 3: 16384 op, 390998675.00 ns, 23.8647 us/op +WorkloadResult 4: 16384 op, 388174887.00 ns, 23.6923 us/op +WorkloadResult 5: 16384 op, 390590325.00 ns, 23.8397 us/op +WorkloadResult 6: 16384 op, 390531816.00 ns, 23.8362 us/op +WorkloadResult 7: 16384 op, 387830117.00 ns, 23.6713 us/op +WorkloadResult 8: 16384 op, 387256065.00 ns, 23.6362 us/op +WorkloadResult 9: 16384 op, 393704623.00 ns, 24.0298 us/op +WorkloadResult 10: 16384 op, 389963812.00 ns, 23.8015 us/op +WorkloadResult 11: 16384 op, 392806472.00 ns, 23.9750 us/op +WorkloadResult 12: 16384 op, 390870239.00 ns, 23.8568 us/op +WorkloadResult 13: 16384 op, 392028312.00 ns, 23.9275 us/op +WorkloadResult 14: 16384 op, 386151947.00 ns, 23.5688 us/op +// GC: 47 11 0 1129619968 16384 +// Threading: 0 0 16384 + +// AfterAll +// Benchmark Process 5560 has exited with code 0. + +Mean = 23.780 μs, StdErr = 0.058 μs (0.24%), N = 14, StdDev = 0.216 μs +Min = 23.210 μs, Q1 = 23.677 μs, Median = 23.838 μs, Q3 = 23.912 μs, Max = 24.030 μs +IQR = 0.235 μs, LowerFence = 23.324 μs, UpperFence = 24.265 μs +ConfidenceInterval = [23.537 μs; 24.024 μs] (CI 99.9%), Margin = 0.243 μs (1.02% of Mean) +Skewness = -1.13, Kurtosis = 3.84, MValue = 2 + +// ** Remained 0 (0.0 %) benchmark(s) to run. Estimated finish 2025-08-08 13:03 (0h 0m from now) ** +// ***** BenchmarkRunner: Finish ***** + +// * Export * + BenchmarkDotNet.Artifacts/results/DbfSharp.Benchmark.DbfReaderBenchmarks-report.csv + BenchmarkDotNet.Artifacts/results/DbfSharp.Benchmark.DbfReaderBenchmarks-report-github.md + BenchmarkDotNet.Artifacts/results/DbfSharp.Benchmark.DbfReaderBenchmarks-report.html + +// * Detailed results * +DbfReaderBenchmarks.'Read all records from a DBF file': DefaultJob +Runtime = .NET 9.0.8 (9.0.825.36511), X64 RyuJIT AVX2; GC = Concurrent Workstation +Mean = 23.780 μs, StdErr = 0.058 μs (0.24%), N = 14, StdDev = 0.216 μs +Min = 23.210 μs, Q1 = 23.677 μs, Median = 23.838 μs, Q3 = 23.912 μs, Max = 24.030 μs +IQR = 0.235 μs, LowerFence = 23.324 μs, UpperFence = 24.265 μs +ConfidenceInterval = [23.537 μs; 24.024 μs] (CI 99.9%), Margin = 0.243 μs (1.02% of Mean) +Skewness = -1.13, Kurtosis = 3.84, MValue = 2 +-------------------- Histogram -------------------- +[23.093 μs ; 24.147 μs) | @@@@@@@@@@@@@@ +--------------------------------------------------- + +// * Summary * + +BenchmarkDotNet v0.15.2, Linux Ubuntu 24.04.2 LTS (Noble Numbat) +Intel Xeon Processor 2.30GHz, 1 CPU, 4 logical and 4 physical cores +.NET SDK 9.0.109 + [Host] : .NET 9.0.8 (9.0.825.36511), X64 RyuJIT AVX2 + DefaultJob : .NET 9.0.8 (9.0.825.36511), X64 RyuJIT AVX2 + + +| Method | Mean | Error | StdDev | Gen0 | Gen1 | Allocated | +|----------------------------------- |---------:|---------:|---------:|-------:|-------:|----------:| +| 'Read all records from a DBF file' | 23.78 μs | 0.243 μs | 0.216 μs | 2.8687 | 0.6714 | 67.33 KB | + +// * Hints * +Outliers + DbfReaderBenchmarks.'Read all records from a DBF file': Default -> 1 outlier was removed, 2 outliers were detected (23.21 μs, 24.40 μs) + +// * Legends * + Mean : Arithmetic mean of all measurements + Error : Half of 99.9% confidence interval + StdDev : Standard deviation of all measurements + Gen0 : GC Generation 0 collects per 1000 operations + Gen1 : GC Generation 1 collects per 1000 operations + Allocated : Allocated memory per single operation (managed only, inclusive, 1KB = 1024B) + 1 μs : 1 Microsecond (0.000001 sec) + +// * Diagnostic Output - MemoryDiagnoser * + + +// ***** BenchmarkRunner: End ***** +Run time: 00:00:08 (8.2 sec), executed benchmarks: 1 + +Global total time: 00:00:33 (33.42 sec), executed benchmarks: 1 +// * Artifacts cleanup * +Artifacts cleanup is finished diff --git a/BenchmarkDotNet.Artifacts/DbfSharp.Benchmark.DbfReaderBenchmarks-20250808-130425.log b/BenchmarkDotNet.Artifacts/DbfSharp.Benchmark.DbfReaderBenchmarks-20250808-130425.log new file mode 100644 index 0000000..a499fa3 --- /dev/null +++ b/BenchmarkDotNet.Artifacts/DbfSharp.Benchmark.DbfReaderBenchmarks-20250808-130425.log @@ -0,0 +1,156 @@ +// Validating benchmarks: +// ***** BenchmarkRunner: Start ***** +// ***** Found 1 benchmark(s) in total ***** +// ***** Building 1 exe(s) in Parallel: Start ***** +// start dotnet restore /p:UseSharedCompilation=false /p:BuildInParallel=false /m:1 /p:Deterministic=true /p:Optimize=true /p:ArtifactsPath="/app/DbfSharp.Benchmark/bin/Release/net9.0/DbfSharp.Benchmark-DefaultJob-1/" /p:OutDir="/app/DbfSharp.Benchmark/bin/Release/net9.0/DbfSharp.Benchmark-DefaultJob-1/bin/Release/net9.0/" /p:OutputPath="/app/DbfSharp.Benchmark/bin/Release/net9.0/DbfSharp.Benchmark-DefaultJob-1/bin/Release/net9.0/" /p:PublishDir="/app/DbfSharp.Benchmark/bin/Release/net9.0/DbfSharp.Benchmark-DefaultJob-1/publish/" in /app/DbfSharp.Benchmark/bin/Release/net9.0/DbfSharp.Benchmark-DefaultJob-1 +// command took 2.18 sec and exited with 0 +// start dotnet build -c Release --no-restore /p:UseSharedCompilation=false /p:BuildInParallel=false /m:1 /p:Deterministic=true /p:Optimize=true /p:ArtifactsPath="/app/DbfSharp.Benchmark/bin/Release/net9.0/DbfSharp.Benchmark-DefaultJob-1/" /p:OutDir="/app/DbfSharp.Benchmark/bin/Release/net9.0/DbfSharp.Benchmark-DefaultJob-1/bin/Release/net9.0/" /p:OutputPath="/app/DbfSharp.Benchmark/bin/Release/net9.0/DbfSharp.Benchmark-DefaultJob-1/bin/Release/net9.0/" /p:PublishDir="/app/DbfSharp.Benchmark/bin/Release/net9.0/DbfSharp.Benchmark-DefaultJob-1/publish/" --output "/app/DbfSharp.Benchmark/bin/Release/net9.0/DbfSharp.Benchmark-DefaultJob-1/bin/Release/net9.0/" in /app/DbfSharp.Benchmark/bin/Release/net9.0/DbfSharp.Benchmark-DefaultJob-1 +// command took 13.92 sec and exited with 0 +// ***** Done, took 00:00:16 (16.19 sec) ***** +// Found 1 benchmarks: +// DbfReaderBenchmarks.'Read all records from a DBF file': DefaultJob + +// ************************** +// Benchmark: DbfReaderBenchmarks.'Read all records from a DBF file': DefaultJob +// *** Execute *** +// Launch: 1 / 1 +// Execute: dotnet DbfSharp.Benchmark-DefaultJob-1.dll --anonymousPipes 113 114 --benchmarkName DbfSharp.Benchmark.DbfReaderBenchmarks.ReadAllRecords --job Default --benchmarkId 0 in /app/DbfSharp.Benchmark/bin/Release/net9.0/DbfSharp.Benchmark-DefaultJob-1/bin/Release/net9.0 +// Failed to set up high priority (Permission denied). In order to run benchmarks with high priority, make sure you have the right permissions. +// BeforeAnythingElse + +// Benchmark Process Environment Information: +// BenchmarkDotNet v0.15.2 +// Runtime=.NET 9.0.8 (9.0.825.36511), X64 RyuJIT AVX2 +// GC=Concurrent Workstation +// HardwareIntrinsics=AVX2,AES,BMI1,BMI2,FMA,LZCNT,PCLMUL,POPCNT VectorSize=256 +// Job: DefaultJob + +OverheadJitting 1: 1 op, 284023.00 ns, 284.0230 us/op +WorkloadJitting 1: 1 op, 80805685.00 ns, 80.8057 ms/op + +WorkloadPilot 1: 2 op, 78752493.00 ns, 39.3762 ms/op +WorkloadPilot 2: 3 op, 114160566.00 ns, 38.0535 ms/op +WorkloadPilot 3: 4 op, 214528580.00 ns, 53.6321 ms/op +WorkloadPilot 4: 5 op, 257838371.00 ns, 51.5677 ms/op +WorkloadPilot 5: 6 op, 103520063.00 ns, 17.2533 ms/op +WorkloadPilot 6: 7 op, 96919518.00 ns, 13.8456 ms/op +WorkloadPilot 7: 8 op, 109971332.00 ns, 13.7464 ms/op +WorkloadPilot 8: 9 op, 78620500.00 ns, 8.7356 ms/op +WorkloadPilot 9: 10 op, 91081558.00 ns, 9.1082 ms/op +WorkloadPilot 10: 11 op, 90101684.00 ns, 8.1911 ms/op +WorkloadPilot 11: 12 op, 99941200.00 ns, 8.3284 ms/op +WorkloadPilot 12: 13 op, 107104447.00 ns, 8.2388 ms/op +WorkloadPilot 13: 14 op, 115152190.00 ns, 8.2252 ms/op +WorkloadPilot 14: 15 op, 134851764.00 ns, 8.9901 ms/op +WorkloadPilot 15: 16 op, 131492809.00 ns, 8.2183 ms/op +WorkloadPilot 16: 32 op, 261366553.00 ns, 8.1677 ms/op +WorkloadPilot 17: 64 op, 515550164.00 ns, 8.0555 ms/op + +OverheadWarmup 1: 64 op, 3129.00 ns, 48.8906 ns/op +OverheadWarmup 2: 64 op, 1041.00 ns, 16.2656 ns/op +OverheadWarmup 3: 64 op, 737.00 ns, 11.5156 ns/op +OverheadWarmup 4: 64 op, 725.00 ns, 11.3281 ns/op +OverheadWarmup 5: 64 op, 708.00 ns, 11.0625 ns/op +OverheadWarmup 6: 64 op, 799.00 ns, 12.4844 ns/op +OverheadWarmup 7: 64 op, 673.00 ns, 10.5156 ns/op +OverheadWarmup 8: 64 op, 741.00 ns, 11.5781 ns/op +OverheadWarmup 9: 64 op, 690.00 ns, 10.7813 ns/op + +// BeforeActualRun +WorkloadActual 1: 64 op, 517056763.00 ns, 8.0790 ms/op +WorkloadActual 2: 64 op, 772250317.00 ns, 12.0664 ms/op +WorkloadActual 3: 64 op, 762451434.00 ns, 11.9133 ms/op +WorkloadActual 4: 64 op, 511433161.00 ns, 7.9911 ms/op +WorkloadActual 5: 64 op, 514545976.00 ns, 8.0398 ms/op +WorkloadActual 6: 64 op, 519900263.00 ns, 8.1234 ms/op +WorkloadActual 7: 64 op, 515509671.00 ns, 8.0548 ms/op +WorkloadActual 8: 64 op, 512792563.00 ns, 8.0124 ms/op +WorkloadActual 9: 64 op, 516450204.00 ns, 8.0695 ms/op +WorkloadActual 10: 64 op, 510792835.00 ns, 7.9811 ms/op +WorkloadActual 11: 64 op, 516532802.00 ns, 8.0708 ms/op +WorkloadActual 12: 64 op, 510899073.00 ns, 7.9828 ms/op +WorkloadActual 13: 64 op, 508843575.00 ns, 7.9507 ms/op +WorkloadActual 14: 64 op, 512775792.00 ns, 8.0121 ms/op +WorkloadActual 15: 64 op, 510563589.00 ns, 7.9776 ms/op + +// AfterActualRun +WorkloadResult 1: 64 op, 517056763.00 ns, 8.0790 ms/op +WorkloadResult 2: 64 op, 511433161.00 ns, 7.9911 ms/op +WorkloadResult 3: 64 op, 514545976.00 ns, 8.0398 ms/op +WorkloadResult 4: 64 op, 519900263.00 ns, 8.1234 ms/op +WorkloadResult 5: 64 op, 515509671.00 ns, 8.0548 ms/op +WorkloadResult 6: 64 op, 512792563.00 ns, 8.0124 ms/op +WorkloadResult 7: 64 op, 516450204.00 ns, 8.0695 ms/op +WorkloadResult 8: 64 op, 510792835.00 ns, 7.9811 ms/op +WorkloadResult 9: 64 op, 516532802.00 ns, 8.0708 ms/op +WorkloadResult 10: 64 op, 510899073.00 ns, 7.9828 ms/op +WorkloadResult 11: 64 op, 508843575.00 ns, 7.9507 ms/op +WorkloadResult 12: 64 op, 512775792.00 ns, 8.0121 ms/op +WorkloadResult 13: 64 op, 510563589.00 ns, 7.9776 ms/op +// GC: 3 1 0 81220992 64 +// Threading: 0 0 64 + +// AfterAll +// Benchmark Process 6232 has exited with code 0. + +Mean = 8.027 ms, StdErr = 0.014 ms (0.17%), N = 13, StdDev = 0.051 ms +Min = 7.951 ms, Q1 = 7.983 ms, Median = 8.012 ms, Q3 = 8.070 ms, Max = 8.123 ms +IQR = 0.087 ms, LowerFence = 7.853 ms, UpperFence = 8.200 ms +ConfidenceInterval = [7.966 ms; 8.087 ms] (CI 99.9%), Margin = 0.061 ms (0.75% of Mean) +Skewness = 0.27, Kurtosis = 1.79, MValue = 2 + +// ** Remained 0 (0.0 %) benchmark(s) to run. Estimated finish 2025-08-08 13:04 (0h 0m from now) ** +// ***** BenchmarkRunner: Finish ***** + +// * Export * + BenchmarkDotNet.Artifacts/results/DbfSharp.Benchmark.DbfReaderBenchmarks-report.csv + BenchmarkDotNet.Artifacts/results/DbfSharp.Benchmark.DbfReaderBenchmarks-report-github.md + BenchmarkDotNet.Artifacts/results/DbfSharp.Benchmark.DbfReaderBenchmarks-report.html + +// * Detailed results * +DbfReaderBenchmarks.'Read all records from a DBF file': DefaultJob +Runtime = .NET 9.0.8 (9.0.825.36511), X64 RyuJIT AVX2; GC = Concurrent Workstation +Mean = 8.027 ms, StdErr = 0.014 ms (0.17%), N = 13, StdDev = 0.051 ms +Min = 7.951 ms, Q1 = 7.983 ms, Median = 8.012 ms, Q3 = 8.070 ms, Max = 8.123 ms +IQR = 0.087 ms, LowerFence = 7.853 ms, UpperFence = 8.200 ms +ConfidenceInterval = [7.966 ms; 8.087 ms] (CI 99.9%), Margin = 0.061 ms (0.75% of Mean) +Skewness = 0.27, Kurtosis = 1.79, MValue = 2 +-------------------- Histogram -------------------- +[7.922 ms ; 8.152 ms) | @@@@@@@@@@@@@ +--------------------------------------------------- + +// * Summary * + +BenchmarkDotNet v0.15.2, Linux Ubuntu 24.04.2 LTS (Noble Numbat) +Intel Xeon Processor 2.30GHz, 1 CPU, 4 logical and 4 physical cores +.NET SDK 9.0.109 + [Host] : .NET 9.0.8 (9.0.825.36511), X64 RyuJIT AVX2 + DefaultJob : .NET 9.0.8 (9.0.825.36511), X64 RyuJIT AVX2 + + +| Method | Mean | Error | StdDev | Gen0 | Gen1 | Allocated | +|----------------------------------- |---------:|----------:|----------:|--------:|--------:|----------:| +| 'Read all records from a DBF file' | 8.027 ms | 0.0606 ms | 0.0506 ms | 46.8750 | 15.6250 | 1.21 MB | + +// * Hints * +Outliers + DbfReaderBenchmarks.'Read all records from a DBF file': Default -> 2 outliers were removed (11.91 ms, 12.07 ms) + +// * Legends * + Mean : Arithmetic mean of all measurements + Error : Half of 99.9% confidence interval + StdDev : Standard deviation of all measurements + Gen0 : GC Generation 0 collects per 1000 operations + Gen1 : GC Generation 1 collects per 1000 operations + Allocated : Allocated memory per single operation (managed only, inclusive, 1KB = 1024B) + 1 ms : 1 Millisecond (0.001 sec) + +// * Diagnostic Output - MemoryDiagnoser * + + +// ***** BenchmarkRunner: End ***** +Run time: 00:00:11 (11.95 sec), executed benchmarks: 1 + +Global total time: 00:00:28 (28.3 sec), executed benchmarks: 1 +// * Artifacts cleanup * +Artifacts cleanup is finished diff --git a/BenchmarkDotNet.Artifacts/DbfSharp.Benchmark.DbfReaderBenchmarks-20250808-132849.log b/BenchmarkDotNet.Artifacts/DbfSharp.Benchmark.DbfReaderBenchmarks-20250808-132849.log new file mode 100644 index 0000000..b32f25a --- /dev/null +++ b/BenchmarkDotNet.Artifacts/DbfSharp.Benchmark.DbfReaderBenchmarks-20250808-132849.log @@ -0,0 +1,377 @@ +// Validating benchmarks: +// ***** BenchmarkRunner: Start ***** +// ***** Found 3 benchmark(s) in total ***** +// ***** Building 1 exe(s) in Parallel: Start ***** +// start dotnet restore /p:UseSharedCompilation=false /p:BuildInParallel=false /m:1 /p:Deterministic=true /p:Optimize=true /p:ArtifactsPath="/app/DbfSharp.Benchmark/bin/Release/net9.0/DbfSharp.Benchmark-DefaultJob-1/" /p:OutDir="/app/DbfSharp.Benchmark/bin/Release/net9.0/DbfSharp.Benchmark-DefaultJob-1/bin/Release/net9.0/" /p:OutputPath="/app/DbfSharp.Benchmark/bin/Release/net9.0/DbfSharp.Benchmark-DefaultJob-1/bin/Release/net9.0/" /p:PublishDir="/app/DbfSharp.Benchmark/bin/Release/net9.0/DbfSharp.Benchmark-DefaultJob-1/publish/" in /app/DbfSharp.Benchmark/bin/Release/net9.0/DbfSharp.Benchmark-DefaultJob-1 +// command took 3.96 sec and exited with 0 +// start dotnet build -c Release --no-restore /p:UseSharedCompilation=false /p:BuildInParallel=false /m:1 /p:Deterministic=true /p:Optimize=true /p:ArtifactsPath="/app/DbfSharp.Benchmark/bin/Release/net9.0/DbfSharp.Benchmark-DefaultJob-1/" /p:OutDir="/app/DbfSharp.Benchmark/bin/Release/net9.0/DbfSharp.Benchmark-DefaultJob-1/bin/Release/net9.0/" /p:OutputPath="/app/DbfSharp.Benchmark/bin/Release/net9.0/DbfSharp.Benchmark-DefaultJob-1/bin/Release/net9.0/" /p:PublishDir="/app/DbfSharp.Benchmark/bin/Release/net9.0/DbfSharp.Benchmark-DefaultJob-1/publish/" --output "/app/DbfSharp.Benchmark/bin/Release/net9.0/DbfSharp.Benchmark-DefaultJob-1/bin/Release/net9.0/" in /app/DbfSharp.Benchmark/bin/Release/net9.0/DbfSharp.Benchmark-DefaultJob-1 +// command took 17.72 sec and exited with 0 +// ***** Done, took 00:00:21 (21.88 sec) ***** +// Found 3 benchmarks: +// DbfReaderBenchmarks.'Read all records from a generated DBF file': DefaultJob [RowCount=10] +// DbfReaderBenchmarks.'Read all records from a generated DBF file': DefaultJob [RowCount=1000] +// DbfReaderBenchmarks.'Read all records from a generated DBF file': DefaultJob [RowCount=100000] + +// ************************** +// Benchmark: DbfReaderBenchmarks.'Read all records from a generated DBF file': DefaultJob [RowCount=10] +// *** Execute *** +// Launch: 1 / 1 +// Execute: dotnet DbfSharp.Benchmark-DefaultJob-1.dll --anonymousPipes 119 120 --benchmarkName "DbfSharp.Benchmark.DbfReaderBenchmarks.ReadAllRecords(RowCount: 10)" --job Default --benchmarkId 0 in /app/DbfSharp.Benchmark/bin/Release/net9.0/DbfSharp.Benchmark-DefaultJob-1/bin/Release/net9.0 +// Failed to set up high priority (Permission denied). In order to run benchmarks with high priority, make sure you have the right permissions. +// BeforeAnythingElse + +// Benchmark Process Environment Information: +// BenchmarkDotNet v0.15.2 +// Runtime=.NET 9.0.8 (9.0.825.36511), X64 RyuJIT AVX2 +// GC=Concurrent Workstation +// HardwareIntrinsics=AVX2,AES,BMI1,BMI2,FMA,LZCNT,PCLMUL,POPCNT VectorSize=256 +// Job: DefaultJob + +OverheadJitting 1: 1 op, 240509.00 ns, 240.5090 us/op +WorkloadJitting 1: 1 op, 35248766.00 ns, 35.2488 ms/op + +WorkloadPilot 1: 2 op, 578844.00 ns, 289.4220 us/op +WorkloadPilot 2: 3 op, 729243.00 ns, 243.0810 us/op +WorkloadPilot 3: 4 op, 819585.00 ns, 204.8963 us/op +WorkloadPilot 4: 5 op, 923165.00 ns, 184.6330 us/op +WorkloadPilot 5: 6 op, 1013175.00 ns, 168.8625 us/op +WorkloadPilot 6: 7 op, 1244224.00 ns, 177.7463 us/op +WorkloadPilot 7: 8 op, 1279357.00 ns, 159.9196 us/op +WorkloadPilot 8: 9 op, 1373541.00 ns, 152.6157 us/op +WorkloadPilot 9: 10 op, 1546570.00 ns, 154.6570 us/op +WorkloadPilot 10: 11 op, 1752455.00 ns, 159.3141 us/op +WorkloadPilot 11: 12 op, 1820308.00 ns, 151.6923 us/op +WorkloadPilot 12: 13 op, 2074983.00 ns, 159.6141 us/op +WorkloadPilot 13: 14 op, 2203988.00 ns, 157.4277 us/op +WorkloadPilot 14: 15 op, 2405821.00 ns, 160.3881 us/op +WorkloadPilot 15: 16 op, 2417523.00 ns, 151.0952 us/op +WorkloadPilot 16: 32 op, 5217575.00 ns, 163.0492 us/op +WorkloadPilot 17: 64 op, 10724282.00 ns, 167.5669 us/op +WorkloadPilot 18: 128 op, 21147007.00 ns, 165.2110 us/op +WorkloadPilot 19: 256 op, 40869347.00 ns, 159.6459 us/op +WorkloadPilot 20: 512 op, 93704657.00 ns, 183.0169 us/op +WorkloadPilot 21: 1024 op, 204083095.00 ns, 199.2999 us/op +WorkloadPilot 22: 2048 op, 429284063.00 ns, 209.6114 us/op +WorkloadPilot 23: 4096 op, 312049151.00 ns, 76.1839 us/op +WorkloadPilot 24: 8192 op, 378024449.00 ns, 46.1456 us/op +WorkloadPilot 25: 16384 op, 721632265.00 ns, 44.0449 us/op + +OverheadWarmup 1: 16384 op, 76518.00 ns, 4.6703 ns/op +OverheadWarmup 2: 16384 op, 67511.00 ns, 4.1205 ns/op +OverheadWarmup 3: 16384 op, 67206.00 ns, 4.1019 ns/op +OverheadWarmup 4: 16384 op, 67273.00 ns, 4.1060 ns/op +OverheadWarmup 5: 16384 op, 68630.00 ns, 4.1888 ns/op +OverheadWarmup 6: 16384 op, 67340.00 ns, 4.1101 ns/op +OverheadWarmup 7: 16384 op, 67428.00 ns, 4.1155 ns/op +OverheadWarmup 8: 16384 op, 67388.00 ns, 4.1130 ns/op + +// BeforeActualRun +WorkloadActual 1: 16384 op, 729771303.00 ns, 44.5417 us/op +WorkloadActual 2: 16384 op, 745001280.00 ns, 45.4713 us/op +WorkloadActual 3: 16384 op, 720447280.00 ns, 43.9726 us/op +WorkloadActual 4: 16384 op, 726904200.00 ns, 44.3667 us/op +WorkloadActual 5: 16384 op, 739817394.00 ns, 45.1549 us/op +WorkloadActual 6: 16384 op, 708184641.00 ns, 43.2242 us/op +WorkloadActual 7: 16384 op, 704778334.00 ns, 43.0163 us/op +WorkloadActual 8: 16384 op, 713682382.00 ns, 43.5597 us/op +WorkloadActual 9: 16384 op, 702410114.00 ns, 42.8717 us/op +WorkloadActual 10: 16384 op, 706847867.00 ns, 43.1426 us/op +WorkloadActual 11: 16384 op, 701504927.00 ns, 42.8165 us/op +WorkloadActual 12: 16384 op, 712503839.00 ns, 43.4878 us/op +WorkloadActual 13: 16384 op, 717882326.00 ns, 43.8161 us/op +WorkloadActual 14: 16384 op, 720961938.00 ns, 44.0040 us/op +WorkloadActual 15: 16384 op, 805639308.00 ns, 49.1723 us/op +WorkloadActual 16: 16384 op, 826068013.00 ns, 50.4192 us/op +WorkloadActual 17: 16384 op, 765864283.00 ns, 46.7446 us/op +WorkloadActual 18: 16384 op, 703650533.00 ns, 42.9474 us/op +WorkloadActual 19: 16384 op, 704180120.00 ns, 42.9797 us/op +WorkloadActual 20: 16384 op, 704032685.00 ns, 42.9707 us/op +WorkloadActual 21: 16384 op, 711755954.00 ns, 43.4421 us/op +WorkloadActual 22: 16384 op, 711541672.00 ns, 43.4291 us/op +WorkloadActual 23: 16384 op, 704860038.00 ns, 43.0212 us/op + +// AfterActualRun +WorkloadResult 1: 16384 op, 729771303.00 ns, 44.5417 us/op +WorkloadResult 2: 16384 op, 745001280.00 ns, 45.4713 us/op +WorkloadResult 3: 16384 op, 720447280.00 ns, 43.9726 us/op +WorkloadResult 4: 16384 op, 726904200.00 ns, 44.3667 us/op +WorkloadResult 5: 16384 op, 739817394.00 ns, 45.1549 us/op +WorkloadResult 6: 16384 op, 708184641.00 ns, 43.2242 us/op +WorkloadResult 7: 16384 op, 704778334.00 ns, 43.0163 us/op +WorkloadResult 8: 16384 op, 713682382.00 ns, 43.5597 us/op +WorkloadResult 9: 16384 op, 702410114.00 ns, 42.8717 us/op +WorkloadResult 10: 16384 op, 706847867.00 ns, 43.1426 us/op +WorkloadResult 11: 16384 op, 701504927.00 ns, 42.8165 us/op +WorkloadResult 12: 16384 op, 712503839.00 ns, 43.4878 us/op +WorkloadResult 13: 16384 op, 717882326.00 ns, 43.8161 us/op +WorkloadResult 14: 16384 op, 720961938.00 ns, 44.0040 us/op +WorkloadResult 15: 16384 op, 703650533.00 ns, 42.9474 us/op +WorkloadResult 16: 16384 op, 704180120.00 ns, 42.9797 us/op +WorkloadResult 17: 16384 op, 704032685.00 ns, 42.9707 us/op +WorkloadResult 18: 16384 op, 711755954.00 ns, 43.4421 us/op +WorkloadResult 19: 16384 op, 711541672.00 ns, 43.4291 us/op +WorkloadResult 20: 16384 op, 704860038.00 ns, 43.0212 us/op +// GC: 56 13 0 1329250400 16384 +// Threading: 0 0 16384 + +// AfterAll +// Benchmark Process 8594 has exited with code 0. + +Mean = 43.612 μs, StdErr = 0.172 μs (0.39%), N = 20, StdDev = 0.767 μs +Min = 42.816 μs, Q1 = 43.007 μs, Median = 43.436 μs, Q3 = 43.980 μs, Max = 45.471 μs +IQR = 0.973 μs, LowerFence = 41.547 μs, UpperFence = 45.440 μs +ConfidenceInterval = [42.946 μs; 44.278 μs] (CI 99.9%), Margin = 0.666 μs (1.53% of Mean) +Skewness = 1.01, Kurtosis = 2.93, MValue = 2 + +// ** Remained 2 (66.7 %) benchmark(s) to run. Estimated finish 2025-08-08 13:30 (0h 0m from now) ** +// ************************** +// Benchmark: DbfReaderBenchmarks.'Read all records from a generated DBF file': DefaultJob [RowCount=1000] +// *** Execute *** +// Launch: 1 / 1 +// Execute: dotnet DbfSharp.Benchmark-DefaultJob-1.dll --anonymousPipes 119 120 --benchmarkName "DbfSharp.Benchmark.DbfReaderBenchmarks.ReadAllRecords(RowCount: 1000)" --job Default --benchmarkId 1 in /app/DbfSharp.Benchmark/bin/Release/net9.0/DbfSharp.Benchmark-DefaultJob-1/bin/Release/net9.0 +// Failed to set up high priority (Permission denied). In order to run benchmarks with high priority, make sure you have the right permissions. +// BeforeAnythingElse + +// Benchmark Process Environment Information: +// BenchmarkDotNet v0.15.2 +// Runtime=.NET 9.0.8 (9.0.825.36511), X64 RyuJIT AVX2 +// GC=Concurrent Workstation +// HardwareIntrinsics=AVX2,AES,BMI1,BMI2,FMA,LZCNT,PCLMUL,POPCNT VectorSize=256 +// Job: DefaultJob + +OverheadJitting 1: 1 op, 234932.00 ns, 234.9320 us/op +WorkloadJitting 1: 1 op, 46395292.00 ns, 46.3953 ms/op + +WorkloadPilot 1: 2 op, 22698454.00 ns, 11.3492 ms/op +WorkloadPilot 2: 3 op, 31960387.00 ns, 10.6535 ms/op +WorkloadPilot 3: 4 op, 42113446.00 ns, 10.5284 ms/op +WorkloadPilot 4: 5 op, 50432552.00 ns, 10.0865 ms/op +WorkloadPilot 5: 6 op, 59988641.00 ns, 9.9981 ms/op +WorkloadPilot 6: 7 op, 95080491.00 ns, 13.5829 ms/op +WorkloadPilot 7: 8 op, 122922476.00 ns, 15.3653 ms/op +WorkloadPilot 8: 9 op, 132728674.00 ns, 14.7476 ms/op +WorkloadPilot 9: 10 op, 87289420.00 ns, 8.7289 ms/op +WorkloadPilot 10: 11 op, 75269533.00 ns, 6.8427 ms/op +WorkloadPilot 11: 12 op, 75138138.00 ns, 6.2615 ms/op +WorkloadPilot 12: 13 op, 73591998.00 ns, 5.6609 ms/op +WorkloadPilot 13: 14 op, 57949596.00 ns, 4.1393 ms/op +WorkloadPilot 14: 15 op, 61341763.00 ns, 4.0895 ms/op +WorkloadPilot 15: 16 op, 64877987.00 ns, 4.0549 ms/op +WorkloadPilot 16: 32 op, 104816923.00 ns, 3.2755 ms/op +WorkloadPilot 17: 64 op, 166940383.00 ns, 2.6084 ms/op +WorkloadPilot 18: 128 op, 293482144.00 ns, 2.2928 ms/op +WorkloadPilot 19: 256 op, 577367497.00 ns, 2.2553 ms/op + +OverheadWarmup 1: 256 op, 4056.00 ns, 15.8438 ns/op +OverheadWarmup 2: 256 op, 1596.00 ns, 6.2344 ns/op +OverheadWarmup 3: 256 op, 1504.00 ns, 5.8750 ns/op +OverheadWarmup 4: 256 op, 1440.00 ns, 5.6250 ns/op +OverheadWarmup 5: 256 op, 1472.00 ns, 5.7500 ns/op +OverheadWarmup 6: 256 op, 1502.00 ns, 5.8672 ns/op +OverheadWarmup 7: 256 op, 1529.00 ns, 5.9727 ns/op +OverheadWarmup 8: 256 op, 1329.00 ns, 5.1914 ns/op +OverheadWarmup 9: 256 op, 1445.00 ns, 5.6445 ns/op +OverheadWarmup 10: 256 op, 1422.00 ns, 5.5547 ns/op + +// BeforeActualRun +WorkloadActual 1: 256 op, 584166663.00 ns, 2.2819 ms/op +WorkloadActual 2: 256 op, 581981955.00 ns, 2.2734 ms/op +WorkloadActual 3: 256 op, 579783500.00 ns, 2.2648 ms/op +WorkloadActual 4: 256 op, 575124918.00 ns, 2.2466 ms/op +WorkloadActual 5: 256 op, 573575662.00 ns, 2.2405 ms/op +WorkloadActual 6: 256 op, 578847949.00 ns, 2.2611 ms/op +WorkloadActual 7: 256 op, 589271371.00 ns, 2.3018 ms/op +WorkloadActual 8: 256 op, 577739624.00 ns, 2.2568 ms/op +WorkloadActual 9: 256 op, 577178144.00 ns, 2.2546 ms/op +WorkloadActual 10: 256 op, 576734573.00 ns, 2.2529 ms/op +WorkloadActual 11: 256 op, 578882649.00 ns, 2.2613 ms/op +WorkloadActual 12: 256 op, 579810568.00 ns, 2.2649 ms/op +WorkloadActual 13: 256 op, 577866361.00 ns, 2.2573 ms/op +WorkloadActual 14: 256 op, 577323559.00 ns, 2.2552 ms/op +WorkloadActual 15: 256 op, 576819483.00 ns, 2.2532 ms/op + +// AfterActualRun +WorkloadResult 1: 256 op, 581981955.00 ns, 2.2734 ms/op +WorkloadResult 2: 256 op, 579783500.00 ns, 2.2648 ms/op +WorkloadResult 3: 256 op, 575124918.00 ns, 2.2466 ms/op +WorkloadResult 4: 256 op, 573575662.00 ns, 2.2405 ms/op +WorkloadResult 5: 256 op, 578847949.00 ns, 2.2611 ms/op +WorkloadResult 6: 256 op, 577739624.00 ns, 2.2568 ms/op +WorkloadResult 7: 256 op, 577178144.00 ns, 2.2546 ms/op +WorkloadResult 8: 256 op, 576734573.00 ns, 2.2529 ms/op +WorkloadResult 9: 256 op, 578882649.00 ns, 2.2613 ms/op +WorkloadResult 10: 256 op, 579810568.00 ns, 2.2649 ms/op +WorkloadResult 11: 256 op, 577866361.00 ns, 2.2573 ms/op +WorkloadResult 12: 256 op, 577323559.00 ns, 2.2552 ms/op +WorkloadResult 13: 256 op, 576819483.00 ns, 2.2532 ms/op +// GC: 8 1 0 208815712 256 +// Threading: 0 0 256 + +// AfterAll +// Benchmark Process 8607 has exited with code 0. + +Mean = 2.257 ms, StdErr = 0.002 ms (0.10%), N = 13, StdDev = 0.008 ms +Min = 2.241 ms, Q1 = 2.253 ms, Median = 2.257 ms, Q3 = 2.261 ms, Max = 2.273 ms +IQR = 0.008 ms, LowerFence = 2.241 ms, UpperFence = 2.273 ms +ConfidenceInterval = [2.247 ms; 2.267 ms] (CI 99.9%), Margin = 0.010 ms (0.45% of Mean) +Skewness = -0.07, Kurtosis = 2.57, MValue = 2 + +// ** Remained 1 (33.3 %) benchmark(s) to run. Estimated finish 2025-08-08 13:29 (0h 0m from now) ** +// ************************** +// Benchmark: DbfReaderBenchmarks.'Read all records from a generated DBF file': DefaultJob [RowCount=100000] +// *** Execute *** +// Launch: 1 / 1 +// Execute: dotnet DbfSharp.Benchmark-DefaultJob-1.dll --anonymousPipes 119 120 --benchmarkName "DbfSharp.Benchmark.DbfReaderBenchmarks.ReadAllRecords(RowCount: 100000)" --job Default --benchmarkId 2 in /app/DbfSharp.Benchmark/bin/Release/net9.0/DbfSharp.Benchmark-DefaultJob-1/bin/Release/net9.0 +// Failed to set up high priority (Permission denied). In order to run benchmarks with high priority, make sure you have the right permissions. +// BeforeAnythingElse + +// Benchmark Process Environment Information: +// BenchmarkDotNet v0.15.2 +// Runtime=.NET 9.0.8 (9.0.825.36511), X64 RyuJIT AVX2 +// GC=Concurrent Workstation +// HardwareIntrinsics=AVX2,AES,BMI1,BMI2,FMA,LZCNT,PCLMUL,POPCNT VectorSize=256 +// Job: DefaultJob + +OverheadJitting 1: 1 op, 264269.00 ns, 264.2690 us/op +WorkloadJitting 1: 1 op, 930882802.00 ns, 930.8828 ms/op + +OverheadJitting 2: 1 op, 1004.00 ns, 1.0040 us/op +WorkloadJitting 2: 1 op, 275398886.00 ns, 275.3989 ms/op + +WorkloadPilot 1: 2 op, 465181858.00 ns, 232.5909 ms/op +WorkloadPilot 2: 3 op, 684994860.00 ns, 228.3316 ms/op + +OverheadWarmup 1: 3 op, 1067.00 ns, 355.6667 ns/op +OverheadWarmup 2: 3 op, 572.00 ns, 190.6667 ns/op +OverheadWarmup 3: 3 op, 443.00 ns, 147.6667 ns/op +OverheadWarmup 4: 3 op, 588.00 ns, 196.0000 ns/op +OverheadWarmup 5: 3 op, 535.00 ns, 178.3333 ns/op +OverheadWarmup 6: 3 op, 555.00 ns, 185.0000 ns/op +OverheadWarmup 7: 3 op, 634.00 ns, 211.3333 ns/op +OverheadWarmup 8: 3 op, 387.00 ns, 129.0000 ns/op + +// BeforeActualRun +WorkloadActual 1: 3 op, 684651345.00 ns, 228.2171 ms/op +WorkloadActual 2: 3 op, 692503348.00 ns, 230.8344 ms/op +WorkloadActual 3: 3 op, 696654120.00 ns, 232.2180 ms/op +WorkloadActual 4: 3 op, 690593852.00 ns, 230.1980 ms/op +WorkloadActual 5: 3 op, 676887126.00 ns, 225.6290 ms/op +WorkloadActual 6: 3 op, 677494459.00 ns, 225.8315 ms/op +WorkloadActual 7: 3 op, 679480145.00 ns, 226.4934 ms/op +WorkloadActual 8: 3 op, 679961506.00 ns, 226.6538 ms/op +WorkloadActual 9: 3 op, 679763220.00 ns, 226.5877 ms/op +WorkloadActual 10: 3 op, 677680060.00 ns, 225.8934 ms/op +WorkloadActual 11: 3 op, 677829865.00 ns, 225.9433 ms/op +WorkloadActual 12: 3 op, 679330110.00 ns, 226.4434 ms/op +WorkloadActual 13: 3 op, 678314955.00 ns, 226.1050 ms/op +WorkloadActual 14: 3 op, 675080797.00 ns, 225.0269 ms/op +WorkloadActual 15: 3 op, 676233143.00 ns, 225.4110 ms/op + +// AfterActualRun +WorkloadResult 1: 3 op, 684651345.00 ns, 228.2171 ms/op +WorkloadResult 2: 3 op, 676887126.00 ns, 225.6290 ms/op +WorkloadResult 3: 3 op, 677494459.00 ns, 225.8315 ms/op +WorkloadResult 4: 3 op, 679480145.00 ns, 226.4934 ms/op +WorkloadResult 5: 3 op, 679961506.00 ns, 226.6538 ms/op +WorkloadResult 6: 3 op, 679763220.00 ns, 226.5877 ms/op +WorkloadResult 7: 3 op, 677680060.00 ns, 225.8934 ms/op +WorkloadResult 8: 3 op, 677829865.00 ns, 225.9433 ms/op +WorkloadResult 9: 3 op, 679330110.00 ns, 226.4434 ms/op +WorkloadResult 10: 3 op, 678314955.00 ns, 226.1050 ms/op +WorkloadResult 11: 3 op, 675080797.00 ns, 225.0269 ms/op +WorkloadResult 12: 3 op, 676233143.00 ns, 225.4110 ms/op +// GC: 8 0 0 211324080 3 +// Threading: 0 0 3 + +// AfterAll +// Benchmark Process 8621 has exited with code 0. + +Mean = 226.186 ms, StdErr = 0.234 ms (0.10%), N = 12, StdDev = 0.809 ms +Min = 225.027 ms, Q1 = 225.781 ms, Median = 226.024 ms, Q3 = 226.517 ms, Max = 228.217 ms +IQR = 0.736 ms, LowerFence = 224.677 ms, UpperFence = 227.621 ms +ConfidenceInterval = [225.150 ms; 227.222 ms] (CI 99.9%), Margin = 1.036 ms (0.46% of Mean) +Skewness = 0.99, Kurtosis = 3.77, MValue = 2 + +// ** Remained 0 (0.0 %) benchmark(s) to run. Estimated finish 2025-08-08 13:29 (0h 0m from now) ** +// ***** BenchmarkRunner: Finish ***** + +// * Export * + BenchmarkDotNet.Artifacts/results/DbfSharp.Benchmark.DbfReaderBenchmarks-report.csv + BenchmarkDotNet.Artifacts/results/DbfSharp.Benchmark.DbfReaderBenchmarks-report-github.md + BenchmarkDotNet.Artifacts/results/DbfSharp.Benchmark.DbfReaderBenchmarks-report.html + +// * Detailed results * +DbfReaderBenchmarks.'Read all records from a generated DBF file': DefaultJob [RowCount=10] +Runtime = .NET 9.0.8 (9.0.825.36511), X64 RyuJIT AVX2; GC = Concurrent Workstation +Mean = 43.612 μs, StdErr = 0.172 μs (0.39%), N = 20, StdDev = 0.767 μs +Min = 42.816 μs, Q1 = 43.007 μs, Median = 43.436 μs, Q3 = 43.980 μs, Max = 45.471 μs +IQR = 0.973 μs, LowerFence = 41.547 μs, UpperFence = 45.440 μs +ConfidenceInterval = [42.946 μs; 44.278 μs] (CI 99.9%), Margin = 0.666 μs (1.53% of Mean) +Skewness = 1.01, Kurtosis = 2.93, MValue = 2 +-------------------- Histogram -------------------- +[42.721 μs ; 43.737 μs) | @@@@@@@@@@@@@ +[43.737 μs ; 45.766 μs) | @@@@@@@ +--------------------------------------------------- + +DbfReaderBenchmarks.'Read all records from a generated DBF file': DefaultJob [RowCount=1000] +Runtime = .NET 9.0.8 (9.0.825.36511), X64 RyuJIT AVX2; GC = Concurrent Workstation +Mean = 2.257 ms, StdErr = 0.002 ms (0.10%), N = 13, StdDev = 0.008 ms +Min = 2.241 ms, Q1 = 2.253 ms, Median = 2.257 ms, Q3 = 2.261 ms, Max = 2.273 ms +IQR = 0.008 ms, LowerFence = 2.241 ms, UpperFence = 2.273 ms +ConfidenceInterval = [2.247 ms; 2.267 ms] (CI 99.9%), Margin = 0.010 ms (0.45% of Mean) +Skewness = -0.07, Kurtosis = 2.57, MValue = 2 +-------------------- Histogram -------------------- +[2.236 ms ; 2.278 ms) | @@@@@@@@@@@@@ +--------------------------------------------------- + +DbfReaderBenchmarks.'Read all records from a generated DBF file': DefaultJob [RowCount=100000] +Runtime = .NET 9.0.8 (9.0.825.36511), X64 RyuJIT AVX2; GC = Concurrent Workstation +Mean = 226.186 ms, StdErr = 0.234 ms (0.10%), N = 12, StdDev = 0.809 ms +Min = 225.027 ms, Q1 = 225.781 ms, Median = 226.024 ms, Q3 = 226.517 ms, Max = 228.217 ms +IQR = 0.736 ms, LowerFence = 224.677 ms, UpperFence = 227.621 ms +ConfidenceInterval = [225.150 ms; 227.222 ms] (CI 99.9%), Margin = 1.036 ms (0.46% of Mean) +Skewness = 0.99, Kurtosis = 3.77, MValue = 2 +-------------------- Histogram -------------------- +[224.563 ms ; 228.681 ms) | @@@@@@@@@@@@ +--------------------------------------------------- + +// * Summary * + +BenchmarkDotNet v0.15.2, Linux Ubuntu 24.04.2 LTS (Noble Numbat) +Intel Xeon Processor 2.30GHz, 1 CPU, 4 logical and 4 physical cores +.NET SDK 9.0.109 + [Host] : .NET 9.0.8 (9.0.825.36511), X64 RyuJIT AVX2 + DefaultJob : .NET 9.0.8 (9.0.825.36511), X64 RyuJIT AVX2 + + +| Method | RowCount | Mean | Error | StdDev | Gen0 | Gen1 | Allocated | +|--------------------------------------------- |--------- |--------------:|-------------:|-----------:|----------:|-------:|------------:| +| 'Read all records from a generated DBF file' | 10 | 43.61 μs | 0.666 μs | 0.767 μs | 3.4180 | 0.7935 | 79.23 KB | +| 'Read all records from a generated DBF file' | 1000 | 2,257.11 μs | 10.056 μs | 8.397 μs | 31.2500 | 3.9063 | 796.57 KB | +| 'Read all records from a generated DBF file' | 100000 | 226,186.30 μs | 1,036.068 μs | 808.894 μs | 2666.6667 | - | 68790.39 KB | + +// * Hints * +Outliers + DbfReaderBenchmarks.'Read all records from a generated DBF file': Default -> 3 outliers were removed (46.74 μs..50.42 μs) + DbfReaderBenchmarks.'Read all records from a generated DBF file': Default -> 2 outliers were removed (2.28 ms, 2.30 ms) + DbfReaderBenchmarks.'Read all records from a generated DBF file': Default -> 3 outliers were removed (230.20 ms..232.22 ms) + +// * Legends * + RowCount : Value of the 'RowCount' parameter + Mean : Arithmetic mean of all measurements + Error : Half of 99.9% confidence interval + StdDev : Standard deviation of all measurements + Gen0 : GC Generation 0 collects per 1000 operations + Gen1 : GC Generation 1 collects per 1000 operations + Allocated : Allocated memory per single operation (managed only, inclusive, 1KB = 1024B) + 1 μs : 1 Microsecond (0.000001 sec) + +// * Diagnostic Output - MemoryDiagnoser * + + +// ***** BenchmarkRunner: End ***** +Run time: 00:00:46 (46.34 sec), executed benchmarks: 3 + +Global total time: 00:01:08 (68.41 sec), executed benchmarks: 3 +// * Artifacts cleanup * +Artifacts cleanup is finished diff --git a/BenchmarkDotNet.Artifacts/DbfSharp.Benchmark.DbfReaderBenchmarks-20250808-133030.log b/BenchmarkDotNet.Artifacts/DbfSharp.Benchmark.DbfReaderBenchmarks-20250808-133030.log new file mode 100644 index 0000000..5c3b5cc --- /dev/null +++ b/BenchmarkDotNet.Artifacts/DbfSharp.Benchmark.DbfReaderBenchmarks-20250808-133030.log @@ -0,0 +1,136 @@ +// Validating benchmarks: +// ***** BenchmarkRunner: Start ***** +// ***** Found 3 benchmark(s) in total ***** +// ***** Building 1 exe(s) in Parallel: Start ***** +// start dotnet restore /p:UseSharedCompilation=false /p:BuildInParallel=false /m:1 /p:Deterministic=true /p:Optimize=true /p:ArtifactsPath="/app/DbfSharp.Benchmark/bin/Release/net9.0/DbfSharp.Benchmark-DefaultJob-1/" /p:OutDir="/app/DbfSharp.Benchmark/bin/Release/net9.0/DbfSharp.Benchmark-DefaultJob-1/bin/Release/net9.0/" /p:OutputPath="/app/DbfSharp.Benchmark/bin/Release/net9.0/DbfSharp.Benchmark-DefaultJob-1/bin/Release/net9.0/" /p:PublishDir="/app/DbfSharp.Benchmark/bin/Release/net9.0/DbfSharp.Benchmark-DefaultJob-1/publish/" in /app/DbfSharp.Benchmark/bin/Release/net9.0/DbfSharp.Benchmark-DefaultJob-1 +// command took 2.76 sec and exited with 0 +// start dotnet build -c Release --no-restore /p:UseSharedCompilation=false /p:BuildInParallel=false /m:1 /p:Deterministic=true /p:Optimize=true /p:ArtifactsPath="/app/DbfSharp.Benchmark/bin/Release/net9.0/DbfSharp.Benchmark-DefaultJob-1/" /p:OutDir="/app/DbfSharp.Benchmark/bin/Release/net9.0/DbfSharp.Benchmark-DefaultJob-1/bin/Release/net9.0/" /p:OutputPath="/app/DbfSharp.Benchmark/bin/Release/net9.0/DbfSharp.Benchmark-DefaultJob-1/bin/Release/net9.0/" /p:PublishDir="/app/DbfSharp.Benchmark/bin/Release/net9.0/DbfSharp.Benchmark-DefaultJob-1/publish/" --output "/app/DbfSharp.Benchmark/bin/Release/net9.0/DbfSharp.Benchmark-DefaultJob-1/bin/Release/net9.0/" in /app/DbfSharp.Benchmark/bin/Release/net9.0/DbfSharp.Benchmark-DefaultJob-1 +// command took 14.55 sec and exited with 0 +// ***** Done, took 00:00:17 (17.4 sec) ***** +// Found 3 benchmarks: +// DbfReaderBenchmarks.'Read all records from a generated DBF file': DefaultJob [RowCount=100000] +// DbfReaderBenchmarks.'Read all records from a generated DBF file': DefaultJob [RowCount=1000000] +// DbfReaderBenchmarks.'Read all records from a generated DBF file': DefaultJob [RowCount=10000000] + +// ************************** +// Benchmark: DbfReaderBenchmarks.'Read all records from a generated DBF file': DefaultJob [RowCount=100000] +// *** Execute *** +// Launch: 1 / 1 +// Execute: dotnet DbfSharp.Benchmark-DefaultJob-1.dll --anonymousPipes 119 120 --benchmarkName "DbfSharp.Benchmark.DbfReaderBenchmarks.ReadAllRecords(RowCount: 100000)" --job Default --benchmarkId 0 in /app/DbfSharp.Benchmark/bin/Release/net9.0/DbfSharp.Benchmark-DefaultJob-1/bin/Release/net9.0 +// Failed to set up high priority (Permission denied). In order to run benchmarks with high priority, make sure you have the right permissions. +// BeforeAnythingElse + +// Benchmark Process Environment Information: +// BenchmarkDotNet v0.15.2 +// Runtime=.NET 9.0.8 (9.0.825.36511), X64 RyuJIT AVX2 +// GC=Concurrent Workstation +// HardwareIntrinsics=AVX2,AES,BMI1,BMI2,FMA,LZCNT,PCLMUL,POPCNT VectorSize=256 +// Job: DefaultJob + +OverheadJitting 1: 1 op, 255574.00 ns, 255.5740 us/op +WorkloadJitting 1: 1 op, 897715260.00 ns, 897.7153 ms/op + +OverheadJitting 2: 1 op, 751.00 ns, 751.0000 ns/op +WorkloadJitting 2: 1 op, 246088809.00 ns, 246.0888 ms/op + +WorkloadPilot 1: 2 op, 484643939.00 ns, 242.3220 ms/op +WorkloadPilot 2: 3 op, 708920438.00 ns, 236.3068 ms/op + +OverheadWarmup 1: 3 op, 979.00 ns, 326.3333 ns/op +OverheadWarmup 2: 3 op, 581.00 ns, 193.6667 ns/op +OverheadWarmup 3: 3 op, 571.00 ns, 190.3333 ns/op +OverheadWarmup 4: 3 op, 579.00 ns, 193.0000 ns/op +OverheadWarmup 5: 3 op, 588.00 ns, 196.0000 ns/op +OverheadWarmup 6: 3 op, 555.00 ns, 185.0000 ns/op +OverheadWarmup 7: 3 op, 533.00 ns, 177.6667 ns/op +OverheadWarmup 8: 3 op, 545.00 ns, 181.6667 ns/op +OverheadWarmup 9: 3 op, 533.00 ns, 177.6667 ns/op + +// BeforeActualRun +WorkloadActual 1: 3 op, 706495304.00 ns, 235.4984 ms/op +WorkloadActual 2: 3 op, 711560060.00 ns, 237.1867 ms/op +WorkloadActual 3: 3 op, 712587847.00 ns, 237.5293 ms/op +WorkloadActual 4: 3 op, 713307578.00 ns, 237.7692 ms/op +WorkloadActual 5: 3 op, 706816319.00 ns, 235.6054 ms/op +WorkloadActual 6: 3 op, 704403979.00 ns, 234.8013 ms/op +WorkloadActual 7: 3 op, 702920500.00 ns, 234.3068 ms/op +WorkloadActual 8: 3 op, 710442254.00 ns, 236.8141 ms/op +WorkloadActual 9: 3 op, 710405132.00 ns, 236.8017 ms/op +WorkloadActual 10: 3 op, 706125897.00 ns, 235.3753 ms/op +WorkloadActual 11: 3 op, 703998599.00 ns, 234.6662 ms/op +WorkloadActual 12: 3 op, 724333672.00 ns, 241.4446 ms/op +WorkloadActual 13: 3 op, 709732762.00 ns, 236.5776 ms/op +WorkloadActual 14: 3 op, 703449850.00 ns, 234.4833 ms/op +WorkloadActual 15: 3 op, 704123827.00 ns, 234.7079 ms/op + +// AfterActualRun +WorkloadResult 1: 3 op, 706495304.00 ns, 235.4984 ms/op +WorkloadResult 2: 3 op, 711560060.00 ns, 237.1867 ms/op +WorkloadResult 3: 3 op, 712587847.00 ns, 237.5293 ms/op +WorkloadResult 4: 3 op, 713307578.00 ns, 237.7692 ms/op +WorkloadResult 5: 3 op, 706816319.00 ns, 235.6054 ms/op +WorkloadResult 6: 3 op, 704403979.00 ns, 234.8013 ms/op +WorkloadResult 7: 3 op, 702920500.00 ns, 234.3068 ms/op +WorkloadResult 8: 3 op, 710442254.00 ns, 236.8141 ms/op +WorkloadResult 9: 3 op, 710405132.00 ns, 236.8017 ms/op +WorkloadResult 10: 3 op, 706125897.00 ns, 235.3753 ms/op +WorkloadResult 11: 3 op, 703998599.00 ns, 234.6662 ms/op +WorkloadResult 12: 3 op, 709732762.00 ns, 236.5776 ms/op +WorkloadResult 13: 3 op, 703449850.00 ns, 234.4833 ms/op +WorkloadResult 14: 3 op, 704123827.00 ns, 234.7079 ms/op +// GC: 8 0 0 211324080 3 +// Threading: 0 0 3 + +// AfterAll +// Benchmark Process 9074 has exited with code 0. + +Mean = 235.866 ms, StdErr = 0.324 ms (0.14%), N = 14, StdDev = 1.213 ms +Min = 234.307 ms, Q1 = 234.731 ms, Median = 235.552 ms, Q3 = 236.811 ms, Max = 237.769 ms +IQR = 2.080 ms, LowerFence = 231.612 ms, UpperFence = 239.931 ms +ConfidenceInterval = [234.498 ms; 237.234 ms] (CI 99.9%), Margin = 1.368 ms (0.58% of Mean) +Skewness = 0.19, Kurtosis = 1.34, MValue = 2 + +// ** Remained 2 (66.7 %) benchmark(s) to run. Estimated finish 2025-08-08 13:31 (0h 0m from now) ** +// ************************** +// Benchmark: DbfReaderBenchmarks.'Read all records from a generated DBF file': DefaultJob [RowCount=1000000] +// *** Execute *** +// Launch: 1 / 1 +// Execute: dotnet DbfSharp.Benchmark-DefaultJob-1.dll --anonymousPipes 119 120 --benchmarkName "DbfSharp.Benchmark.DbfReaderBenchmarks.ReadAllRecords(RowCount: 1000000)" --job Default --benchmarkId 1 in /app/DbfSharp.Benchmark/bin/Release/net9.0/DbfSharp.Benchmark-DefaultJob-1/bin/Release/net9.0 +// Failed to set up high priority (Permission denied). In order to run benchmarks with high priority, make sure you have the right permissions. +// BeforeAnythingElse + +// Benchmark Process Environment Information: +// BenchmarkDotNet v0.15.2 +// Runtime=.NET 9.0.8 (9.0.825.36511), X64 RyuJIT AVX2 +// GC=Concurrent Workstation +// HardwareIntrinsics=AVX2,AES,BMI1,BMI2,FMA,LZCNT,PCLMUL,POPCNT VectorSize=256 +// Job: DefaultJob + +OverheadJitting 1: 1 op, 291712.00 ns, 291.7120 us/op +WorkloadJitting 1: 1 op, 3001795114.00 ns, 3.0018 s/op + +OverheadJitting 2: 1 op, 984.00 ns, 984.0000 ns/op +WorkloadJitting 2: 1 op, 2408120287.00 ns, 2.4081 s/op + +OverheadWarmup 1: 1 op, 1054.00 ns, 1.0540 us/op +OverheadWarmup 2: 1 op, 594.00 ns, 594.0000 ns/op +OverheadWarmup 3: 1 op, 464.00 ns, 464.0000 ns/op +OverheadWarmup 4: 1 op, 517.00 ns, 517.0000 ns/op +OverheadWarmup 5: 1 op, 490.00 ns, 490.0000 ns/op +OverheadWarmup 6: 1 op, 533.00 ns, 533.0000 ns/op +OverheadWarmup 7: 1 op, 734.00 ns, 734.0000 ns/op +OverheadWarmup 8: 1 op, 689.00 ns, 689.0000 ns/op + +// BeforeActualRun +WorkloadActual 1: 1 op, 2277004383.00 ns, 2.2770 s/op +WorkloadActual 2: 1 op, 2284348599.00 ns, 2.2843 s/op +WorkloadActual 3: 1 op, 2306145377.00 ns, 2.3061 s/op +WorkloadActual 4: 1 op, 2276236872.00 ns, 2.2762 s/op +WorkloadActual 5: 1 op, 2278872221.00 ns, 2.2789 s/op +WorkloadActual 6: 1 op, 2265595653.00 ns, 2.2656 s/op +WorkloadActual 7: 1 op, 2280190383.00 ns, 2.2802 s/op +WorkloadActual 8: 1 op, 2278568008.00 ns, 2.2786 s/op +WorkloadActual 9: 1 op, 2271916430.00 ns, 2.2719 s/op +WorkloadActual 10: 1 op, 2266336141.00 ns, 2.2663 s/op +WorkloadActual 11: 1 op, 2285271097.00 ns, 2.2853 s/op +WorkloadActual 12: 1 op, 2310206 \ No newline at end of file diff --git a/BenchmarkDotNet.Artifacts/results/DbfSharp.Benchmark.DbfReaderBenchmarks-report-github.md b/BenchmarkDotNet.Artifacts/results/DbfSharp.Benchmark.DbfReaderBenchmarks-report-github.md new file mode 100644 index 0000000..476a874 --- /dev/null +++ b/BenchmarkDotNet.Artifacts/results/DbfSharp.Benchmark.DbfReaderBenchmarks-report-github.md @@ -0,0 +1,15 @@ +``` + +BenchmarkDotNet v0.15.2, Linux Ubuntu 24.04.2 LTS (Noble Numbat) +Intel Xeon Processor 2.30GHz, 1 CPU, 4 logical and 4 physical cores +.NET SDK 9.0.109 + [Host] : .NET 9.0.8 (9.0.825.36511), X64 RyuJIT AVX2 + DefaultJob : .NET 9.0.8 (9.0.825.36511), X64 RyuJIT AVX2 + + +``` +| Method | RowCount | Mean | Error | StdDev | Median | Gen0 | Gen1 | Allocated | +|--------------------------------------------- |--------- |------------:|----------:|----------:|------------:|------------:|----------:|-----------:| +| **'Read all records from a generated DBF file'** | **100000** | **235.9 ms** | **1.37 ms** | **1.21 ms** | **235.6 ms** | **2666.6667** | **-** | **67.18 MB** | +| **'Read all records from a generated DBF file'** | **1000000** | **2,281.9 ms** | **15.83 ms** | **13.22 ms** | **2,278.9 ms** | **31000.0000** | **-** | **698.9 MB** | +| **'Read all records from a generated DBF file'** | **10000000** | **23,486.2 ms** | **467.46 ms** | **986.03 ms** | **22,963.4 ms** | **312000.0000** | **2000.0000** | **7016.15 MB** | diff --git a/BenchmarkDotNet.Artifacts/results/DbfSharp.Benchmark.DbfReaderBenchmarks-report.csv b/BenchmarkDotNet.Artifacts/results/DbfSharp.Benchmark.DbfReaderBenchmarks-report.csv new file mode 100644 index 0000000..dc5f834 --- /dev/null +++ b/BenchmarkDotNet.Artifacts/results/DbfSharp.Benchmark.DbfReaderBenchmarks-report.csv @@ -0,0 +1,4 @@ +Method,Job,AnalyzeLaunchVariance,EvaluateOverhead,MaxAbsoluteError,MaxRelativeError,MinInvokeCount,MinIterationTime,OutlierMode,Affinity,EnvironmentVariables,Jit,LargeAddressAware,Platform,PowerPlanMode,Runtime,AllowVeryLargeObjects,Concurrent,CpuGroups,Force,HeapAffinitizeMask,HeapCount,NoAffinitize,RetainVm,Server,Arguments,BuildConfiguration,Clock,EngineFactory,NuGetReferences,Toolchain,IsMutator,InvocationCount,IterationCount,IterationTime,LaunchCount,MaxIterationCount,MaxWarmupIterationCount,MemoryRandomization,MinIterationCount,MinWarmupIterationCount,RunStrategy,UnrollFactor,WarmupCount,RowCount,Mean,Error,StdDev,Median,Gen0,Gen1,Allocated +'Read all records from a generated DBF file',DefaultJob,False,Default,Default,Default,Default,Default,Default,1111,Empty,RyuJit,Default,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 9.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,100000,235.9 ms,1.37 ms,1.21 ms,235.6 ms,2666.6667,0.0000,67.18 MB +'Read all records from a generated DBF file',DefaultJob,False,Default,Default,Default,Default,Default,Default,1111,Empty,RyuJit,Default,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 9.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,1000000,"2,281.9 ms",15.83 ms,13.22 ms,"2,278.9 ms",31000.0000,0.0000,698.9 MB +'Read all records from a generated DBF file',DefaultJob,False,Default,Default,Default,Default,Default,Default,1111,Empty,RyuJit,Default,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 9.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,10000000,"23,486.2 ms",467.46 ms,986.03 ms,"22,963.4 ms",312000.0000,2000.0000,7016.15 MB diff --git a/BenchmarkDotNet.Artifacts/results/DbfSharp.Benchmark.DbfReaderBenchmarks-report.html b/BenchmarkDotNet.Artifacts/results/DbfSharp.Benchmark.DbfReaderBenchmarks-report.html new file mode 100644 index 0000000..3e1f095 --- /dev/null +++ b/BenchmarkDotNet.Artifacts/results/DbfSharp.Benchmark.DbfReaderBenchmarks-report.html @@ -0,0 +1,32 @@ + + +
+ +
+BenchmarkDotNet v0.15.2, Linux Ubuntu 24.04.2 LTS (Noble Numbat)
+Intel Xeon Processor 2.30GHz, 1 CPU, 4 logical and 4 physical cores
+.NET SDK 9.0.109
+ [Host] : .NET 9.0.8 (9.0.825.36511), X64 RyuJIT AVX2
+ DefaultJob : .NET 9.0.8 (9.0.825.36511), X64 RyuJIT AVX2
+
+
+
+| Method | RowCount | Mean | Error | StdDev | Median | Gen0 | Gen1 | Allocated | +
|---|---|---|---|---|---|---|---|---|
| 'Read all records from a generated DBF file' | 100000 | 235.9 ms | 1.37 ms | 1.21 ms | 235.6 ms | 2666.6667 | - | 67.18 MB | +
| 'Read all records from a generated DBF file' | 1000000 | 2,281.9 ms | 15.83 ms | 13.22 ms | 2,278.9 ms | 31000.0000 | - | 698.9 MB | +
| 'Read all records from a generated DBF file' | 10000000 | 23,486.2 ms | 467.46 ms | 986.03 ms | 22,963.4 ms | 312000.0000 | 2000.0000 | 7016.15 MB | +