本文主要是介绍C#字符串连接和StringBuilder字符串拼接性能测试,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
一、C#字符串连接和StringBuilder字符串拼接性能测试
Environment.TickCount,距离系统启动时间为基准,对比代码执行时间。
/// <summary>
/// 实例测试,C#字符串链接和StringBuilder的性能
/// </summary>
static void StringTest()
{// 获取系统启动后经过的毫秒数。int start = Environment.TickCount;/******使用字符串连接构建字符串******/for (int i = 0; i < 200; i++){string s = "";for (int j = 0; j < 1000; j++){s += "Outer index=";s += i;s += "Inner index=";s += j;s += " ";}}int middle = Environment.TickCount;Console.WriteLine("字符串拼接时间:{0}秒", (middle - start) / 1000);/******使用StringBuilder构建字符串******/for (int i = 0; i < 20; i++){StringBuilder builder = new StringBuilder();for (int j = 0; j < 1000; j++){builder.Append("Outer index=");builder.Append(i);builder.Append("Inner index=");builder.Append(j);builder.Append(" ");}}int end = Environment.TickCount;Console.WriteLine("StringBuilder拼接时间:{0}毫秒,约等于{1}秒", (end - middle), (end - middle) / 1000);
}
结果对比
特别说明:
对于有大量字符串拼接操作或者说在大量循环操作中,需要拼接字符串的时候,就必须考虑性能问题。
解决方案之一就是使用StringBuilder类。
//// 摘要:// 表示可变字符字符串。此类不能被继承。[ComVisible(true)][DefaultMember("Chars")]public sealed class StringBuilder : ISerializable
这篇关于C#字符串连接和StringBuilder字符串拼接性能测试的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!