首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >TargetedPatchingOptOut:“跨NGen镜像边界内联的关键性能”?

TargetedPatchingOptOut:“跨NGen镜像边界内联的关键性能”?
EN

Stack Overflow用户
提问于 2011-05-24 19:33:47
回答 1查看 13.7K关注 0票数 140

我浏览了一些使用反射器的框架类,并注意到许多方法和属性具有以下属性

代码语言:javascript
复制
[TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]

我很确定我在其他地方也看到过上面的评论,但我从来没有跟进过。

有人能告诉我这在C#和任何其他上下文中意味着什么吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-05-24 19:37:02

它告诉NGen,即使在不同的程序集中,内联它所应用的方法也是可以的。

例如:

  • String.Equals[TargetedPatchingOptOut]
  • You编写一个调用String.Equals
  • You的程序在此程序上运行NGen以获得最大的performance
  • NGen将内联String.Equals调用,将方法调用指令替换为方法中的实际代码。

方法调用是(稍微)昂贵的,因此对于频繁调用的方法来说,这是一个性能提升。

但是,如果微软在String.Equals中发现了安全漏洞,他们不能只更新mscorlib.dll,因为这不会影响您刚刚生成的程序集(因为它有原始的机器代码,但没有引用String.Equals)。

我假设,如果这真的发生了,安全更新将清除NGen存储。

请注意,此属性仅在.NET框架程序集中有用。你自己并不需要它。你可以在这里找到更多信息:https://stackoverflow.com/a/14982340/631802

票数 176
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6109745

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档