Skip to content

Fix string.Split regression#130438

Draft
hamarb123 wants to merge 29 commits into
dotnet:mainfrom
hamarb123:main35
Draft

Fix string.Split regression#130438
hamarb123 wants to merge 29 commits into
dotnet:mainfrom
hamarb123:main35

Conversation

@hamarb123

@hamarb123 hamarb123 commented Jul 9, 2026

Copy link
Copy Markdown
Contributor

Fixes #130418 (probably).

/cc @tannergooding

@hamarb123 hamarb123 marked this pull request as draft July 9, 2026 22:05
@dotnet-policy-service dotnet-policy-service Bot added the community-contribution Indicates that the PR has been added by a community member label Jul 9, 2026
@hamarb123 hamarb123 closed this Jul 9, 2026
@hamarb123

hamarb123 commented Jul 9, 2026

Copy link
Copy Markdown
Contributor Author

Nevermind, this won't fix it - misread the platform - will re-open when I fix the code.

@dotnet-policy-service

Copy link
Copy Markdown
Contributor

Tagging subscribers to this area: @dotnet/area-system-runtime
See info in area-owners.md if you want to be subscribed.

@hamarb123 hamarb123 reopened this Jul 9, 2026
@hamarb123

This comment was marked as outdated.

@hamarb123

Copy link
Copy Markdown
Contributor Author

@EgorBot -amd -arm -intel

using BenchmarkDotNet.Attributes;
using BenchmarkDotNet.Running;
using System.IO;
using System.Threading;
using System.Threading.Tasks;

BenchmarkSwitcher.FromAssembly(typeof(Bench).Assembly).Run(args);

public class Bench
{
        [Benchmark]
        [Arguments("A B C D E F G H I J K L M N O P Q R S T U V W X Y Z", new char[] { ' ' }, StringSplitOptions.None)]
        [Arguments("A B C D E F G H I J K L M N O P Q R S T U V W X Y Z", new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries)]
        [Arguments("ABCDEFGHIJKLMNOPQRSTUVWXYZ", new char[]{' '}, StringSplitOptions.None)]
        [Arguments("ABCDEFGHIJKLMNOPQRSTUVWXYZ", new char[]{' '}, StringSplitOptions.RemoveEmptyEntries)]
        public string[] Split(string s, char[] arr, StringSplitOptions options)
            => s.Split(arr, options);
}

@hamarb123

This comment was marked as outdated.

@hamarb123

This comment was marked as outdated.

@hamarb123

This comment was marked as resolved.

@hamarb123

This comment was marked as resolved.

@hamarb123

This comment was marked as outdated.

@hamarb123

Copy link
Copy Markdown
Contributor Author

@EgorBot -ubuntu24_azure_cobalt100

using BenchmarkDotNet.Attributes;
using BenchmarkDotNet.Running;
using System.IO;
using System.Threading;
using System.Threading.Tasks;

BenchmarkSwitcher.FromAssembly(typeof(Bench).Assembly).Run(args);

public class Bench
{
        [Benchmark]
        [Arguments("ABCDEFGHIJKLMNOPQRSTUVWX", new char[]{' '}, StringSplitOptions.RemoveEmptyEntries)]
        [Arguments("ABCDEFGHIJKLMNOPQRSTUVWXY", new char[]{' '}, StringSplitOptions.RemoveEmptyEntries)]
        [Arguments("ABCDEFGHIJKLMNOPQRSTUVWXYZ", new char[]{' '}, StringSplitOptions.RemoveEmptyEntries)]
        [Arguments("ABCDEFGHIJKLMNOPQRSTUVWXYZ1", new char[]{' '}, StringSplitOptions.RemoveEmptyEntries)]
        [Arguments("ABCDEFGHIJKLMNOPQRSTUVWXYZ12", new char[]{' '}, StringSplitOptions.RemoveEmptyEntries)]
        [Arguments("ABCDEFGHIJKLMNOPQRSTUVWXYZ123", new char[]{' '}, StringSplitOptions.RemoveEmptyEntries)]
        [Arguments("ABCDEFGHIJKLMNOPQRSTUVWXYZ1234", new char[]{' '}, StringSplitOptions.RemoveEmptyEntries)]
        [Arguments("ABCDEFGHIJKLMNOPQRSTUVWXYZ12345", new char[]{' '}, StringSplitOptions.RemoveEmptyEntries)]
        public string[] Split(string s, char[] arr, StringSplitOptions options)
            => s.Split(arr, options);
}

@hamarb123

Copy link
Copy Markdown
Contributor Author

@EgorBot -ubuntu24_azure_cobalt100 -arm -amd -intel

using BenchmarkDotNet.Attributes;
using BenchmarkDotNet.Running;
using System.IO;
using System.Threading;
using System.Threading.Tasks;

BenchmarkSwitcher.FromAssembly(typeof(Bench).Assembly).Run(args);

