C#反射的性能测试
http://tech.ddvip.com 2008年09月08日 社区交流
内容摘要:通过本实例可以看出,反射对直接调用性能上要低上百甚至几百倍
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Reflection;
public partial class Default2 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
reflect r = new reflect();
r.name = "ao";
DateTime d1 = DateTime.Now;
Response.Write("开始时间:"+d1.ToString("yyyy-MM-dd HH:mm:ss:ffff")+"<br>");
for (int i = 1; i <= 10000000; i++)
{
de(r); //反射赋值
//de2(r); //无反射赋值
}
DateTime d2 = DateTime.Now;
Response.Write(d2.ToString("结束时间:" + "yyyy-MM-dd HH:mm:ss:ffff") + "<br>");
TimeSpan ts = d2 - d1;
Response.Write("时间差:" + ts.Milliseconds.ToString());
}
public void de(object o) {
System.Type t = o.GetType(); //得到类
t.GetProperty("name").SetValue(o, "de", null); //设置类对象属性值
}
public void de2(reflect o) {
o.name = "de2";
}
}
public class reflect{
private string _name;
public string name {
set {
_name = value;
}
get {
return _name;
}
}
}
可以看出,反射对直接调用性能上要低上百甚至几百倍
来源:中国自学编程网 作者:佚名 责编:豆豆技术应用