1
7
内联是clr(jit)的责任,在函数内联时存在一些条件:
正如您可能会发现的,32字节是 不太多 在代码方面,它适用于快速和小型if-else条件测试、属性getter/setter。我认为你不能从大量的代码中获得任何速度。 |
2
14
我看到的答案假设您所说的是编译或JIT时间内联——它们完全正确。然而,我听到的“inline”这个词的另一个用法是用于lambda表达式之类的东西-在c中,比如:
这个
是的,VB9有:
我相信vb9比c有更多的限制-例如,我没有
认为
您可以创建一个
从vb10开始,也可以在vb中创建多行lambda表达式。 当然,如果问题实际上是指执行而不是源代码,那么所有这些都是无关的:) |
3
5
这个问题5年后仍有一些活动(已经???) with .net 4.5 it is now possible to specify inline method 只需使用这个属性
|
4
2
NET团队明智地认为,这些功能在编程语言本身中没有位置,因为编译器在决定要内联什么方面更好。这是相当激进的,但事实是,现代C++实际上经常忽视
|
5
2
这里有一个场景,当它是一个很好的设施时: 我们有一个标准的日志记录函数,传递调用方的名称通常很有用。但是,如果将日志记录设置为较低的详细程度,则日志记录函数只返回以帮助提高性能。为了避免调用方对system.reflection.methodbase.getcurrentmethod.name进行CPU代价高昂的调用,只为了日志函数不使用它们,最好创建一个内联函数,该函数事先决定是否需要查找该方法的名称:
然后,在打电话的人身上,我们可以放一条整齐的线,比如: 日志(2,getmyname(2)“:发生了什么事”)。 但是,如果编译器决定不内联getmyname()(正如它肯定的那样),那么日志中出现的methodname将始终是“getmyname”-一点用都没有。 称我为老式的,但是如果我们开始把所有的决定留给编译器(或者clr!)然后我们也可以寻找一个新的职业,把它留给“网络团队”。有时,软件设计师实际上最了解什么? |
6
1
不能显式地将函数声明为inline,但如果JIT优化器看到好处,它可以自由地将函数声明为inline。 |
7
0
注意到汤姆5月11日的问题,我不得不说如果你有一份申请 真正地 性能至关重要,那么使用依赖于CLR的语言可能不是您的最佳选择。 事实上,面向对象的设计也可能不是你的最佳选择。你可能会认真地把C看作是一种选择。 |
Karl · 如何引发PrintPage的事件? 2 年前 |
Daniel · LINQ从列表的dataTable中提取部分匹配 2 年前 |
limelatte · 如何在datagridview中屏蔽特定列? 2 年前 |
Orsi · 选择嵌套列表的最大值和最小值。网 2 年前 |
D T · 如何为Excel Com设置公式? 2 年前 |
Lenin · 将数组中的每个元素与另一个数组中的相应元素相乘 2 年前 |