public class Bench
{
        [Benchmark]
        [Arguments("ABCDEFGHIJKLMNOPQRSTUVWX", new char[]{' '}, StringSplitOptions.RemoveEmptyEntries)]
        [Arguments("ABCDEFGHIJKLMNOPQRSTUVWXY", new char[]{' '}, StringSplitOptions.RemoveEmptyEntries)]
        [Arguments("ABCDEFGHIJKLMNOPQRSTUVWXYZ", new char[]{' '}, StringSplitOptions.RemoveEmptyEntries)]
        [Arguments("ABCDEFGHIJKLMNOPQRSTUVWXYZ1", new char[]{' '}, StringSplitOptions.RemoveEmptyEntries)]
        [Arguments("ABCDEFGHIJKLMNOPQRSTUVWXYZ12", new char[]{' '}, StringSplitOptions.RemoveEmptyEntries)]
        [Arguments("ABCDEFGHIJKLMNOPQRSTUVWXYZ123", new char[]{' '}, StringSplitOptions.RemoveEmptyEntries)]
        [Arguments("ABCDEFGHIJKLMNOPQRSTUVWXYZ1234", new char[]{' '}, StringSplitOptions.RemoveEmptyEntries)]
        [Arguments("ABCDEFGHIJKLMNOPQRSTUVWXYZ12345", new char[]{' '}, StringSplitOptions.RemoveEmptyEntries)]
        public string[] Split(string s, char[] arr, StringSplitOptions options)
            => s.Split(arr, options);
}

@hamarb123

This comment was marked as outdated.

@hamarb123

Copy link
Copy Markdown
Contributor Author

@EgorBot -ubuntu24_azure_cobalt100 -arm -amd -intel

using BenchmarkDotNet.Attributes;
using BenchmarkDotNet.Running;
using System.IO;
using System.Threading;
using System.Threading.Tasks;

BenchmarkSwitcher.FromAssembly(typeof(Bench).Assembly).Run(args);

public class Bench
{
        [Benchmark]
        [Arguments("ABCDEFGHIJKLMNOPQRSTUVWX", new char[]{' '}, StringSplitOptions.RemoveEmptyEntries)]
        [Arguments("ABCDEFGHIJKLMNOPQRSTUVWXY", new char[]{' '}, StringSplitOptions.RemoveEmptyEntries)]
        [Arguments("ABCDEFGHIJKLMNOPQRSTUVWXYZ", new char[]{' '}, StringSplitOptions.RemoveEmptyEntries)]
        [Arguments("ABCDEFGHIJKLMNOPQRSTUVWXYZ1", new char[]{' '}, StringSplitOptions.RemoveEmptyEntries)]
        [Arguments("ABCDEFGHIJKLMNOPQRSTUVWXYZ12", new char[]{' '}, StringSplitOptions.RemoveEmptyEntries)]
        [Arguments("ABCDEFGHIJKLMNOPQRSTUVWXYZ123", new char[]{' '}, StringSplitOptions.RemoveEmptyEntries)]
        [Arguments("ABCDEFGHIJKLMNOPQRSTUVWXYZ1234", new char[]{' '}, StringSplitOptions.RemoveEmptyEntries)]
        [Arguments("ABCDEFGHIJKLMNOPQRSTUVWXYZ12345", new char[]{' '}, StringSplitOptions.RemoveEmptyEntries)]
        public string[] Split(string s, char[] arr, StringSplitOptions options)
            => s.Split(arr, options);
}

@hamarb123

Copy link
Copy Markdown
Contributor Author

@EgorBot -ubuntu24_azure_cobalt100 -arm -amd -intel

using BenchmarkDotNet.Attributes;
using BenchmarkDotNet.Running;
using System.IO;
using System.Threading;
using System.Threading.Tasks;

BenchmarkSwitcher.FromAssembly(typeof(Bench).Assembly).Run(args);

public class Bench
{
        [Benchmark]
        [Arguments("ABCDEFGHIJKLMNOPQRSTUVWX", new char[]{' '}, StringSplitOptions.RemoveEmptyEntries)]
        [Arguments("ABCDEFGHIJKLMNOPQRSTUVWXY", new char[]{' '}, StringSplitOptions.RemoveEmptyEntries)]
        [Arguments("ABCDEFGHIJKLMNOPQRSTUVWXYZ", new char[]{' '}, StringSplitOptions.RemoveEmptyEntries)]
        [Arguments("ABCDEFGHIJKLMNOPQRSTUVWXYZ1", new char[]{' '}, StringSplitOptions.RemoveEmptyEntries)]
        [Arguments("ABCDEFGHIJKLMNOPQRSTUVWXYZ12", new char[]{' '}, StringSplitOptions.RemoveEmptyEntries)]
        [Arguments("ABCDEFGHIJKLMNOPQRSTUVWXYZ123", new char[]{' '}, StringSplitOptions.RemoveEmptyEntries)]
        [Arguments("ABCDEFGHIJKLMNOPQRSTUVWXYZ1234", new char[]{' '}, StringSplitOptions.RemoveEmptyEntries)]
        [Arguments("ABCDEFGHIJKLMNOPQRSTUVWXYZ12345", new char[]{' '}, StringSplitOptions.RemoveEmptyEntries)]
        public string[] Split(string s, char[] arr, StringSplitOptions options)
            => s.Split(arr, options);
}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area-System.Runtime community-contribution Indicates that the PR has been added by a community member

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Perf] Linux/arm64: 3 Regressions on 7/5/2026 2:44:21 PM +00:00

2 participants