Regular expressions - rianjs/DotNetPerfTesting GitHub Wiki
BenchmarkDotNet=v0.13.5, OS=macOS Ventura 13.2.1 (22D68) [Darwin 22.3.0]
Intel Core i7-8850H CPU 2.60GHz (Coffee Lake), 1 CPU, 12 logical and 6 physical cores
.NET SDK=7.0.102
[Host] : .NET 7.0.2 (7.0.222.60605), X64 RyuJIT AVX2
DefaultJob : .NET 7.0.2 (7.0.222.60605), X64 RyuJIT AVX2```
| Method | Mean | Error | StdDev |
|------------------------------ |------------:|----------:|----------:|
| GetCompiled | 4,376.75 ns | 12.299 ns | 10.270 ns |
| GetUncompiled | 512.33 ns | 4.364 ns | 3.644 ns |
| StaticRegexIsMatch | 169.83 ns | 1.672 ns | 1.482 ns |
| CachedPrecompiledRegexIsMatch | 84.77 ns | 0.382 ns | 0.339 ns |
| CachedUncompiledRegexIsMatch | 147.61 ns | 2.543 ns | 2.379 ns |
| InlineInstantiation | 1,476.28 ns | 19.194 ns | 17.015 ns |
Regex sizes
Single run
Uncompiled results
- Biggest: 388,856
- Smallest: 378,656
- Mean: 2,048
Compiled results
- Biggest: 580,040
- Smallest: 376,296
- Mean: 15,892
Dictionary of regexes across multiple runs
Uncompiled results
- Biggest: 604,336
- Smallest: 393,904
- Mean: 31,986
Compiled results
- Biggest: 664,000
- Smallest: 426,064
- Mean: 145,552
Uncompiled results
- Biggest: 608,800
- Smallest: 393,904
- Mean: 32,987
Compiled results
- Biggest: 664,000
- Smallest: 426,064
- Mean: 161,803
Uncompiled results
- Biggest: 605,760
- Smallest: 393,904
- Mean: 32,715
Compiled results
- Biggest: 664,000
- Smallest: 426,064
- Mean: 168,299