gpt4 book ai didi

.net - 启动时依赖 CLR 的程序集解析

转载 作者:行者123 更新时间:2023-12-04 22:52:44 26 4
gpt4 key购买 nike

CLR 是否尝试在程序启动时解析 [不一定加载] 所有依赖程序集?
也就是说,依赖程序集解析是按需完成的吗?
请注意,我不是在谈论 Assembly.Load* [反射] 类型的负载。

最佳答案

JIT 编译器指导程序集的加载,以响应将 IL 转换为机器代码。类型方法调用首先被转换为调用 stub 函数。调用时,此 stub 激活 JIT 编译器以加载 IL(必要时加载程序集)并翻译它。非常按需。

这个过程中的一个问题是通过 Ngen.exe 运行的程序集,所有 .NET 框架程序集都是在它们安装在机器上时。这是在首次加载程序集时检测到的。然后 JIT 编译器跳过翻译步骤并按原样使用预翻译的机器代码。虽然这将加载程序集生成的所有机器代码,但它仍然是按需的。术语“加载”在这里是相对的,Windows 使用内存映射文件将 native 镜像映射到虚拟内存空间。在代码执行到达尚未映射到 RAM 的内存页面之前,不会从文件中读取实际字节。技术术语是“页面错误”,它在 Taskmgr.exe 中可见。

关于.net - 启动时依赖 CLR 的程序集解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2206321/

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