TargetedPatchingOptOut:“性能对于跨NGen图像边界内联至关重要”?

马克西姆·格什科维奇(Maxim Gershkovich)

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

[TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]

我敢肯定,我在其他地方也看到了以上评论,但从未进行过跟进。

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

ak

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

例如:

  • String.Equals 具有 [TargetedPatchingOptOut]
  • 您编写一个程序来调用 String.Equals
  • 在此程序上运行NGen可获得最佳性能
  • NGen将内联该String.Equals调用,将方法调用指令替换为方法中的实际代码。
    方法调用非常昂贵(因此),因此对于经常调用的方法而言,这是一种性能提升。

但是,如果Microsoft在中发现了一个安全漏洞String.Equals,那么它们就不能只更新mscorlib.dll,因为这不会影响您只是NGen的程序集。(因为它具有未引用的原始机器代码String.Equals)。
我假设如果确实要发生这种情况,则此安全更新将清除NGen存储。

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

xarray对于性能至关重要的代码而言太慢了

Collections.unmodifiableable性能至关重要吗?

调试Gtk至关重要

为什么返回类型(强制转换)在MethodHandler性能中起着至关重要的规则?

从辅助线程更新控制:调用性能至关重要吗?

将值列表添加到现有字典列表中(对性能至关重要)

声明“使用名称空间C;”对于证明示例中[namespace.udir] / 3中显示的结果至关重要

为什么x模板部分的位置对于vue模板与数据一起使用至关重要?

使用库来操纵XML是否至关重要?

当位顺序(而不是字节)至关重要时的字节序

此TensorFlow二进制文件已与Intel®MKL-DNN进行了优化,以在性能至关重要的情况下使用以下CPU指令

在边界内旋转图像

为什么在Postgresql中,索引的列顺序对group by至关重要?

Android屏幕兼容性-为不同的屏幕尺寸提供不同的布局是否至关重要?

将12.04升级到14.04.1时.gnupg至关重要

无法使图像适合UITextField的边界内

使用gd在图像边界内换行

内联变量跨边界唯一吗?

检查边界内的价值

你如何在其他图像的边界内填充图像?

组边界内的滚动总和

如何在 Kivy 中将可拖动图像保留在另一个图像的矩形边界内?

检查点是否在边界内

使用Python的RegEx:在边界内查找全部

将可平移的 UIView 保持在边界内

如何访问聚合边界内的实体

检查位置的坐标是否在边界内

在纬度/经度边界内绘制地图

将子视图限制在父边界内