gpt4 book ai didi

c# - 关于使用 RuntimeHelpers.PrepareMethod() 进行预 JIT 的问题

转载 作者:行者123 更新时间:2023-11-30 12:31:28 25 4
gpt4 key购买 nike

我正在探索使用 RuntimeHelpers.PrepareMethod() 来减少具有大量 UI 库的瘦客户端应用程序的启动时间

我创建了一个 JIT 帮助程序类以在后台线程上运行并遍历类型或程序集的方法并在它们上调用 PrepareMethod

首先,这样做有什么缺点吗? (我不是指对整个应用程序进行 JIT,我指的只是重型库,例如 Infragistics、DevExpress 和代表 WPF 中窗口类的类)

其次,有没有办法确定一个方法是否已经过 JIT? (虽然我没有注意到任何延迟或不小心多次调用它的问题)

最后,如果我在后台线程上执行 JIT 处理,而另一个线程调用当前正在执行 JIT 处理的方法,会发生什么情况?

最佳答案

因为你问的是高度依赖于实现的,所以没有明确的答案......我希望在方法被 JITted 时会有某种锁定......但除了深入挖掘特定的 . NET 版本等。这仍然是猜测......

顺便说一句:在相应的 MethodDesc 上有一个名为 IsJitted 的(非公共(public))字段,JIT 编译器在 jitting 后将其设置为 true ... 有关更多信息,请参阅 here ...

关于c# - 关于使用 RuntimeHelpers.PrepareMethod() 进行预 JIT 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13435641/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com