上一篇:.net入门常见问题 >>
简单代码的性能差异
public void Boxing()
{
Int32 v = 5;
Console.WriteLine("{0},{1},{2}",v,v,v);
}
public void Boxing1()
{
Int32 v = 5;
object o = v;
Console.WriteLine("{0},{1},{2}",o,o,o);
}两个函数的输出结果是一样的,但是哪一个函数更好呢?
第一个显然更简单,但是在性能上第二个好,看看反编译的代码:
Boxing函数:
.method public hidebysig instance void Boxing() cil managed
{
// Code Size: 31 byte(s)
.maxstack 4
.locals (
int32 V_0)
L_0000: ldc.i4.5
L_0001: stloc.0
L_0002: ldstr "{0},{1},{2}"
L_0007: ldloc.0
L_0008: box int32
L_000d: ldloc.0
L_000e: box int32
L_0013: ldloc.0
L_0014: box int32
L_0019: call void [mscorlib]System.Console::WriteLine(string, object, object, object)
L_001e: ret
}
Boxing1函数的:
.method public hidebysig instance void Boxing1() cil managed
{
// Code Size: 23 byte(s)
.maxstack 4
.locals (
int32 V_0,
object V_1)
L_0000: ldc.i4.5
L_0001: stloc.0
L_0002: ldloc.0
L_0003: box int32
L_0008: stloc.1
L_0009: ldstr "{0},{1},{2}"
L_000e: ldloc.1
L_000f: ldloc.1
L_0010: ldloc.1
L_0011: call void [mscorlib]System.Console::WriteLine(string, object, object, object)
L_0016: ret
}
第一个函数有三次装箱操作,第二个只有一次,在内存和时间消耗上都要小些。
下一篇:.net中设置系统时间 >>
相关文章:
- · 利用反射,实现动态调用winform窗体!!
- · 取得本机IP地址的方法两则
- · 反射应用之一:根据控件名、属性名进行取值和赋值
- · Whidbey 初体验之局部类型 ( partial 类型)
- · 结构和类
- · 关于微软的.NET Framework是一个半成品的言论!
- · ASP.NET实现用户在线检测的类源码
- · 在ASP.NET下实现数字和字符相混合的验证码
- · ASP.NET结合COM组件发送Email
- · 创建基于ASP.NET的SMTP邮件服务
- · 用ASP.NET和XML做的新闻系统
- · ASP.Net+XML打造留言薄
- · 创建ASP.NET监视服务器进程
- · 创建用于ASP.NET的分页程序控件
- · 设计ASP.NET新闻管理系统
- · asp.net 实现“九连环”小游戏
- · 将Word文档转化为HTML格式的文档
- · 保存美丽记忆 用ASP.NET创建网络相册
- · ASP.NET中利用Crystal Report创建图表
- · 几个很不错的.NET 相关的FAQ和例子代码的连接
- · net应用程序如何批上XP的外衣?
- · 用.net中的socket实现文件传输
- · .NET Framework 中多语言支持的实现
- · weblogin类--简介(一)
- · .Net中如何操作IIS
- · 在.NET中调用存储过程
- · 收集了一些小技巧的连接 (.NET)
- · 使用CodeDom来生成.cs文件
- · 一次重构导向设计模式的实践(.NET)
- · 在设计期跟踪代码 (.NET)
- · 编译自己的资源文件编辑器(reseditor.exe)
- · .net辅助工具列表
- · .NET 2.0 基础类库中的范型——其他范型类
- · .NET 2.0 基础类库中的范型——Functional Programming
- · .NET 2.0 基础类库中的范型——范型集合
- · .NET 下的remoting使用。(TCP通道)
- · .NET系统学习----Globalization & Resources
- · CLR 调试接口的架构与应用 [3] 调试事件
