一、关于Span的使用
1.Span的最大优势:切片和堆栈空间及连续性
所以在SubString这样的场景可以Span来做.
2.Span的IndexOf(string)性能不如原生,注意使用Span.IndexOf(subSpan)
using System;
using System.Diagnostics;
namespace SpanDemo
{
class Program
{
static void Main(string[] args)
{
string str = "wweidfidsjfkljsjdkljsdkjfsdlkj23423j4klsdlddssdsdsddjfl;sdjf;dsfjknxcvdjsofusd9-23432423423";
ReadOnlySpan<char> strSapn = str.AsSpan();
string subStr = "dsfjknxcvdjsofusd9";
Stopwatch stopwatch = new Stopwatch();
stopwatch.Start();
for (int i = 0; i < 1000; i++)
{
var subSpan = subStr.AsSpan();
strSapn.IndexOf(subSpan);
}
stopwatch.Stop();
Console.WriteLine(stopwatch.Elapsed);
stopwatch.Reset();
stopwatch.Start();
for (int i = 0; i < 1000; i++)
{
str.IndexOf(subStr);
}
stopwatch.Stop();
Console.WriteLine(stopwatch.Elapsed);
Console.WriteLine("Hello World!");
Console.ReadLine();
}
}
}