Skip to content

System.Text.RegularExpressions performance regressions #65187

@adamsitnik

Description

@adamsitnik

Latest manual perf run (.NET 6 vs .NET 7 preview 1) has discovered multiple regressions in System.Text.RegularExpressions. Since most of them were not reported previously, I am opening the issue, so the owners of System.Text.RegularExpressions can triage them accordingly.

I've uploaded a full report here. It's sorted desc from biggest regression to biggest improvement.

The @performanceautofiler has not reported these regressions as they were most likely introduced before the benchmarks were added in November 2021 (historical data)

Sample repro:

git clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net6.0 net7.0 --filter System.Text.RegularExpressions.Tests.Perf_Regex_Industry_RustLang_Sherlock.Count

Sample results:

System.Text.RegularExpressions.Tests.Perf_Regex_Industry_RustLang_Sherlock.Count(Pattern: "Sherlock|Holmes|Watson|Irene|Adler|John|Baker", Options: Compiled)

Result Ratio Operating System Bit
Slower 0.43 Windows 11 X64
Slower 0.45 Windows 11 X64
Slower 0.46 Windows 10 X64
Slower 0.42 Windows 11 X64
Slower 0.46 Windows 10 X64
Slower 0.42 Windows 11 X64
Slower 0.43 Windows 11 X64
Slower 0.44 Windows 11 X64
Slower 0.43 Windows 11 X64
Slower 0.43 ubuntu 20.04 X64
Slower 0.45 ubuntu 18.04 X64
Slower 0.40 centos 7 X64
Slower 0.43 ubuntu 18.04 X64
Slower 0.44 alpine 3.13 X64
Slower 0.43 ubuntu 18.04 X64
Slower 0.44 ubuntu 20.04 X64
Slower 0.47 Windows 10 Arm64
Slower 0.32 Windows 10 X86
Slower 0.53 Windows 10 Arm
Slower 0.43 macOS Big Sur 11.6.3 X64
Slower 0.43 macOS Big Sur 11.4 X64

System.Text.RegularExpressions.Tests.Perf_Regex_Common.CtorInvoke(Options: Compiled)

Result Ratio Operating System Bit
Slower 0.45 Windows 11 X64
Slower 0.48 Windows 11 X64
Slower 0.46 Windows 10 X64
Slower 0.48 Windows 11 X64
Slower 0.45 Windows 10 X64
Slower 0.46 Windows 11 X64
Slower 0.43 Windows 11 X64
Slower 0.44 Windows 11 X64
Slower 0.51 Windows 11 X64
Slower 0.51 ubuntu 20.04 X64
Slower 0.48 ubuntu 18.04 X64
Slower 0.53 centos 7 X64
Slower 0.51 ubuntu 18.04 X64
Slower 0.48 alpine 3.13 X64
Slower 0.47 ubuntu 18.04 X64
Slower 0.46 ubuntu 20.04 X64
Slower 0.57 Windows 10 Arm64
Slower 0.45 Windows 10 X86
Slower 0.59 Windows 10 Arm
Slower 0.52 macOS Big Sur 11.6.3 X64
Slower 0.52 macOS Big Sur 11.4 X64

(cc @stephentoub )

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions