(精华)2020年9月10日 C#基础知识点 Span为字符串处理提升性能

tech2024-11-30  10

static void SpanSample() { var str = "Times:10086"; //Span为连续内存块为字符串处理提升性能 //这种方式取出字符串替代了 SubString 这种会额外生成临时字符串的方式。 //如果上述代码发生在较大或较多文本的处理中,那么反复的拼接将生成大量的临时字符串,造成大量 GC 压力; //而使用 Span<T> 将不会额外生成任何临时字符串。 var strSpan = str.AsSpan(); var sw = new Stopwatch(); sw.Start(); for (var j = 0; j < 1000000; j++) { int.Parse(strSpan.Slice(6)); } sw.Stop(); Console.WriteLine("耗时" + sw.ElapsedMilliseconds); sw.Restart(); for (var j = 0; j < 1000000; j++) { int.Parse(str.Substring(6)); } sw.Stop(); Console.WriteLine("耗时" + sw.ElapsedMilliseconds); }
最新回复(0)