昨天试了一下用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中是一个特殊的引用类型,它本身不可改变。