Skip to content

[Benchmark X64] [Copilot] Add packed SearchValues<string> specialization for ... #1694

@MihuBot

Description

@MihuBot

Job completed in 1 hour 55 minutes (remote runner delay: 1 minute 48 seconds).
dotnet/runtime#122749
Using arguments: benchmark Regex_Industry https://github.com/MihaZupan/performance/tree/compiled-regex-only -medium
Main commit: dotnet/runtime@ec72407
PR commit: dotnet/runtime@41b248e

System.Text.RegularExpressions.Tests.Perf_Regex_Industry_SliceSlice
BenchmarkDotNet v0.14.1-nightly.20250107.205, Linux Ubuntu 22.04.5 LTS (Jammy Jellyfish)
AMD EPYC 9V74, 1 CPU, 8 logical and 4 physical cores
MediumRun : .NET 11.0.0 (42.42.42.42424), X64 RyuJIT AVX-512F+CD+BW+DQ+VL+VBMI
Job=MediumRun  OutlierMode=Default  IterationCount=15
LaunchCount=2  MemoryRandomization=Default  MinIterationCount=3
WarmupCount=10
Method Toolchain Options Mean Error Ratio Allocated Alloc Ratio
Count Main Compiled 289.6 ms 0.30 ms 1.00 392 B 1.00
Count PR Compiled 288.1 ms 0.88 ms 1.00 392 B 1.00
Count Main IgnoreCase, Compiled 334.0 ms 0.13 ms 1.00 1072 B 1.00
Count PR IgnoreCase, Compiled 537.8 ms 1.33 ms 1.61 1744 B 1.63
System.Text.RegularExpressions.Tests.Perf_Regex_Industry_RustLang_Sherlock
BenchmarkDotNet v0.14.1-nightly.20250107.205, Linux Ubuntu 22.04.5 LTS (Jammy Jellyfish)
AMD EPYC 9V74, 1 CPU, 8 logical and 4 physical cores
MediumRun : .NET 11.0.0 (42.42.42.42424), X64 RyuJIT AVX-512F+CD+BW+DQ+VL+VBMI
Job=MediumRun  OutlierMode=DontRemove  IterationCount=15
LaunchCount=2  MemoryRandomization=True  WarmupCount=10
Method Toolchain Pattern Mean Error Ratio Allocated Alloc Ratio
Count Main .* 541,454.75 ns 4,621.297 ns 1.00 2 B 1.00
Count PR .* 536,709.41 ns 1,736.417 ns 0.99 2 B 1.00
Count Main (?i)Holmes 41,968.09 ns 102.422 ns 1.00 - NA
Count PR (?i)Holmes 42,154.03 ns 96.569 ns 1.00 - NA
Count Main (?i)Sher[a-z]+|Hol[a-z]+ 120,251.86 ns 24,225.828 ns 1.09 1 B 1.00
Count PR (?i)Sher[a-z]+|Hol[a-z]+ 87,119.47 ns 1,905.280 ns 0.79 - 0.00
Count Main (?i)Sherlock 34,059.80 ns 128.196 ns 1.00 - NA
Count PR (?i)Sherlock 33,991.70 ns 113.963 ns 1.00 - NA
Count Main (?i)Sherlock Holmes 34,098.71 ns 149.606 ns 1.00 - NA
Count PR (?i)Sherlock Holmes 34,069.77 ns 112.612 ns 1.00 - NA
Count Main (?i)Sherlock|Holmes|Watson 122,576.52 ns 23,574.211 ns 1.08 - NA
Count PR (?i)Sherlock|Holmes|Watson 121,817.85 ns 24,432.933 ns 1.08 - NA
Count Main (?i)Sherlock|(...)er|John|Baker [49] 192,515.46 ns 21,467.438 ns 1.03 1 B 1.00
Count PR (?i)Sherlock|(...)er|John|Baker [49] 192,371.48 ns 21,512.149 ns 1.03 1 B 1.00
Count Main (?i)the 205,892.89 ns 1,033.568 ns 1.00 1 B 1.00
Count PR (?i)the 205,158.06 ns 2,175.059 ns 1.00 1 B 1.00
Count Main (?m)^Sherlock(...)rlock Holmes$ [37] 32,536.65 ns 63.066 ns 1.00 - NA
Count PR (?m)^Sherlock(...)rlock Holmes$ [37] 32,415.13 ns 79.272 ns 1.00 - NA
Count Main (?s).* 33.22 ns 0.033 ns 1.00 - NA
Count PR (?s).* 34.84 ns 0.651 ns 1.05 - NA
Count Main [^\\n]* 537,694.77 ns 1,362.209 ns 1.00 2 B 1.00
Count PR [^\\n]* 553,109.89 ns 17,389.614 ns 1.03 2 B 1.00
Count Main [a-q][^u-z]{13}x 23,268.54 ns 51.579 ns 1.00 - NA
Count PR [a-q][^u-z]{13}x 23,201.99 ns 61.330 ns 1.00 - NA
Count Main [a-zA-Z]+ing 3,359,221.54 ns 13,821.634 ns 1.00 9 B 1.00
Count PR [a-zA-Z]+ing 3,331,495.25 ns 1,344.920 ns 0.99 11 B 1.22
Count Main \b\w+n\b 6,314,796.19 ns 5,078.587 ns 1.00 20 B 1.00
Count PR \b\w+n\b 6,530,874.58 ns 307,032.862 ns 1.03 22 B 1.10
Count Main \p{L} 9,129,852.64 ns 19,612.328 ns 1.00 31 B 1.00
Count PR \p{L} 9,052,414.48 ns 11,146.881 ns 0.99 25 B 0.81
Count Main \p{Ll} 8,789,584.69 ns 26,986.433 ns 1.00 30 B 1.00
Count PR \p{Ll} 8,672,094.59 ns 13,546.984 ns 0.99 228 B 7.60
Count Main \p{Lu} 362,489.72 ns 7,444.175 ns 1.00 1 B 1.00
Count PR \p{Lu} 351,251.44 ns 8,858.415 ns 0.97 1 B 1.00
Count Main \s[a-zA-Z]{0,12}ing\s 3,455,340.17 ns 5,576.059 ns 1.00 12 B 1.00
Count PR \s[a-zA-Z]{0,12}ing\s 3,453,863.66 ns 5,265.628 ns 1.00 11 B 0.92
Count Main \w+ 4,083,774.94 ns 63,979.934 ns 1.00 18 B 1.00
Count PR \w+ 4,123,722.02 ns 44,666.048 ns 1.01 18 B 1.00
Count Main \w+\s+Holmes 2,792,744.33 ns 6,151.489 ns 1.00 11 B 1.00
Count PR \w+\s+Holmes 2,799,764.59 ns 3,950.852 ns 1.00 8 B 0.73
Count Main \w+\s+Holmes\s+\w+ 3,172,372.23 ns 20,617.858 ns 1.00 12 B 1.00
Count PR \w+\s+Holmes\s+\w+ 3,165,427.91 ns 18,706.271 ns 1.00 12 B 1.00
Count Main aei 28,809.31 ns 304.399 ns 1.00 - NA
Count PR aei 28,790.16 ns 306.429 ns 1.00 - NA
Count Main aqj 28,745.20 ns 278.670 ns 1.00 - NA
Count PR aqj 28,813.02 ns 319.225 ns 1.00 - NA
Count Main Holmes 39,422.20 ns 151.471 ns 1.00 - NA
Count PR Holmes 39,300.74 ns 118.037 ns 1.00 - NA
Count Main Holmes.{0,25}(...).{0,25}Holmes [39] 47,045.31 ns 142.749 ns 1.00 - NA
Count PR Holmes.{0,25}(...).{0,25}Holmes [39] 55,441.07 ns 1,913.632 ns 1.18 - NA
Count Main Sher[a-z]+|Hol[a-z]+ 48,537.02 ns 133.598 ns 1.00 - NA
Count PR Sher[a-z]+|Hol[a-z]+ 58,226.76 ns 2,312.811 ns 1.20 - NA
Count Main Sherlock 31,896.99 ns 112.113 ns 1.00 - NA
Count PR Sherlock 31,924.54 ns 86.261 ns 1.00 - NA
Count Main Sherlock Holmes 32,923.49 ns 92.270 ns 1.00 - NA
Count PR Sherlock Holmes 32,885.58 ns 120.191 ns 1.00 - NA
Count Main Sherlock\s+Holmes 32,509.84 ns 111.095 ns 1.00 - NA
Count PR Sherlock\s+Holmes 32,557.09 ns 119.990 ns 1.00 - NA
Count Main Sherlock|Holmes 44,919.79 ns 90.850 ns 1.00 1 B 1.00
Count PR Sherlock|Holmes 53,262.15 ns 1,624.868 ns 1.19 - 0.00
Count Main Sherlock|Holmes|Watson 59,059.95 ns 127.555 ns 1.00 1 B 1.00
Count PR Sherlock|Holmes|Watson 57,340.16 ns 1,514.026 ns 0.97 - 0.00
Count Main Sherlock|Holm(...)er|John|Baker [45] 88,300.28 ns 133.638 ns 1.00 - NA
Count PR Sherlock|Holm(...)er|John|Baker [45] 61,671.27 ns 1,730.529 ns 0.70 - NA
Count Main Sherlock|Street 25,366.19 ns 133.939 ns 1.00 - NA
Count PR Sherlock|Street 42,451.12 ns 1,426.262 ns 1.67 - NA
Count Main the 169,021.05 ns 244.508 ns 1.00 - NA
Count PR the 172,710.09 ns 2,670.724 ns 1.02 - NA
Count Main The 44,221.46 ns 92.505 ns 1.00 - NA
Count PR The 44,138.23 ns 62.413 ns 1.00 - NA
Count Main the\s+\w+ 263,985.83 ns 896.905 ns 1.00 1 B 1.00
Count PR the\s+\w+ 263,438.50 ns 721.061 ns 1.00 1 B 1.00
Count Main zqj 28,712.15 ns 293.981 ns 1.00 - NA
Count PR zqj 28,808.56 ns 297.457 ns 1.00 - NA
System.Text.RegularExpressions.Tests.Perf_Regex_Industry_Mariomkas
BenchmarkDotNet v0.14.1-nightly.20250107.205, Linux Ubuntu 22.04.5 LTS (Jammy Jellyfish)
AMD EPYC 9V74, 1 CPU, 8 logical and 4 physical cores
MediumRun : .NET 11.0.0 (42.42.42.42424), X64 RyuJIT AVX-512F+CD+BW+DQ+VL+VBMI
Job=MediumRun  IterationCount=15  LaunchCount=2
WarmupCount=10
Method Toolchain Pattern Mean Error Ratio Allocated Alloc Ratio
Ctor Main (?:(?:250-5]?[0-9][0-9]) [87] 18.81 μs 0.059 μs 1.00 30552 B 1.00
Ctor PR (?:(?:250-5]?[0-9][0-9]) [87] 20.31 μs 0.150 μs 1.08 34328 B 1.12
Count Main (?:(?:250-5]?[0-9][0-9]) [87] 2,671.96 μs 4.920 μs 1.00 12 B 1.00
Count PR (?:(?:250-5]?[0-9][0-9]) [87] 2,671.86 μs 4.052 μs 1.00 15 B 1.25
Ctor Main [\w]+://[^/\s(...)?(?:#[^\\s]*)? [51] 14.97 μs 0.147 μs 1.00 23216 B 1.00
Ctor PR [\w]+://[^/\s(...)?(?:#[^\\s]*)? [51] 15.08 μs 0.091 μs 1.01 23384 B 1.01
Count Main [\w]+://[^/\s(...)?(?:#[^\\s]*)? [51] 771.00 μs 2.631 μs 1.00 3 B 1.00
Count PR [\w]+://[^/\s(...)?(?:#[^\\s]*)? [51] 769.26 μs 1.914 μs 1.00 4 B 1.33
Ctor Main [\w\.+-]+@[\w\.-]+\.[\w\.-]+ 11.85 μs 0.039 μs 1.00 13880 B 1.00
Ctor PR [\w\.+-]+@[\w\.-]+\.[\w\.-]+ 11.85 μs 0.095 μs 1.00 14048 B 1.01
Count Main [\w\.+-]+@[\w\.-]+\.[\w\.-]+ 184.92 μs 0.392 μs 1.00 1 B 1.00
Count PR [\w\.+-]+@[\w\.-]+\.[\w\.-]+ 184.88 μs 0.301 μs 1.00 1 B 1.00
System.Text.RegularExpressions.Tests.Perf_Regex_Industry_Leipzig
BenchmarkDotNet v0.14.1-nightly.20250107.205, Linux Ubuntu 22.04.5 LTS (Jammy Jellyfish)
AMD EPYC 9V74, 1 CPU, 8 logical and 4 physical cores
MediumRun : .NET 11.0.0 (42.42.42.42424), X64 RyuJIT AVX-512F+CD+BW+DQ+VL+VBMI
Job=MediumRun  OutlierMode=DontRemove  IterationCount=15
LaunchCount=2  MemoryRandomization=True  WarmupCount=10
Method Toolchain Pattern Mean Error Ratio Allocated Alloc Ratio
Count Main .{0,2}(Tom|Sawyer|Huckleberry|Finn) 181,782.4 μs 57.60 μs 1.00 979 B 1.00
Count PR .{0,2}(Tom|Sawyer|Huckleberry|Finn) 182,005.3 μs 126.06 μs 1.00 979 B 1.00
Count Main .{2,4}(Tom|Sawyer|Huckleberry|Finn) 187,746.3 μs 115.99 μs 1.00 984 B 1.00
Count PR .{2,4}(Tom|Sawyer|Huckleberry|Finn) 187,692.1 μs 115.54 μs 1.00 760 B 0.77
Count Main (?i)Tom|Sawyer|Huckleberry|Finn 2,917.9 μs 662.66 μs 1.13 6 B 1.00
Count PR (?i)Tom|Sawyer|Huckleberry|Finn 2,867.8 μs 679.08 μs 1.11 7 B 1.17
Count Main (?i)Twain 905.8 μs 2.24 μs 1.00 2 B 1.00
Count PR (?i)Twain 906.0 μs 1.72 μs 1.00 2 B 1.00
Count Main ([A-Za-z]awyer|[A-Za-z]inn)\s 12,755.7 μs 4.45 μs 1.00 45 B 1.00
Count PR ([A-Za-z]awyer|[A-Za-z]inn)\s 12,755.6 μs 3.89 μs 1.00 35 B 0.78
Count Main [a-z]shing 909.4 μs 2.75 μs 1.00 2 B 1.00
Count PR [a-z]shing 908.2 μs 2.82 μs 1.00 2 B 1.00
Count Main \p{Sm} 648.2 μs 3.02 μs 1.00 2 B 1.00
Count PR \p{Sm} 648.1 μs 2.66 μs 1.00 2 B 1.00
Count Main Huck[a-zA-Z]+|Saw[a-zA-Z]+ 1,556.2 μs 1.70 μs 1.00 6 B 1.00
Count PR Huck[a-zA-Z]+|Saw[a-zA-Z]+ 1,044.0 μs 39.37 μs 0.67 7 B 1.17
Count Main Tom.{10,25}river|river.{10,25}Tom 6,324.4 μs 2.60 μs 1.00 22 B 1.00
Count PR Tom.{10,25}river|river.{10,25}Tom 1,382.5 μs 49.69 μs 0.22 7 B 0.32
Count Main Tom|Sawyer|Huckleberry|Finn 2,629.8 μs 7.06 μs 1.00 9 B 1.00
Count PR Tom|Sawyer|Huckleberry|Finn 1,023.2 μs 10.03 μs 0.39 6 B 0.67
Count Main Twain 848.6 μs 2.88 μs 1.00 2 B 1.00
Count PR Twain 851.4 μs 2.99 μs 1.00 2 B 1.00
System.Text.RegularExpressions.Tests.Perf_Regex_Industry_BoostDocs_Simple
BenchmarkDotNet v0.14.1-nightly.20250107.205, Linux Ubuntu 22.04.5 LTS (Jammy Jellyfish)
AMD EPYC 9V74, 1 CPU, 8 logical and 4 physical cores
MediumRun : .NET 11.0.0 (42.42.42.42424), X64 RyuJIT AVX-512F+CD+BW+DQ+VL+VBMI
Job=MediumRun  OutlierMode=DontRemove  IterationCount=15
LaunchCount=2  MemoryRandomization=True  WarmupCount=10
Method Toolchain Id Mean Error Ratio Allocated Alloc Ratio
IsMatch Main 0 20.83 ns 0.186 ns 1.00 - NA
IsMatch PR 0 20.62 ns 0.074 ns 0.99 - NA
IsMatch Main 1 44.79 ns 0.548 ns 1.00 - NA
IsMatch PR 1 44.08 ns 0.117 ns 0.98 - NA
IsMatch Main 2 49.35 ns 0.069 ns 1.00 - NA
IsMatch PR 2 48.67 ns 0.301 ns 0.99 - NA
IsMatch Main 3 82.04 ns 0.082 ns 1.00 - NA
IsMatch PR 3 82.47 ns 0.088 ns 1.01 - NA
IsMatch Main 4 71.70 ns 0.276 ns 1.00 - NA
IsMatch PR 4 72.23 ns 0.827 ns 1.01 - NA
IsMatch Main 5 105.39 ns 41.363 ns 1.24 - NA
IsMatch PR 5 73.91 ns 2.644 ns 0.87 - NA
IsMatch Main 6 24.54 ns 2.261 ns 1.02 - NA
IsMatch PR 6 22.87 ns 0.076 ns 0.95 - NA
IsMatch Main 7 22.73 ns 0.193 ns 1.00 - NA
IsMatch PR 7 22.56 ns 0.080 ns 0.99 - NA
IsMatch Main 8 22.88 ns 0.172 ns 1.00 - NA
IsMatch PR 8 22.74 ns 0.276 ns 0.99 - NA
IsMatch Main 9 22.72 ns 0.074 ns 1.00 - NA
IsMatch PR 9 22.87 ns 0.062 ns 1.01 - NA
IsMatch Main 10 23.19 ns 0.065 ns 1.00 - NA
IsMatch PR 10 23.21 ns 0.030 ns 1.00 - NA
IsMatch Main 11 22.54 ns 0.019 ns 1.00 - NA
IsMatch PR 11 23.13 ns 0.949 ns 1.03 - NA
IsMatch Main 12 26.32 ns 0.225 ns 1.00 - NA
IsMatch PR 12 26.03 ns 0.066 ns 0.99 - NA
IsMatch Main 13 26.03 ns 0.059 ns 1.00 - NA
IsMatch PR 13 25.99 ns 0.027 ns 1.00 - NA

Artifacts:

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions