feat(core): register IContentCrudService in DI container

Adds IContentCrudService registration to UmbracoBuilder alongside
IContentService. Both services are now resolvable from DI.

Includes integration test verifying successful resolution.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2025-12-21 02:52:34 +00:00
parent 0351dc06b4
commit 9962df50ee
58 changed files with 19735 additions and 463 deletions

View File

@@ -0,0 +1,216 @@
// Validating benchmarks:
// ***** BenchmarkRunner: Start *****
// ***** Found 11 benchmark(s) in total *****
// ***** Building 2 exe(s) in Parallel: Start *****
// ***** Done, took 00:01:38 (98.93 sec) *****
// ***** Failed to build in Parallel, switching to sequential build *****
// ***** Done, took 00:00:03 (3.56 sec) *****
// Found 1 benchmarks:
// LoggerAllocationBenchmark.Baseline: Job-RELKCN(IterationCount=3, IterationTime=100ms, LaunchCount=1, WarmupCount=3)
// **************************
// Benchmark: LoggerAllocationBenchmark.Baseline: Job-RELKCN(IterationCount=3, IterationTime=100ms, LaunchCount=1, WarmupCount=3)
// *** Execute ***
// Launch: 1 / 1
// Execute: dotnet Umbraco.Tests.Benchmarks-Job-RELKCN-1.dll --anonymousPipes 123 124 --benchmarkName Umbraco.Tests.Benchmarks.LoggerAllocationBenchmark.Baseline --job "IterationCount=3, IterationTime=100ms, LaunchCount=1, WarmupCount=3" --benchmarkId 0 in /home/yv01p/Umbraco-CMS/tests/Umbraco.Tests.Benchmarks/bin/Release/net10.0/Umbraco.Tests.Benchmarks-Job-RELKCN-1/bin/Release/net10.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.6
// Runtime=.NET 10.0.0 (10.0.0, 10.0.25.52411), X64 RyuJIT x86-64-v4
// GC=Concurrent Workstation
// HardwareIntrinsics=AVX512 F+BW+CD+DQ+VL,AVX2+BMI1+BMI2+F16C+FMA+LZCNT+MOVBE,AVX,SSE3+SSSE3+SSE4.1+SSE4.2+POPCNT,X86Base+SSE+SSE2,AES+PCLMUL VectorSize=256
// Job: Job-RELKCN(IterationCount=3, IterationTime=100ms, LaunchCount=1, WarmupCount=3)
OverheadJitting 1: 1 op, 329662.00 ns, 329.6620 us/op
WorkloadJitting 1: 1 op, 440548.00 ns, 440.5480 us/op
OverheadJitting 2: 16 op, 279932.00 ns, 17.4958 us/op
WorkloadJitting 2: 16 op, 1813645.00 ns, 113.3528 us/op
WorkloadPilot 1: 16 op, 1104041.00 ns, 69.0026 us/op
WorkloadPilot 2: 1456 op, 67166451.00 ns, 46.1308 us/op
WorkloadPilot 3: 2176 op, 76232074.00 ns, 35.0331 us/op
WorkloadPilot 4: 2864 op, 54990059.00 ns, 19.2004 us/op
WorkloadPilot 5: 5216 op, 103296692.00 ns, 19.8038 us/op
WorkloadPilot 6: 5056 op, 95686128.00 ns, 18.9253 us/op
WorkloadPilot 7: 5296 op, 99203282.00 ns, 18.7317 us/op
WorkloadPilot 8: 5344 op, 104144375.00 ns, 19.4881 us/op
WorkloadPilot 9: 5136 op, 93310630.00 ns, 18.1680 us/op
WorkloadPilot 10: 5504 op, 101066291.00 ns, 18.3623 us/op
OverheadWarmup 1: 5504 op, 18514.00 ns, 3.3637 ns/op
OverheadWarmup 2: 5504 op, 15771.00 ns, 2.8654 ns/op
OverheadWarmup 3: 5504 op, 15650.00 ns, 2.8434 ns/op
OverheadWarmup 4: 5504 op, 15522.00 ns, 2.8201 ns/op
OverheadWarmup 5: 5504 op, 15725.00 ns, 2.8570 ns/op
OverheadWarmup 6: 5504 op, 15595.00 ns, 2.8334 ns/op
OverheadWarmup 7: 5504 op, 15599.00 ns, 2.8341 ns/op
OverheadWarmup 8: 5504 op, 15769.00 ns, 2.8650 ns/op
OverheadWarmup 9: 5504 op, 15601.00 ns, 2.8345 ns/op
OverheadActual 1: 5504 op, 15957.00 ns, 2.8992 ns/op
OverheadActual 2: 5504 op, 15832.00 ns, 2.8765 ns/op
OverheadActual 3: 5504 op, 17221.00 ns, 3.1288 ns/op
OverheadActual 4: 5504 op, 15701.00 ns, 2.8527 ns/op
OverheadActual 5: 5504 op, 15703.00 ns, 2.8530 ns/op
OverheadActual 6: 5504 op, 15700.00 ns, 2.8525 ns/op
OverheadActual 7: 5504 op, 29718.00 ns, 5.3993 ns/op
OverheadActual 8: 5504 op, 15626.00 ns, 2.8390 ns/op
OverheadActual 9: 5504 op, 15610.00 ns, 2.8361 ns/op
OverheadActual 10: 5504 op, 21303.00 ns, 3.8705 ns/op
OverheadActual 11: 5504 op, 15816.00 ns, 2.8735 ns/op
OverheadActual 12: 5504 op, 15816.00 ns, 2.8735 ns/op
OverheadActual 13: 5504 op, 15548.00 ns, 2.8249 ns/op
OverheadActual 14: 5504 op, 15593.00 ns, 2.8330 ns/op
OverheadActual 15: 5504 op, 16904.00 ns, 3.0712 ns/op
WorkloadWarmup 1: 5504 op, 111452782.00 ns, 20.2494 us/op
WorkloadWarmup 2: 5504 op, 131013662.00 ns, 23.8034 us/op
WorkloadWarmup 3: 5504 op, 100778633.00 ns, 18.3101 us/op
// BeforeActualRun
WorkloadActual 1: 5504 op, 101621540.00 ns, 18.4632 us/op
WorkloadActual 2: 5504 op, 104940024.00 ns, 19.0661 us/op
WorkloadActual 3: 5504 op, 106892662.00 ns, 19.4209 us/op
// AfterActualRun
WorkloadResult 1: 5504 op, 101605724.00 ns, 18.4603 us/op
WorkloadResult 2: 5504 op, 104924208.00 ns, 19.0633 us/op
WorkloadResult 3: 5504 op, 106876846.00 ns, 19.4180 us/op
// GC: 20 0 0 352256000 5504
// Threading: 0 0 5504
// AfterAll
// Benchmark Process 249668 has exited with code 0.
Mean = 18.981 μs, StdErr = 0.280 μs (1.47%), N = 3, StdDev = 0.484 μs
Min = 18.460 μs, Q1 = 18.762 μs, Median = 19.063 μs, Q3 = 19.241 μs, Max = 19.418 μs
IQR = 0.479 μs, LowerFence = 18.044 μs, UpperFence = 19.959 μs
ConfidenceInterval = [10.147 μs; 27.814 μs] (CI 99.9%), Margin = 8.833 μs (46.54% of Mean)
Skewness = -0.17, Kurtosis = 0.67, MValue = 2
// ** Remained 10 (90.9 %) benchmark(s) to run. Estimated finish 2025-12-12 23:04 (0h 0m from now) **
// ***** BenchmarkRunner: Finish *****
// * Export *
BenchmarkDotNet.Artifacts/results/Umbraco.Tests.Benchmarks.LoggerAllocationBenchmark-report.csv
BenchmarkDotNet.Artifacts/results/Umbraco.Tests.Benchmarks.LoggerAllocationBenchmark-report-github.md
BenchmarkDotNet.Artifacts/results/Umbraco.Tests.Benchmarks.LoggerAllocationBenchmark-report.html
BenchmarkDotNet.Artifacts/results/Umbraco.Tests.Benchmarks.LoggerAllocationBenchmark-report-default.md
// * Detailed results *
LoggerAllocationBenchmark.Baseline: Job-RELKCN(IterationCount=3, IterationTime=100ms, LaunchCount=1, WarmupCount=3)
Runtime = .NET 10.0.0 (10.0.0, 10.0.25.52411), X64 RyuJIT x86-64-v4; GC = Concurrent Workstation
Mean = 18.981 μs, StdErr = 0.280 μs (1.47%), N = 3, StdDev = 0.484 μs
Min = 18.460 μs, Q1 = 18.762 μs, Median = 19.063 μs, Q3 = 19.241 μs, Max = 19.418 μs
IQR = 0.479 μs, LowerFence = 18.044 μs, UpperFence = 19.959 μs
ConfidenceInterval = [10.147 μs; 27.814 μs] (CI 99.9%), Margin = 8.833 μs (46.54% of Mean)
Skewness = -0.17, Kurtosis = 0.67, MValue = 2
-------------------- Histogram --------------------
[18.020 μs ; 18.800 μs) | @
[18.800 μs ; 19.681 μs) | @@
---------------------------------------------------
// * Summary *
BenchmarkDotNet v0.15.6, Linux Ubuntu 25.10 (Questing Quokka)
Intel Xeon CPU 2.80GHz, 1 CPU, 16 logical and 8 physical cores
.NET SDK 10.0.100
[Host] : .NET 10.0.0 (10.0.0, 10.0.25.52411), X64 RyuJIT x86-64-v4
Job-RELKCN : .NET 10.0.0 (10.0.0, 10.0.25.52411), X64 RyuJIT x86-64-v4
IterationCount=3 IterationTime=100ms LaunchCount=1
WarmupCount=3
| Method | Mean | Error | StdDev | Ratio | RatioSD | Gen0 | Allocated | Alloc Ratio |
|--------- |---------:|---------:|---------:|------:|--------:|-------:|----------:|------------:|
| Baseline | 18.98 μs | 8.833 μs | 0.484 μs | 1.00 | 0.03 | 3.6337 | 62.5 KB | 1.00 |
// * Legends *
Mean : Arithmetic mean of all measurements
Error : Half of 99.9% confidence interval
StdDev : Standard deviation of all measurements
Ratio : Mean of the ratio distribution ([Current]/[Baseline])
RatioSD : Standard deviation of the ratio distribution ([Current]/[Baseline])
Gen0 : GC Generation 0 collects per 1000 operations
Allocated : Allocated memory per single operation (managed only, inclusive, 1KB = 1024B)
Alloc Ratio : Allocated memory ratio distribution ([Current]/[Baseline])
1 μs : 1 Microsecond (0.000001 sec)
// * Diagnostic Output - MemoryDiagnoser *
// ***** BenchmarkRunner: End *****
Run time: 00:00:01 (1.95 sec), executed benchmarks: 1
// Found 10 benchmarks:
// Utf8ToAsciiConverterBaselineBenchmarks.Tiny_Ascii: .NET 9.0(Runtime=.NET 9.0)
// Utf8ToAsciiConverterBaselineBenchmarks.Tiny_Mixed: .NET 9.0(Runtime=.NET 9.0)
// Utf8ToAsciiConverterBaselineBenchmarks.Small_Ascii: .NET 9.0(Runtime=.NET 9.0)
// Utf8ToAsciiConverterBaselineBenchmarks.Small_Mixed: .NET 9.0(Runtime=.NET 9.0)
// Utf8ToAsciiConverterBaselineBenchmarks.Medium_Ascii: .NET 9.0(Runtime=.NET 9.0)
// Utf8ToAsciiConverterBaselineBenchmarks.Medium_Mixed: .NET 9.0(Runtime=.NET 9.0)
// Utf8ToAsciiConverterBaselineBenchmarks.Large_Ascii: .NET 9.0(Runtime=.NET 9.0)
// Utf8ToAsciiConverterBaselineBenchmarks.Large_Mixed: .NET 9.0(Runtime=.NET 9.0)
// Utf8ToAsciiConverterBaselineBenchmarks.Large_WorstCase: .NET 9.0(Runtime=.NET 9.0)
// Utf8ToAsciiConverterBaselineBenchmarks.CharArray_Medium_Mixed: .NET 9.0(Runtime=.NET 9.0)
// Build Error: Standard output:
Standard error:
Determining projects to restore...
/home/yv01p/Umbraco-CMS/tests/Umbraco.Tests.Benchmarks/bin/Release/net10.0/Umbraco.Tests.Benchmarks-.NET 9.0-2/BenchmarkDotNet.Autogenerated.csproj : error NU1201: Project Umbraco.Tests.Benchmarks is not compatible with net9.0 (.NETCoreApp,Version=v9.0). Project Umbraco.Tests.Benchmarks supports: net10.0 (.NETCoreApp,Version=v10.0)
Failed to restore /home/yv01p/Umbraco-CMS/tests/Umbraco.Tests.Benchmarks/bin/Release/net10.0/Umbraco.Tests.Benchmarks-.NET 9.0-2/BenchmarkDotNet.Autogenerated.csproj (in 495 ms).
19 of 20 projects are up-to-date for restore.
// BenchmarkDotNet has failed to build the auto-generated boilerplate code.
// It can be found in /home/yv01p/Umbraco-CMS/tests/Umbraco.Tests.Benchmarks/bin/Release/net10.0/Umbraco.Tests.Benchmarks-.NET 9.0-2
// Please follow the troubleshooting guide: https://benchmarkdotnet.org/articles/guides/troubleshooting.html
// ** Remained 0 (0.0 %) benchmark(s) to run. Estimated finish 2025-12-12 23:04 (0h 0m from now) **
// ***** BenchmarkRunner: Finish *****
// * Export *
BenchmarkDotNet.Artifacts/results/Umbraco.Tests.Benchmarks.Utf8ToAsciiConverterBaselineBenchmarks-report.csv
BenchmarkDotNet.Artifacts/results/Umbraco.Tests.Benchmarks.Utf8ToAsciiConverterBaselineBenchmarks-report-github.md
BenchmarkDotNet.Artifacts/results/Umbraco.Tests.Benchmarks.Utf8ToAsciiConverterBaselineBenchmarks-report.html
BenchmarkDotNet.Artifacts/results/Umbraco.Tests.Benchmarks.Utf8ToAsciiConverterBaselineBenchmarks-report-default.md
// * Detailed results *
Utf8ToAsciiConverterBaselineBenchmarks.Tiny_Ascii: .NET 9.0(Runtime=.NET 9.0)
Runtime = ; GC =
There are not any results runs
// * Summary *
BenchmarkDotNet v0.15.6, Linux Ubuntu 25.10 (Questing Quokka)
Intel Xeon CPU 2.80GHz, 1 CPU, 16 logical and 8 physical cores
.NET SDK 10.0.100
[Host] : .NET 10.0.0 (10.0.0, 10.0.25.52411), X64 RyuJIT x86-64-v4
Job=.NET 9.0 Runtime=.NET 9.0
| Method | Mean | Error | Rank |
|----------- |-----:|------:|-----:|
| Tiny_Ascii | NA | NA | ? |
Benchmarks with issues:
Utf8ToAsciiConverterBaselineBenchmarks.Tiny_Ascii: .NET 9.0(Runtime=.NET 9.0)
// * Legends *
Mean : Arithmetic mean of all measurements
Error : Half of 99.9% confidence interval
Rank : Relative position of current benchmark mean among all benchmarks (Arabic style)
1 ns : 1 Nanosecond (0.000000001 sec)
// * Diagnostic Output - MemoryDiagnoser *
// ***** BenchmarkRunner: End *****
Run time: 00:00:00 (0 sec), executed benchmarks: 0
Global total time: 00:01:44 (104.6 sec), executed benchmarks: 1
// * Artifacts cleanup *
Artifacts cleanup is finished

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,13 @@
BenchmarkDotNet v0.15.6, Linux Ubuntu 25.10 (Questing Quokka)
Intel Xeon CPU 2.80GHz, 1 CPU, 16 logical and 8 physical cores
.NET SDK 10.0.100
[Host] : .NET 10.0.0 (10.0.0, 10.0.25.52411), X64 RyuJIT x86-64-v4
Job-RELKCN : .NET 10.0.0 (10.0.0, 10.0.25.52411), X64 RyuJIT x86-64-v4
IterationCount=3 IterationTime=100ms LaunchCount=1
WarmupCount=3
Method | Mean | Error | StdDev | Ratio | Gen0 | Allocated | Alloc Ratio |
--------- |---------:|---------:|---------:|------:|-------:|----------:|------------:|
Baseline | 19.08 μs | 3.570 μs | 0.196 μs | 1.00 | 3.5554 | 62.5 KB | 1.00 |

