小编chr*_*isn的帖子

在C#中串联ReadOnlySpan <char>的最快方法

如果我只有ReadOnlySpan切片,那么连接字符串的最有效方法是什么?

简化示例:

public class Program {
    public string ConcatSpans(string longstring) {
        var span = longstring.AsSpan();
        var sb = new StringBuilder(longstring.Length);
        sb.Append(span.Slice(40, 10));
        sb.Append(span.Slice(30, 10));
        sb.Append(span.Slice(20, 10));
        sb.Append(span.Slice(10, 10));
        sb.Append(span.Slice(0, 10));
        return sb.ToString();
    }

    [Benchmark]
    public void ConcatSpansBenchmark() {
        ConcatSpans("aaaaaaaaaabbbbbbbbbbccccccccccddddddddddeeeeeeeeee");
    }

    public static void Main(string[] args) {
        var summary = BenchmarkRunner.Run<Program>();
    }
}
Run Code Online (Sandbox Code Playgroud)

结果:

BenchmarkDotNet=v0.11.2, OS=Windows 10.0.17134.345 (1803/April2018Update/Redstone4)
Intel Core i5-2500K CPU 3.30GHz (Sandy Bridge), 1 CPU, 4 logical and 4 physical cores
.NET Core SDK=2.1.403
  [Host]     : .NET Core 2.1.5 …
Run Code Online (Sandbox Code Playgroud)

.net performance stringbuilder .net-core

4
推荐指数
1
解决办法
903
查看次数

标签 统计

.net ×1

.net-core ×1

performance ×1

stringbuilder ×1