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

问题描述

| 使用反射器检查了一些框架类,并注意到许多方法和属性具有以下属性
[TargetedPatchingOptOut(\"Performance critical to inline across NGen image boundaries\")]
我很确定我在其他地方也看到了以上评论,但从未进行过跟进。 有人可以告诉我这在C#和任何其他上下文中意味着什么吗?     

解决方法

它告诉NGen,即使在不同的程序集中,也可以内联它所应用的方法。 例如:
String.Equals
[TargetedPatchingOptOut]
您编写一个调用
String.Equals
的程序 您在此程序上运行NGen可获得最佳性能 NGen将内联“ 1”调用,将方法调用指令替换为方法中的实际代码。 方法调用(略)昂贵,因此对于经常调用的方法而言,这可以提高性能。 但是,如果Microsoft在ѭ1中发现一个安全漏洞,则他们不能仅更新
mscorlib.dll
,因为这不会影响您刚刚由NGen进行的程序集。 (因为它具有未引用
String.Equals
的原始机器代码)。 我假设如果确实要发生这种情况,则此安全更新将清除NGen存储。 请注意,此属性仅在.NET Framework程序集中有用。您不需要自己的。您可以在这里找到关于此的更多信息:https://stackoverflow.com/a/14982340/631802     

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...