昨天试了一下用dotTrace对Console程序进行性能分析,今天试一下web站点的。
1.先上代码
using System.Text; using System.Web.Mvc; namespace MvcApplication2.Controllers { public class HomeController : Controller { public ActionResult Test() { MakeString(); MakeStringBuilder(); return Content("ok!"); } private void MakeString() { var str = string.Empty; for (int i = 0; i < 100; i++) { for (int j = 0; j < 100; j++) { str += "i="; str += i; str += " j="; str += j; } } } private void MakeStringBuilder() { var str = new StringBuilder(); for (int i = 0; i < 100; i++) { for (int j = 0; j < 100; j++) { str.Append("i="); str.Append(i); str.Append(" j="); str.Append(j); } } } } }
2.发布网站
3.启动dotTrace,选择File->Profile->WebDev Application
4.配置Profiler
4.点击"Run",启动Asp.net Development Server
右键点击图片,选择"在web浏览器中打开"
5.点击dotTrace中"Get SnapShot",得到程序的运行"日志"
比较MakeString 与 MakeStringBuilder 两个方法的运行时间差。
这也是我们经常所说的,不要在大量的循环中使用字符串(string)拼接,因为string类型在.NET中是一个特殊的引用类型,它本身不可改变。