我浏览了一些使用反射器的框架类,并注意到许多方法和属性具有以下属性
[TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
我很确定我在其他地方也看到过上面的评论,但我从来没有跟进过。
有人能告诉我这在C#和任何其他上下文中意味着什么吗?
发布于 2011-05-24 19:37:02
它告诉NGen,即使在不同的程序集中,内联它所应用的方法也是可以的。
例如:
String.Equals
让[TargetedPatchingOptOut]
String.Equals
String.Equals
调用,将方法调用指令替换为方法中的实际代码。方法调用是(稍微)昂贵的,因此对于频繁调用的方法来说,这是一个性能提升。
但是,如果微软在String.Equals
中发现了安全漏洞,他们不能只更新mscorlib.dll
,因为这不会影响您刚刚生成的程序集(因为它有原始的机器代码,但没有引用String.Equals
)。
我假设,如果这真的发生了,安全更新将清除NGen存储。
请注意,此属性仅在.NET框架程序集中有用。你自己并不需要它。你可以在这里找到更多信息:https://stackoverflow.com/a/14982340/631802
https://stackoverflow.com/questions/6109745
复制相似问题