c#字符串连接性能测试
2010-11-29 09:42
393 查看
在C#中,“+”连接符和append()能实现的功能都差不多,但是性能差异非常明显。使用“+”连接符时,每次会生成一个新的字符串,但使用append()时不会。
在计算10万次每次加1个字符时如下:全程CPU负载100%,内存占用61%
输出结果
+开始时间:2010-11-29 09:38:20.195 结束时间:2010-11-29 09:39:21.227耗时共:1分钟1秒31毫秒
Append开始时间:2010-11-29 09:39:21.227 结束时间:2010-11-29 09:39:21.227耗时共:0分钟0秒0毫秒
以下为测试代码:
在计算10万次每次加1个字符时如下:全程CPU负载100%,内存占用61%
输出结果
+开始时间:2010-11-29 09:38:20.195 结束时间:2010-11-29 09:39:21.227耗时共:1分钟1秒31毫秒
Append开始时间:2010-11-29 09:39:21.227 结束时间:2010-11-29 09:39:21.227耗时共:0分钟0秒0毫秒
以下为测试代码:
using System; using System.Collections; using System.Web; using System.Web.UI.HtmlControls; using System.Text; public partial class test : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { int i = 0; int count = 100000; DateTime startTime = DateTime.Now; string j = string.Empty; for (i = 1; i <= count; i++) { j += "1"; } DateTime endTime = DateTime.Now; this.Response.Write( "+开始时间:" + startTime.ToString("yyyy-MM-dd HH:mm:ss.fff") + " 结束时间:" + endTime.ToString("yyyy-MM-dd HH:mm:ss.fff") + "耗时共:" + DateDiff(endTime, startTime) + "<br/>"); startTime = DateTime.Now; StringBuilder sb = new StringBuilder(); for (i = 1; i <= count; i++) { sb.Append("1"); } endTime = DateTime.Now; this.Response.Write("Append开始时间:" + startTime.ToString("yyyy-MM-dd HH:mm:ss.fff") + " 结束时间:" + endTime.ToString("yyyy-MM-dd HH:mm:ss.fff") + "耗时共:" + DateDiff(endTime, startTime) + "<br/>"); } private string DateDiff(DateTime DateTime1, DateTime DateTime2) { string dateDiff = null; TimeSpan ts1 = new TimeSpan(DateTime1.Ticks); TimeSpan ts2 = new TimeSpan(DateTime2.Ticks); TimeSpan ts = ts1.Subtract(ts2).Duration(); //dateDiff = ts.Days.ToString() + "天" // + ts.Hours.ToString() + "小时" dateDiff = ts.Minutes.ToString() + "分钟" + ts.Seconds.ToString() + "秒" + ts.Milliseconds.ToString() + "毫秒"; return dateDiff; } }
相关文章推荐
- C#字符串连接和StringBuilder字符串拼接性能测试
- 《JavaScript高级程序设计》——字符串连接性能测试
- c# 字符串操作的性能测试 未知编码 byte[] 转 string
- StringBuffer对象和传统的字符串连接方法性能测试比较
- C#判断字符串为空的3种方法性能测试
- 各方式连接oracle db 的性能测试(c#)
- lua程序性能优化(字符串连接与格式化)
- 【转载】JAVA中字符串连接效率的测试
- C#并行运算 Parallel.Invoke、Parallel.For、Parallel.Foreach性能测试及示例
- C#中的如何:连接和分割字符串
- 很久没来,丢一份前阵子做的 10 万连接性能测试 (fibjs, golang, nginx, nodejs)
- Neutron OVS Bridge 连接方式 (veth pair / ovs peer) 的选型和性能测试
- GP两种连接方式性能测试
- C#三种字符串拼接方法性能浅析
- C++的性能C#的产能?! - .Net Native 系列四:性能测试方法(PerfView)
- c#中数据库字符串的连接几种方式
- Java中字符串操作类String、StringBuffer、StringBuilder区别及性能对比测试
- C#.NET 连接各类数据库 字符串的写法
- javascript 字符串连接性能
- C#连接EXCEL和ACCESS字符串2003及2007版