gpt4 book ai didi

c# - Windows 服务中 RuntimeHelpers.PrepareMethod 的缺点

转载 作者:太空宇宙 更新时间:2023-11-03 13:15:18 25 4
gpt4 key购买 nike

<分区>

我正在调查服务器(具有多项服务)启动后不久发生的延迟问题。

我添加了一个简单的方法,它加载引用的 DLL 并对这些 DLL 中每个程序集中的每个类型的每个方法执行 RuntimeHelpers.PrepareMethod,有效地 JIT-ing 整个代码库(一个具体服务)。这是使用 Parallel.ForEach 执行的,只需几秒钟(在四核处理器上为 100%)。这将第一次调用的延迟问题减少到几乎没有(因为我不是 JIT-ing 泛型方法)。它还具有非常低的价格,在服务初始化过程中只需几秒钟。

但是我的团队负责人声称对服务器的这种类型的修改不会投入生产,因为它“不安全”并且可能会带来意想不到的结果,并且他提到了动态加载(和卸载?)DLL。

我所描述的是否真的会带来意想不到的结果、异常等?

Windows 管理服务的方式是否会影响 RuntimeHelpers.PrepareMethod(反之亦然)?

与在常规 Windows 应用程序中执行相同操作(预先对所有方法进行 JIT 处理)有什么不同吗?

它是否与 DI 冲突(我们使用的是 IOC)?

如果我们动态加载 DLL,它会以任何方式干扰吗?

一般来说,它会带来什么危害?

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