关于 ReadOnlySpan<T>
2019-07-30 19:06 音乐让我说 阅读(1779) 评论(0) 收藏 举报using System; using System.Linq; namespace BenchmarkAndSpanExample { public class NameParser { public string GetLastName(string fullName) { var names = fullName.Split(" "); var lastName = names.LastOrDefault(); return lastName ?? string.Empty; } public string GetLastNameUsingSubstring(string fullName) { var lastSpaceIndex = fullName.LastIndexOf(" ", StringComparison.Ordinal); return lastSpaceIndex == -1 ? string.Empty : fullName.Substring(lastSpaceIndex + 1); } public ReadOnlySpan<char> GetLastNameWithSpan(ReadOnlySpan<char> fullName) { var lastSpaceIndex = fullName.LastIndexOf(' '); return lastSpaceIndex == -1 ? ReadOnlySpan<char>.Empty : fullName.Slice(lastSpaceIndex + 1); } } }
using BenchmarkDotNet.Attributes; using BenchmarkDotNet.Order; namespace BenchmarkAndSpanExample { [RankColumn] [Orderer(SummaryOrderPolicy.FastestToSlowest)] [MemoryDiagnoser] public class NameParserBenchmarks { private const string FullName = "Steve J Gordon"; private static readonly NameParser Parser = new NameParser(); [Benchmark(Baseline = true)] public void GetLastName() { Parser.GetLastName(FullName); } [Benchmark] public void GetLastNameUsingSubstring() { Parser.GetLastNameUsingSubstring(FullName); } [Benchmark] public void GetLastNameWithSpan() { Parser.GetLastNameWithSpan(FullName); } } }
public class Program { public static void Main(string[] args) { var summary = BenchmarkRunner.Run<NameParserBenchmarks>(); } }
作者:音乐让我说(音乐让我说 - 博客园)
出处:http://music.cnblogs.com/
文章版权归本人所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
浙公网安备 33010602011771号