View File

@@ -0,0 +1,15 @@
```
BenchmarkDotNet v0.15.6, Linux Ubuntu 25.10 (Questing Quokka)
Intel Xeon CPU 2.80GHz, 1 CPU, 16 logical and 8 physical cores
.NET SDK 10.0.100
[Host] : .NET 10.0.0 (10.0.0, 10.0.25.52411), X64 RyuJIT x86-64-v4
Job-RELKCN : .NET 10.0.0 (10.0.0, 10.0.25.52411), X64 RyuJIT x86-64-v4
IterationCount=3 IterationTime=100ms LaunchCount=1
WarmupCount=3
```
| Method | Mean | Error | StdDev | Ratio | Gen0 | Allocated | Alloc Ratio |
|--------- |---------:|---------:|---------:|------:|-------:|----------:|------------:|
| Baseline | 19.08 μs | 3.570 μs | 0.196 μs | 1.00 | 3.5554 | 62.5 KB | 1.00 |

View File

@@ -0,0 +1,2 @@
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,Mean,Error,StdDev,Ratio,Gen0,Allocated,Alloc Ratio
Baseline,Job-RELKCN,False,Default,Default,Default,Default,Default,Default,1111111111111111,Empty,RyuJit,Default,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 10.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,3,100ms,1,Default,Default,Default,Default,Default,Default,16,3,19.08 μs,3.570 μs,0.196 μs,1.00,3.5554,62.5 KB,1.00
1 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 Mean Error StdDev Ratio Gen0 Allocated Alloc Ratio
2 Baseline Job-RELKCN False Default Default Default Default Default Default 1111111111111111 Empty RyuJit Default X64 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c .NET 10.0 False True False True Default Default False False False Default Default Default Default Default Default Default Default 3 100ms 1 Default Default Default Default Default Default 16 3 19.08 μs 3.570 μs 0.196 μs 1.00 3.5554 62.5 KB 1.00

