我们正在使用编译的表达式树来动态生成代码。一些仅在运行时可供我们使用的信息使我们能够(理论上)编写更简单,更快的代码。
在许多情况下,我们确实可以提高性能。
但是,在某些情况下,我们会降低性能。在这种情况下,Visual Studio Profiler显示性能差异是由于此方法引起的(在静态编译的代码中根本没有出现)
JIT_MethodAccessCheck
这种方法有什么用? (Google对此不多说)。
我可以以某种方式优化它吗?
最佳答案
JIT_MethodAccessCheck
方法执行安全检查,例如SecurityTransparent,APTCA和@xanatos提到的类访问检查。
类访问检查包括SecurityCritical,SecuritySafeCritical,附加的探查器旁路和LinkDemand。可以在coreclr jithelpers.cpp上找到更多详细信息。
由于coreclr与CLR兼容,因此我们可以安全地假定两者的检查方式相同。