Effective C# Item31:尽可能实现短小简洁的方法
来源:互联网 发布:全民k歌刷花软件 编辑:程序博客网 时间:2024/04/30 10:25
我们推荐编写短小简洁的方法,而不是冗长复杂的方法,主要的原因在于.NET的JIT机制。
当使用C#代码编写的程序在运行时,需要经历两个步骤:1)C#编译器将我们编写的源代码编译为IL中间代码;2)CLR通过调用JIT编译器将IL代码转换成本地机器代码。这两个步骤会分摊在整个应用程序运行的过程中。CLR并不会再应用程序启动时对整个应用程序做JIT编译,而是以方法为单位进行JIT编译。这可以在相当程度上减少程序的启动时间,同时也防止程序由于较多代码需要jIT编译而响应很慢,那些没有被调用的方法是不会被JIT编译的。因此通过将代码编写为多个短小简洁的方法,我们可以减少需要JIT编译的工作量,来尽量提升应用程序的性能。
短小简洁的方法还可以使得JIT编译器更容易支持enregistration,enregistration指选择哪些局部变量放入寄存器中存储,而不存储在堆栈中,较少的局部变量将使得JIT编译器更容易做最合适的enregistration选择,同时方法中控制流的简单性也影响着JIT编译器如何做更好的enregistration。
JIT编译器还会对内联方法做决定,内联意味着将函数调用直接替换为函数体内的代码,例如属性中的get和set访问器,就会被看做是内联方法。
思考:关于属性的get和set访问器,我记得在Jeffrey的书中,曾经说过在IL中get和set访问器会被转换成方法,那么还算是内联吗?内联和C#中的匿名方法有什么区别?如果您知道,欢迎给出一个解释。
0 0
- Effective C# Item31:尽可能实现短小简洁的方法
- Effective C# Item30:尽可能实现CLS兼容的程序集
- Effective C# Item25:尽可能将类型实现为可序列化的类型
- Effective C# Item32:尽可能实现小尺寸、高内聚的程序集
- 在C#中应该使用短小的方法
- Effective C# Item7:将值类型尽可能实现为具有常量性和原子性的类型
- Effective C# 原则1:尽可能的使用属性(property),而不是数据成员(field)。
- Effective C# 原则1:尽可能的使用属性(property),而不是数据成员(field)
- Effective C# 原则1:尽可能的使用属性(property),而不是数据成员(field)
- effective c++ 尽可能的使用const
- Effective 3.尽可能的使用const
- c# 截取中英文字符串的简洁方法
- 《Effective C++》读书笔记之item31:将文件间的编译依存关系降至最低
- 实现文件拖放的一种简洁方法
- 实现文件拖放的一种简洁方法
- 实现文件拖放的一种简洁方法
- 实现文件拖放的一种简洁方法
- 实现文件拖放的一种简洁方法
- Users
- 揭秘传智播客班级毕业薪资超7k的内幕系列之五----首份12K Offer诞生,大专毕业生挑战高薪,为班级毕业薪资树立新标杆
- destoon中get_maincat函数的用法
- 网页标签图标
- 来往各地ISP流量整形与VPN
- Effective C# Item31:尽可能实现短小简洁的方法
- JqGrid选中行、取消选中行、获得选中行数据
- hdu 4908 BestCoder Sequence 策略
- Cocos2dx 3.1.1 之 修改屏幕大小
- 对计算机专业学生的几点建议
- C++笔试面试(算法题集一)
- 日记本
- 明确简单的方法在VPN冰岛
- dhcpcd-6.4.3移植记录