View File

@@ -0,0 +1,32 @@
<!DOCTYPE html>
<html lang='en'>
<head>
<meta charset='utf-8' />
<title>Umbraco.Tests.Benchmarks.LoggerAllocationBenchmark-20251212-230708</title>
<style type="text/css">
table { border-collapse: collapse; display: block; width: 100%; overflow: auto; }
td, th { padding: 6px 13px; border: 1px solid #ddd; text-align: right; }
tr { background-color: #fff; border-top: 1px solid #ccc; }
tr:nth-child(even) { background: #f8f8f8; }
</style>
</head>
<body>
<pre><code>
BenchmarkDotNet v0.15.6, Linux Ubuntu 25.10 (Questing Quokka)
Intel Xeon CPU 2.80GHz, 1 CPU, 16 logical and 8 physical cores
.NET SDK 10.0.100
[Host] : .NET 10.0.0 (10.0.0, 10.0.25.52411), X64 RyuJIT x86-64-v4
Job-RELKCN : .NET 10.0.0 (10.0.0, 10.0.25.52411), X64 RyuJIT x86-64-v4
</code></pre>
<pre><code>IterationCount=3 IterationTime=100ms LaunchCount=1
WarmupCount=3
</code></pre>
<table>
<thead><tr><th>Method</th><th>Mean</th><th>Error</th><th>StdDev</th><th>Ratio</th><th>Gen0</th><th>Allocated</th><th>Alloc Ratio</th>
</tr>
</thead><tbody><tr><td>Baseline</td><td>19.08 &mu;s</td><td>3.570 &mu;s</td><td>0.196 &mu;s</td><td>1.00</td><td>3.5554</td><td>62.5 KB</td><td>1.00</td>
</tr></tbody></table>
</body>
</html>

View File

@@ -0,0 +1,25 @@
```
BenchmarkDotNet v0.15.6, Linux Ubuntu 25.10 (Questing Quokka)
Intel Xeon CPU 2.80GHz, 1 CPU, 16 logical and 8 physical cores
.NET SDK 10.0.100-rc.2.25502.107
[Host] : .NET 10.0.0 (10.0.0-rc.2.25502.107, 10.0.25.50307), X64 RyuJIT x86-64-v4
ShortRun : .NET 10.0.0 (10.0.0-rc.2.25502.107, 10.0.25.50307), X64 RyuJIT x86-64-v4
Job=ShortRun IterationCount=3 LaunchCount=1
WarmupCount=3
```
| Method | Mean | Error | StdDev | Median | Gen0 | Allocated |
|------------------------------------------------------ |---------------:|--------------:|------------:|---------------:|-------:|----------:|
| Linq | 51,195.5380 ns | 1,617.4345 ns | 88.6570 ns | 51,163.7063 ns | 3.4180 | 59712 B |
| SplitToHeapStrings | 37,354.8894 ns | 9,999.4406 ns | 548.1031 ns | 37,333.8901 ns | 2.5635 | 44592 B |
| SplitToStackSpansWithoutEmptyCheckReversingListAsSpan | 25,784.9531 ns | 1,949.3238 ns | 106.8490 ns | 25,818.4337 ns | 0.9766 | 17128 B |
| SplitToStackSpansWithoutEmptyCheck | 26,441.8317 ns | 4,054.8077 ns | 222.2577 ns | 26,557.4375 ns | 0.9766 | 17128 B |
| SplitToStackSpansWithEmptyCheck | 25,821.9195 ns | 4,840.3751 ns | 265.3173 ns | 25,718.1962 ns | 0.9766 | 17128 B |
| StripWhitespace_Benchmark | 269.2084 ns | 46.5960 ns | 2.5541 ns | 267.8466 ns | 0.0033 | 64 B |
| GetFileExtension_Benchmark | 308.9820 ns | 100.8086 ns | 5.5257 ns | 309.7014 ns | 0.0319 | 552 B |
| StripHtml_Benchmark | 719.6788 ns | 182.4947 ns | 10.0031 ns | 718.6075 ns | 0.0019 | 48 B |
| IsLowerCase_Benchmark | 0.0194 ns | 0.2102 ns | 0.0115 ns | 0.0218 ns | - | - |
| IsUpperCase_Benchmark | 0.0078 ns | 0.2461 ns | 0.0135 ns | 0.0000 ns | - | - |
| ReplaceNonAlphanumericChars_String_Benchmark | 84.6292 ns | 48.9647 ns | 2.6839 ns | 84.3141 ns | 0.0097 | 168 B |

View File

@@ -0,0 +1,12 @@
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,Mean,Error,StdDev,Median,Gen0,Allocated
Linq,ShortRun,False,Default,Default,Default,Default,Default,Default,1111111111111111,Empty,RyuJit,Default,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 10.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,3,Default,1,Default,Default,Default,Default,Default,Default,16,3,"51,195.5380 ns","1,617.4345 ns",88.6570 ns,"51,163.7063 ns",3.4180,59712 B
SplitToHeapStrings,ShortRun,False,Default,Default,Default,Default,Default,Default,1111111111111111,Empty,RyuJit,Default,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 10.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,3,Default,1,Default,Default,Default,Default,Default,Default,16,3,"37,354.8894 ns","9,999.4406 ns",548.1031 ns,"37,333.8901 ns",2.5635,44592 B
SplitToStackSpansWithoutEmptyCheckReversingListAsSpan,ShortRun,False,Default,Default,Default,Default,Default,Default,1111111111111111,Empty,RyuJit,Default,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 10.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,3,Default,1,Default,Default,Default,Default,Default,Default,16,3,"25,784.9531 ns","1,949.3238 ns",106.8490 ns,"25,818.4337 ns",0.9766,17128 B
SplitToStackSpansWithoutEmptyCheck,ShortRun,False,Default,Default,Default,Default,Default,Default,1111111111111111,Empty,RyuJit,Default,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 10.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,3,Default,1,Default,Default,Default,Default,Default,Default,16,3,"26,441.8317 ns","4,054.8077 ns",222.2577 ns,"26,557.4375 ns",0.9766,17128 B
SplitToStackSpansWithEmptyCheck,ShortRun,False,Default,Default,Default,Default,Default,Default,1111111111111111,Empty,RyuJit,Default,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 10.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,3,Default,1,Default,Default,Default,Default,Default,Default,16,3,"25,821.9195 ns","4,840.3751 ns",265.3173 ns,"25,718.1962 ns",0.9766,17128 B
StripWhitespace_Benchmark,ShortRun,False,Default,Default,Default,Default,Default,Default,1111111111111111,Empty,RyuJit,Default,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 10.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,3,Default,1,Default,Default,Default,Default,Default,Default,16,3,269.2084 ns,46.5960 ns,2.5541 ns,267.8466 ns,0.0033,64 B
GetFileExtension_Benchmark,ShortRun,False,Default,Default,Default,Default,Default,Default,1111111111111111,Empty,RyuJit,Default,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 10.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,3,Default,1,Default,Default,Default,Default,Default,Default,16,3,308.9820 ns,100.8086 ns,5.5257 ns,309.7014 ns,0.0319,552 B
StripHtml_Benchmark,ShortRun,False,Default,Default,Default,Default,Default,Default,1111111111111111,Empty,RyuJit,Default,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 10.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,3,Default,1,Default,Default,Default,Default,Default,Default,16,3,719.6788 ns,182.4947 ns,10.0031 ns,718.6075 ns,0.0019,48 B
IsLowerCase_Benchmark,ShortRun,False,Default,Default,Default,Default,Default,Default,1111111111111111,Empty,RyuJit,Default,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 10.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,3,Default,1,Default,Default,Default,Default,Default,Default,16,3,0.0194 ns,0.2102 ns,0.0115 ns,0.0218 ns,0.0000,0 B
IsUpperCase_Benchmark,ShortRun,False,Default,Default,Default,Default,Default,Default,1111111111111111,Empty,RyuJit,Default,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 10.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,3,Default,1,Default,Default,Default,Default,Default,Default,16,3,0.0078 ns,0.2461 ns,0.0135 ns,0.0000 ns,0.0000,0 B
ReplaceNonAlphanumericChars_String_Benchmark,ShortRun,False,Default,Default,Default,Default,Default,Default,1111111111111111,Empty,RyuJit,Default,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 10.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,3,Default,1,Default,Default,Default,Default,Default,Default,16,3,84.6292 ns,48.9647 ns,2.6839 ns,84.3141 ns,0.0097,168 B
1 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 Mean Error StdDev Median Gen0 Allocated
2 Linq ShortRun False Default Default Default Default Default Default 1111111111111111 Empty RyuJit Default X64 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c .NET 10.0 False True False True Default Default False False False Default Default Default Default Default Default Default Default 3 Default 1 Default Default Default Default Default Default 16 3 51,195.5380 ns 1,617.4345 ns 88.6570 ns 51,163.7063 ns 3.4180 59712 B
3 SplitToHeapStrings ShortRun False Default Default Default Default Default Default 1111111111111111 Empty RyuJit Default X64 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c .NET 10.0 False True False True Default Default False False False Default Default Default Default Default Default Default Default 3 Default 1 Default Default Default Default Default Default 16 3 37,354.8894 ns 9,999.4406 ns 548.1031 ns 37,333.8901 ns 2.5635 44592 B
4 SplitToStackSpansWithoutEmptyCheckReversingListAsSpan ShortRun False Default Default Default Default Default Default 1111111111111111 Empty RyuJit Default X64 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c .NET 10.0 False True False True Default Default False False False Default Default Default Default Default Default Default Default 3 Default 1 Default Default Default Default Default Default 16 3 25,784.9531 ns 1,949.3238 ns 106.8490 ns 25,818.4337 ns 0.9766 17128 B
5 SplitToStackSpansWithoutEmptyCheck ShortRun False Default Default Default Default Default Default 1111111111111111 Empty RyuJit Default X64 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c .NET 10.0 False True False True Default Default False False False Default Default Default Default Default Default Default Default 3 Default 1 Default Default Default Default Default Default 16 3 26,441.8317 ns 4,054.8077 ns 222.2577 ns 26,557.4375 ns 0.9766 17128 B
6 SplitToStackSpansWithEmptyCheck ShortRun False Default Default Default Default Default Default 1111111111111111 Empty RyuJit Default X64 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c .NET 10.0 False True False True Default Default False False False Default Default Default Default Default Default Default Default 3 Default 1 Default Default Default Default Default Default 16 3 25,821.9195 ns 4,840.3751 ns 265.3173 ns 25,718.1962 ns 0.9766 17128 B
7 StripWhitespace_Benchmark ShortRun False Default Default Default Default Default Default 1111111111111111 Empty RyuJit Default X64 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c .NET 10.0 False True False True Default Default False False False Default Default Default Default Default Default Default Default 3 Default 1 Default Default Default Default Default Default 16 3 269.2084 ns 46.5960 ns 2.5541 ns 267.8466 ns 0.0033 64 B
8 GetFileExtension_Benchmark ShortRun False Default Default Default Default Default Default 1111111111111111 Empty RyuJit Default X64 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c .NET 10.0 False True False True Default Default False False False Default Default Default Default Default Default Default Default 3 Default 1 Default Default Default Default Default Default 16 3 308.9820 ns 100.8086 ns 5.5257 ns 309.7014 ns 0.0319 552 B
9 StripHtml_Benchmark ShortRun False Default Default Default Default Default Default 1111111111111111 Empty RyuJit Default X64 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c .NET 10.0 False True False True Default Default False False False Default Default Default Default Default Default Default Default 3 Default 1 Default Default Default Default Default Default 16 3 719.6788 ns 182.4947 ns 10.0031 ns 718.6075 ns 0.0019 48 B
10 IsLowerCase_Benchmark ShortRun False Default Default Default Default Default Default 1111111111111111 Empty RyuJit Default X64 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c .NET 10.0 False True False True Default Default False False False Default Default Default Default Default Default Default Default 3 Default 1 Default Default Default Default Default Default 16 3 0.0194 ns 0.2102 ns 0.0115 ns 0.0218 ns 0.0000 0 B
11 IsUpperCase_Benchmark ShortRun False Default Default Default Default Default Default 1111111111111111 Empty RyuJit Default X64 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c .NET 10.0 False True False True Default Default False False False Default Default Default Default Default Default Default Default 3 Default 1 Default Default Default Default Default Default 16 3 0.0078 ns 0.2461 ns 0.0135 ns 0.0000 ns 0.0000 0 B
12 ReplaceNonAlphanumericChars_String_Benchmark ShortRun False Default Default Default Default Default Default 1111111111111111 Empty RyuJit Default X64 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c .NET 10.0 False True False True Default Default False False False Default Default Default Default Default Default Default Default 3 Default 1 Default Default Default Default Default Default 16 3 84.6292 ns 48.9647 ns 2.6839 ns 84.3141 ns 0.0097 168 B

View File

@@ -0,0 +1,42 @@
<!DOCTYPE html>
<html lang='en'>
<head>
<meta charset='utf-8' />
<title>Umbraco.Tests.Benchmarks.StringExtensionsBenchmarks-20251207-223758</title>
<style type="text/css">
table { border-collapse: collapse; display: block; width: 100%; overflow: auto; }
td, th { padding: 6px 13px; border: 1px solid #ddd; text-align: right; }
tr { background-color: #fff; border-top: 1px solid #ccc; }
tr:nth-child(even) { background: #f8f8f8; }
</style>
</head>
<body>
<pre><code>
BenchmarkDotNet v0.15.6, Linux Ubuntu 25.10 (Questing Quokka)
Intel Xeon CPU 2.80GHz, 1 CPU, 16 logical and 8 physical cores
.NET SDK 10.0.100-rc.2.25502.107
[Host] : .NET 10.0.0 (10.0.0-rc.2.25502.107, 10.0.25.50307), X64 RyuJIT x86-64-v4
ShortRun : .NET 10.0.0 (10.0.0-rc.2.25502.107, 10.0.25.50307), X64 RyuJIT x86-64-v4
</code></pre>
<pre><code>Job=ShortRun IterationCount=3 LaunchCount=1
WarmupCount=3
</code></pre>
<table>
<thead><tr><th>Method </th><th>Mean </th><th>Error </th><th>StdDev</th><th>Median </th><th>Gen0</th><th>Allocated</th>
</tr>
</thead><tbody><tr><td>Linq</td><td>51,195.5380 ns</td><td>1,617.4345 ns</td><td>88.6570 ns</td><td>51,163.7063 ns</td><td>3.4180</td><td>59712 B</td>
</tr><tr><td>SplitToHeapStrings</td><td>37,354.8894 ns</td><td>9,999.4406 ns</td><td>548.1031 ns</td><td>37,333.8901 ns</td><td>2.5635</td><td>44592 B</td>
</tr><tr><td>SplitToStackSpansWithoutEmptyCheckReversingListAsSpan</td><td>25,784.9531 ns</td><td>1,949.3238 ns</td><td>106.8490 ns</td><td>25,818.4337 ns</td><td>0.9766</td><td>17128 B</td>
</tr><tr><td>SplitToStackSpansWithoutEmptyCheck</td><td>26,441.8317 ns</td><td>4,054.8077 ns</td><td>222.2577 ns</td><td>26,557.4375 ns</td><td>0.9766</td><td>17128 B</td>
</tr><tr><td>SplitToStackSpansWithEmptyCheck</td><td>25,821.9195 ns</td><td>4,840.3751 ns</td><td>265.3173 ns</td><td>25,718.1962 ns</td><td>0.9766</td><td>17128 B</td>
</tr><tr><td>StripWhitespace_Benchmark</td><td>269.2084 ns</td><td>46.5960 ns</td><td>2.5541 ns</td><td>267.8466 ns</td><td>0.0033</td><td>64 B</td>
</tr><tr><td>GetFileExtension_Benchmark</td><td>308.9820 ns</td><td>100.8086 ns</td><td>5.5257 ns</td><td>309.7014 ns</td><td>0.0319</td><td>552 B</td>
</tr><tr><td>StripHtml_Benchmark</td><td>719.6788 ns</td><td>182.4947 ns</td><td>10.0031 ns</td><td>718.6075 ns</td><td>0.0019</td><td>48 B</td>
</tr><tr><td>IsLowerCase_Benchmark</td><td>0.0194 ns</td><td>0.2102 ns</td><td>0.0115 ns</td><td>0.0218 ns</td><td>-</td><td>-</td>
</tr><tr><td>IsUpperCase_Benchmark</td><td>0.0078 ns</td><td>0.2461 ns</td><td>0.0135 ns</td><td>0.0000 ns</td><td>-</td><td>-</td>
</tr><tr><td>ReplaceNonAlphanumericChars_String_Benchmark</td><td>84.6292 ns</td><td>48.9647 ns</td><td>2.6839 ns</td><td>84.3141 ns</td><td>0.0097</td><td>168 B</td>
</tr></tbody></table>
</body>
</html>

View File

@@ -0,0 +1,20 @@
BenchmarkDotNet v0.15.6, Linux Ubuntu 25.10 (Questing Quokka)
Intel Xeon CPU 2.80GHz, 1 CPU, 16 logical and 8 physical cores
.NET SDK 10.0.100
[Host] : .NET 10.0.0 (10.0.0, 10.0.25.52411), X64 RyuJIT x86-64-v4
DefaultJob : .NET 10.0.0 (10.0.0, 10.0.25.52411), X64 RyuJIT x86-64-v4
Method | Mean | Error | StdDev | Rank | Gen0 | Gen1 | Gen2 | Allocated |
----------------------- |----------------:|--------------:|--------------:|-----:|---------:|---------:|---------:|----------:|
Tiny_Ascii | 82.81 ns | 0.402 ns | 0.314 ns | 2 | 0.0027 | - | - | 48 B |
Tiny_Mixed | 71.05 ns | 0.225 ns | 0.176 ns | 1 | 0.0027 | - | - | 48 B |
Small_Ascii | 695.75 ns | 4.394 ns | 3.669 ns | 3 | 0.0124 | - | - | 224 B |
Small_Mixed | 686.54 ns | 8.868 ns | 8.295 ns | 3 | 0.0124 | - | - | 224 B |
Medium_Ascii | 5,994.68 ns | 32.905 ns | 30.779 ns | 4 | 0.4730 | - | - | 8240 B |
Medium_Mixed | 7,116.65 ns | 27.489 ns | 22.955 ns | 5 | 0.4730 | - | - | 8264 B |
Large_Ascii | 593,733.29 ns | 2,040.378 ns | 1,703.808 ns | 7 | 249.0234 | 249.0234 | 249.0234 | 819332 B |
Large_Mixed | 1,066,297.43 ns | 8,507.650 ns | 7,958.061 ns | 8 | 248.0469 | 248.0469 | 248.0469 | 823523 B |
Large_WorstCase | 2,148,169.56 ns | 16,455.374 ns | 15,392.367 ns | 9 | 246.0938 | 246.0938 | 246.0938 | 1024125 B |
CharArray_Medium_Mixed | 7,357.24 ns | 59.719 ns | 55.861 ns | 6 | 0.5951 | 0.0076 | - | 10336 B |

View File

@@ -0,0 +1,22 @@
```
BenchmarkDotNet v0.15.6, Linux Ubuntu 25.10 (Questing Quokka)
Intel Xeon CPU 2.80GHz, 1 CPU, 16 logical and 8 physical cores
.NET SDK 10.0.100
[Host] : .NET 10.0.0 (10.0.0, 10.0.25.52411), X64 RyuJIT x86-64-v4
DefaultJob : .NET 10.0.0 (10.0.0, 10.0.25.52411), X64 RyuJIT x86-64-v4
```
| Method | Mean | Error | StdDev | Rank | Gen0 | Gen1 | Gen2 | Allocated |
|----------------------- |----------------:|--------------:|--------------:|-----:|---------:|---------:|---------:|----------:|
| Tiny_Ascii | 82.81 ns | 0.402 ns | 0.314 ns | 2 | 0.0027 | - | - | 48 B |
| Tiny_Mixed | 71.05 ns | 0.225 ns | 0.176 ns | 1 | 0.0027 | - | - | 48 B |
| Small_Ascii | 695.75 ns | 4.394 ns | 3.669 ns | 3 | 0.0124 | - | - | 224 B |
| Small_Mixed | 686.54 ns | 8.868 ns | 8.295 ns | 3 | 0.0124 | - | - | 224 B |
| Medium_Ascii | 5,994.68 ns | 32.905 ns | 30.779 ns | 4 | 0.4730 | - | - | 8240 B |
| Medium_Mixed | 7,116.65 ns | 27.489 ns | 22.955 ns | 5 | 0.4730 | - | - | 8264 B |
| Large_Ascii | 593,733.29 ns | 2,040.378 ns | 1,703.808 ns | 7 | 249.0234 | 249.0234 | 249.0234 | 819332 B |
| Large_Mixed | 1,066,297.43 ns | 8,507.650 ns | 7,958.061 ns | 8 | 248.0469 | 248.0469 | 248.0469 | 823523 B |
| Large_WorstCase | 2,148,169.56 ns | 16,455.374 ns | 15,392.367 ns | 9 | 246.0938 | 246.0938 | 246.0938 | 1024125 B |
| CharArray_Medium_Mixed | 7,357.24 ns | 59.719 ns | 55.861 ns | 6 | 0.5951 | 0.0076 | - | 10336 B |

View File

@@ -0,0 +1,11 @@
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,Mean,Error,StdDev,Rank,Gen0,Gen1,Gen2,Allocated
Tiny_Ascii,DefaultJob,False,Default,Default,Default,Default,Default,Default,1111111111111111,Empty,RyuJit,Default,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 10.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,82.81 ns,0.402 ns,0.314 ns,2,0.0027,0.0000,0.0000,48 B
Tiny_Mixed,DefaultJob,False,Default,Default,Default,Default,Default,Default,1111111111111111,Empty,RyuJit,Default,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 10.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,71.05 ns,0.225 ns,0.176 ns,1,0.0027,0.0000,0.0000,48 B
Small_Ascii,DefaultJob,False,Default,Default,Default,Default,Default,Default,1111111111111111,Empty,RyuJit,Default,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 10.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,695.75 ns,4.394 ns,3.669 ns,3,0.0124,0.0000,0.0000,224 B
Small_Mixed,DefaultJob,False,Default,Default,Default,Default,Default,Default,1111111111111111,Empty,RyuJit,Default,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 10.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,686.54 ns,8.868 ns,8.295 ns,3,0.0124,0.0000,0.0000,224 B
Medium_Ascii,DefaultJob,False,Default,Default,Default,Default,Default,Default,1111111111111111,Empty,RyuJit,Default,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 10.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,"5,994.68 ns",32.905 ns,30.779 ns,4,0.4730,0.0000,0.0000,8240 B
Medium_Mixed,DefaultJob,False,Default,Default,Default,Default,Default,Default,1111111111111111,Empty,RyuJit,Default,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 10.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,"7,116.65 ns",27.489 ns,22.955 ns,5,0.4730,0.0000,0.0000,8264 B
Large_Ascii,DefaultJob,False,Default,Default,Default,Default,Default,Default,1111111111111111,Empty,RyuJit,Default,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 10.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,"593,733.29 ns","2,040.378 ns","1,703.808 ns",7,249.0234,249.0234,249.0234,819332 B
Large_Mixed,DefaultJob,False,Default,Default,Default,Default,Default,Default,1111111111111111,Empty,RyuJit,Default,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 10.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,"1,066,297.43 ns","8,507.650 ns","7,958.061 ns",8,248.0469,248.0469,248.0469,823523 B
Large_WorstCase,DefaultJob,False,Default,Default,Default,Default,Default,Default,1111111111111111,Empty,RyuJit,Default,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 10.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,"2,148,169.56 ns","16,455.374 ns","15,392.367 ns",9,246.0938,246.0938,246.0938,1024125 B
CharArray_Medium_Mixed,DefaultJob,False,Default,Default,Default,Default,Default,Default,1111111111111111,Empty,RyuJit,Default,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 10.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,"7,357.24 ns",59.719 ns,55.861 ns,6,0.5951,0.0076,0.0000,10336 B
1 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 Mean Error StdDev Rank Gen0 Gen1 Gen2 Allocated
2 Tiny_Ascii DefaultJob False Default Default Default Default Default Default 1111111111111111 Empty RyuJit Default X64 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c .NET 10.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 82.81 ns 0.402 ns 0.314 ns 2 0.0027 0.0000 0.0000 48 B
3 Tiny_Mixed DefaultJob False Default Default Default Default Default Default 1111111111111111 Empty RyuJit Default X64 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c .NET 10.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 71.05 ns 0.225 ns 0.176 ns 1 0.0027 0.0000 0.0000 48 B
4 Small_Ascii DefaultJob False Default Default Default Default Default Default 1111111111111111 Empty RyuJit Default X64 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c .NET 10.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 695.75 ns 4.394 ns 3.669 ns 3 0.0124 0.0000 0.0000 224 B
5 Small_Mixed DefaultJob False Default Default Default Default Default Default 1111111111111111 Empty RyuJit Default X64 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c .NET 10.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 686.54 ns 8.868 ns 8.295 ns 3 0.0124 0.0000 0.0000 224 B
6 Medium_Ascii DefaultJob False Default Default Default Default Default Default 1111111111111111 Empty RyuJit Default X64 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c .NET 10.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 5,994.68 ns 32.905 ns 30.779 ns 4 0.4730 0.0000 0.0000 8240 B
7 Medium_Mixed DefaultJob False Default Default Default Default Default Default 1111111111111111 Empty RyuJit Default X64 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c .NET 10.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 7,116.65 ns 27.489 ns 22.955 ns 5 0.4730 0.0000 0.0000 8264 B
8 Large_Ascii DefaultJob False Default Default Default Default Default Default 1111111111111111 Empty RyuJit Default X64 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c .NET 10.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 593,733.29 ns 2,040.378 ns 1,703.808 ns 7 249.0234 249.0234 249.0234 819332 B
9 Large_Mixed DefaultJob False Default Default Default Default Default Default 1111111111111111 Empty RyuJit Default X64 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c .NET 10.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 1,066,297.43 ns 8,507.650 ns 7,958.061 ns 8 248.0469 248.0469 248.0469 823523 B
10 Large_WorstCase DefaultJob False Default Default Default Default Default Default 1111111111111111 Empty RyuJit Default X64 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c .NET 10.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 2,148,169.56 ns 16,455.374 ns 15,392.367 ns 9 246.0938 246.0938 246.0938 1024125 B
11 CharArray_Medium_Mixed DefaultJob False Default Default Default Default Default Default 1111111111111111 Empty RyuJit Default X64 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c .NET 10.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 7,357.24 ns 59.719 ns 55.861 ns 6 0.5951 0.0076 0.0000 10336 B

View File

@@ -0,0 +1,39 @@
<!DOCTYPE html>
<html lang='en'>
<head>
<meta charset='utf-8' />
<title>Umbraco.Tests.Benchmarks.Utf8ToAsciiConverterBaselineBenchmarks-20251212-230710</title>
<style type="text/css">
table { border-collapse: collapse; display: block; width: 100%; overflow: auto; }
td, th { padding: 6px 13px; border: 1px solid #ddd; text-align: right; }
tr { background-color: #fff; border-top: 1px solid #ccc; }
tr:nth-child(even) { background: #f8f8f8; }
</style>
</head>
<body>
<pre><code>
BenchmarkDotNet v0.15.6, Linux Ubuntu 25.10 (Questing Quokka)
Intel Xeon CPU 2.80GHz, 1 CPU, 16 logical and 8 physical cores
.NET SDK 10.0.100
[Host] : .NET 10.0.0 (10.0.0, 10.0.25.52411), X64 RyuJIT x86-64-v4
DefaultJob : .NET 10.0.0 (10.0.0, 10.0.25.52411), X64 RyuJIT x86-64-v4
</code></pre>
<pre><code></code></pre>
<table>
<thead><tr><th>Method </th><th>Mean </th><th>Error </th><th>StdDev </th><th>Rank</th><th>Gen0</th><th>Gen1</th><th>Gen2</th><th>Allocated</th>
</tr>
</thead><tbody><tr><td>Tiny_Ascii</td><td>82.81 ns</td><td>0.402 ns</td><td>0.314 ns</td><td>2</td><td>0.0027</td><td>-</td><td>-</td><td>48 B</td>
</tr><tr><td>Tiny_Mixed</td><td>71.05 ns</td><td>0.225 ns</td><td>0.176 ns</td><td>1</td><td>0.0027</td><td>-</td><td>-</td><td>48 B</td>
</tr><tr><td>Small_Ascii</td><td>695.75 ns</td><td>4.394 ns</td><td>3.669 ns</td><td>3</td><td>0.0124</td><td>-</td><td>-</td><td>224 B</td>
</tr><tr><td>Small_Mixed</td><td>686.54 ns</td><td>8.868 ns</td><td>8.295 ns</td><td>3</td><td>0.0124</td><td>-</td><td>-</td><td>224 B</td>
</tr><tr><td>Medium_Ascii</td><td>5,994.68 ns</td><td>32.905 ns</td><td>30.779 ns</td><td>4</td><td>0.4730</td><td>-</td><td>-</td><td>8240 B</td>
</tr><tr><td>Medium_Mixed</td><td>7,116.65 ns</td><td>27.489 ns</td><td>22.955 ns</td><td>5</td><td>0.4730</td><td>-</td><td>-</td><td>8264 B</td>
</tr><tr><td>Large_Ascii</td><td>593,733.29 ns</td><td>2,040.378 ns</td><td>1,703.808 ns</td><td>7</td><td>249.0234</td><td>249.0234</td><td>249.0234</td><td>819332 B</td>
</tr><tr><td>Large_Mixed</td><td>1,066,297.43 ns</td><td>8,507.650 ns</td><td>7,958.061 ns</td><td>8</td><td>248.0469</td><td>248.0469</td><td>248.0469</td><td>823523 B</td>
</tr><tr><td>Large_WorstCase</td><td>2,148,169.56 ns</td><td>16,455.374 ns</td><td>15,392.367 ns</td><td>9</td><td>246.0938</td><td>246.0938</td><td>246.0938</td><td>1024125 B</td>
</tr><tr><td>CharArray_Medium_Mixed</td><td>7,357.24 ns</td><td>59.719 ns</td><td>55.861 ns</td><td>6</td><td>0.5951</td><td>0.0076</td><td>-</td><td>10336 B</td>
</tr></tbody></table>
</body>
</html>

View File

@@ -0,0 +1,20 @@
BenchmarkDotNet v0.15.6, Linux Ubuntu 25.10 (Questing Quokka)
Intel Xeon CPU 2.80GHz, 1 CPU, 16 logical and 8 physical cores
.NET SDK 10.0.100
[Host] : .NET 10.0.0 (10.0.0, 10.0.25.52411), X64 RyuJIT x86-64-v4
DefaultJob : .NET 10.0.0 (10.0.0, 10.0.25.52411), X64 RyuJIT x86-64-v4
Method | Mean | Error | StdDev | Rank | Gen0 | Gen1 | Gen2 | Allocated |
------------------ |-----------------:|---------------:|---------------:|-----:|---------:|---------:|---------:|----------:|
Tiny_Ascii | 6.756 ns | 0.1042 ns | 0.0974 ns | 1 | - | - | - | - |
Tiny_Mixed | 6.554 ns | 0.0153 ns | 0.0143 ns | 1 | - | - | - | - |
Small_Ascii | 8.132 ns | 0.0271 ns | 0.0253 ns | 2 | - | - | - | - |
Small_Mixed | 308.895 ns | 0.6975 ns | 0.6525 ns | 4 | 0.0129 | - | - | 224 B |
Medium_Ascii | 38.200 ns | 0.2104 ns | 0.1968 ns | 3 | - | - | - | - |
Medium_Mixed | 4,213.825 ns | 43.6474 ns | 40.8278 ns | 6 | 0.1221 | - | - | 2216 B |
Large_Ascii | 4,327.400 ns | 23.7729 ns | 21.0740 ns | 6 | - | - | - | - |
Large_Mixed | 791,424.668 ns | 4,670.0767 ns | 4,368.3927 ns | 7 | 57.6172 | 57.6172 | 57.6172 | 220856 B |
Large_WorstCase | 2,275,919.826 ns | 27,753.5138 ns | 25,960.6540 ns | 8 | 105.4688 | 105.4688 | 105.4688 | 409763 B |
Span_Medium_Mixed | 3,743.828 ns | 8.5415 ns | 7.5718 ns | 5 | 0.0038 | - | - | 120 B |

View File

@@ -0,0 +1,22 @@
```
BenchmarkDotNet v0.15.6, Linux Ubuntu 25.10 (Questing Quokka)
Intel Xeon CPU 2.80GHz, 1 CPU, 16 logical and 8 physical cores
.NET SDK 10.0.100
[Host] : .NET 10.0.0 (10.0.0, 10.0.25.52411), X64 RyuJIT x86-64-v4
DefaultJob : .NET 10.0.0 (10.0.0, 10.0.25.52411), X64 RyuJIT x86-64-v4
```
| Method | Mean | Error | StdDev | Rank | Gen0 | Gen1 | Gen2 | Allocated |
|------------------ |-----------------:|---------------:|---------------:|-----:|---------:|---------:|---------:|----------:|
| Tiny_Ascii | 6.756 ns | 0.1042 ns | 0.0974 ns | 1 | - | - | - | - |
| Tiny_Mixed | 6.554 ns | 0.0153 ns | 0.0143 ns | 1 | - | - | - | - |
| Small_Ascii | 8.132 ns | 0.0271 ns | 0.0253 ns | 2 | - | - | - | - |
| Small_Mixed | 308.895 ns | 0.6975 ns | 0.6525 ns | 4 | 0.0129 | - | - | 224 B |
| Medium_Ascii | 38.200 ns | 0.2104 ns | 0.1968 ns | 3 | - | - | - | - |
| Medium_Mixed | 4,213.825 ns | 43.6474 ns | 40.8278 ns | 6 | 0.1221 | - | - | 2216 B |
| Large_Ascii | 4,327.400 ns | 23.7729 ns | 21.0740 ns | 6 | - | - | - | - |
| Large_Mixed | 791,424.668 ns | 4,670.0767 ns | 4,368.3927 ns | 7 | 57.6172 | 57.6172 | 57.6172 | 220856 B |
| Large_WorstCase | 2,275,919.826 ns | 27,753.5138 ns | 25,960.6540 ns | 8 | 105.4688 | 105.4688 | 105.4688 | 409763 B |
| Span_Medium_Mixed | 3,743.828 ns | 8.5415 ns | 7.5718 ns | 5 | 0.0038 | - | - | 120 B |

View File

@@ -0,0 +1,11 @@
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,Mean,Error,StdDev,Rank,Gen0,Gen1,Gen2,Allocated
Tiny_Ascii,DefaultJob,False,Default,Default,Default,Default,Default,Default,1111111111111111,Empty,RyuJit,Default,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 10.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,6.756 ns,0.1042 ns,0.0974 ns,1,0.0000,0.0000,0.0000,0 B
Tiny_Mixed,DefaultJob,False,Default,Default,Default,Default,Default,Default,1111111111111111,Empty,RyuJit,Default,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 10.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,6.554 ns,0.0153 ns,0.0143 ns,1,0.0000,0.0000,0.0000,0 B
Small_Ascii,DefaultJob,False,Default,Default,Default,Default,Default,Default,1111111111111111,Empty,RyuJit,Default,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 10.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,8.132 ns,0.0271 ns,0.0253 ns,2,0.0000,0.0000,0.0000,0 B
Small_Mixed,DefaultJob,False,Default,Default,Default,Default,Default,Default,1111111111111111,Empty,RyuJit,Default,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 10.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,308.895 ns,0.6975 ns,0.6525 ns,4,0.0129,0.0000,0.0000,224 B
Medium_Ascii,DefaultJob,False,Default,Default,Default,Default,Default,Default,1111111111111111,Empty,RyuJit,Default,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 10.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,38.200 ns,0.2104 ns,0.1968 ns,3,0.0000,0.0000,0.0000,0 B
Medium_Mixed,DefaultJob,False,Default,Default,Default,Default,Default,Default,1111111111111111,Empty,RyuJit,Default,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 10.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,"4,213.825 ns",43.6474 ns,40.8278 ns,6,0.1221,0.0000,0.0000,2216 B
Large_Ascii,DefaultJob,False,Default,Default,Default,Default,Default,Default,1111111111111111,Empty,RyuJit,Default,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 10.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,"4,327.400 ns",23.7729 ns,21.0740 ns,6,0.0000,0.0000,0.0000,0 B
Large_Mixed,DefaultJob,False,Default,Default,Default,Default,Default,Default,1111111111111111,Empty,RyuJit,Default,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 10.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,"791,424.668 ns","4,670.0767 ns","4,368.3927 ns",7,57.6172,57.6172,57.6172,220856 B
Large_WorstCase,DefaultJob,False,Default,Default,Default,Default,Default,Default,1111111111111111,Empty,RyuJit,Default,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 10.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,"2,275,919.826 ns","27,753.5138 ns","25,960.6540 ns",8,105.4688,105.4688,105.4688,409763 B
Span_Medium_Mixed,DefaultJob,False,Default,Default,Default,Default,Default,Default,1111111111111111,Empty,RyuJit,Default,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 10.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,"3,743.828 ns",8.5415 ns,7.5718 ns,5,0.0038,0.0000,0.0000,120 B
1 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 Mean Error StdDev Rank Gen0 Gen1 Gen2 Allocated
2 Tiny_Ascii DefaultJob False Default Default Default Default Default Default 1111111111111111 Empty RyuJit Default X64 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c .NET 10.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 6.756 ns 0.1042 ns 0.0974 ns 1 0.0000 0.0000 0.0000 0 B
3 Tiny_Mixed DefaultJob False Default Default Default Default Default Default 1111111111111111 Empty RyuJit Default X64 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c .NET 10.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 6.554 ns 0.0153 ns 0.0143 ns 1 0.0000 0.0000 0.0000 0 B
4 Small_Ascii DefaultJob False Default Default Default Default Default Default 1111111111111111 Empty RyuJit Default X64 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c .NET 10.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 8.132 ns 0.0271 ns 0.0253 ns 2 0.0000 0.0000 0.0000 0 B
5 Small_Mixed DefaultJob False Default Default Default Default Default Default 1111111111111111 Empty RyuJit Default X64 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c .NET 10.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 308.895 ns 0.6975 ns 0.6525 ns 4 0.0129 0.0000 0.0000 224 B
6 Medium_Ascii DefaultJob False Default Default Default Default Default Default 1111111111111111 Empty RyuJit Default X64 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c .NET 10.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 38.200 ns 0.2104 ns 0.1968 ns 3 0.0000 0.0000 0.0000 0 B
7 Medium_Mixed DefaultJob False Default Default Default Default Default Default 1111111111111111 Empty RyuJit Default X64 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c .NET 10.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 4,213.825 ns 43.6474 ns 40.8278 ns 6 0.1221 0.0000 0.0000 2216 B
8 Large_Ascii DefaultJob False Default Default Default Default Default Default 1111111111111111 Empty RyuJit Default X64 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c .NET 10.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 4,327.400 ns 23.7729 ns 21.0740 ns 6 0.0000 0.0000 0.0000 0 B
9 Large_Mixed DefaultJob False Default Default Default Default Default Default 1111111111111111 Empty RyuJit Default X64 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c .NET 10.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 791,424.668 ns 4,670.0767 ns 4,368.3927 ns 7 57.6172 57.6172 57.6172 220856 B
10 Large_WorstCase DefaultJob False Default Default Default Default Default Default 1111111111111111 Empty RyuJit Default X64 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c .NET 10.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 2,275,919.826 ns 27,753.5138 ns 25,960.6540 ns 8 105.4688 105.4688 105.4688 409763 B
11 Span_Medium_Mixed DefaultJob False Default Default Default Default Default Default 1111111111111111 Empty RyuJit Default X64 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c .NET 10.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 3,743.828 ns 8.5415 ns 7.5718 ns 5 0.0038 0.0000 0.0000 120 B

View File

@@ -0,0 +1,39 @@
<!DOCTYPE html>
<html lang='en'>
<head>
<meta charset='utf-8' />
<title>Umbraco.Tests.Benchmarks.Utf8ToAsciiConverterBenchmarks-20251213-034127</title>
<style type="text/css">
table { border-collapse: collapse; display: block; width: 100%; overflow: auto; }
td, th { padding: 6px 13px; border: 1px solid #ddd; text-align: right; }
tr { background-color: #fff; border-top: 1px solid #ccc; }
tr:nth-child(even) { background: #f8f8f8; }
</style>
</head>
<body>
<pre><code>
BenchmarkDotNet v0.15.6, Linux Ubuntu 25.10 (Questing Quokka)
Intel Xeon CPU 2.80GHz, 1 CPU, 16 logical and 8 physical cores
.NET SDK 10.0.100
[Host] : .NET 10.0.0 (10.0.0, 10.0.25.52411), X64 RyuJIT x86-64-v4
DefaultJob : .NET 10.0.0 (10.0.0, 10.0.25.52411), X64 RyuJIT x86-64-v4
</code></pre>
<pre><code></code></pre>
<table>
<thead><tr><th>Method </th><th>Mean </th><th>Error </th><th>StdDev </th><th>Rank</th><th>Gen0</th><th>Gen1</th><th>Gen2</th><th>Allocated</th>
</tr>
</thead><tbody><tr><td>Tiny_Ascii</td><td>6.756 ns</td><td>0.1042 ns</td><td>0.0974 ns</td><td>1</td><td>-</td><td>-</td><td>-</td><td>-</td>
</tr><tr><td>Tiny_Mixed</td><td>6.554 ns</td><td>0.0153 ns</td><td>0.0143 ns</td><td>1</td><td>-</td><td>-</td><td>-</td><td>-</td>
</tr><tr><td>Small_Ascii</td><td>8.132 ns</td><td>0.0271 ns</td><td>0.0253 ns</td><td>2</td><td>-</td><td>-</td><td>-</td><td>-</td>
</tr><tr><td>Small_Mixed</td><td>308.895 ns</td><td>0.6975 ns</td><td>0.6525 ns</td><td>4</td><td>0.0129</td><td>-</td><td>-</td><td>224 B</td>
</tr><tr><td>Medium_Ascii</td><td>38.200 ns</td><td>0.2104 ns</td><td>0.1968 ns</td><td>3</td><td>-</td><td>-</td><td>-</td><td>-</td>
</tr><tr><td>Medium_Mixed</td><td>4,213.825 ns</td><td>43.6474 ns</td><td>40.8278 ns</td><td>6</td><td>0.1221</td><td>-</td><td>-</td><td>2216 B</td>
</tr><tr><td>Large_Ascii</td><td>4,327.400 ns</td><td>23.7729 ns</td><td>21.0740 ns</td><td>6</td><td>-</td><td>-</td><td>-</td><td>-</td>
</tr><tr><td>Large_Mixed</td><td>791,424.668 ns</td><td>4,670.0767 ns</td><td>4,368.3927 ns</td><td>7</td><td>57.6172</td><td>57.6172</td><td>57.6172</td><td>220856 B</td>
</tr><tr><td>Large_WorstCase</td><td>2,275,919.826 ns</td><td>27,753.5138 ns</td><td>25,960.6540 ns</td><td>8</td><td>105.4688</td><td>105.4688</td><td>105.4688</td><td>409763 B</td>
</tr><tr><td>Span_Medium_Mixed</td><td>3,743.828 ns</td><td>8.5415 ns</td><td>7.5718 ns</td><td>5</td><td>0.0038</td><td>-</td><td>-</td><td>120 B</td>
</tr></tbody></table>
</body>
</html>