|
1
4
JIT编译器负责引导程序集的加载,以响应将IL转换为机器代码。类型方法调用首先转换为调用存根函数。调用时,此存根激活JIT编译器以加载IL(必要时加载程序集)并对其进行转换。非常随需应变。 此过程中的一个问题是通过Ngen.exe运行的程序集,所有.NET framework程序集在安装到计算机上时都是通过Ngen.exe运行的。这在首次加载程序集时检测到。然后JIT编译器跳过翻译步骤,按原样使用预翻译的机器代码。虽然这将加载程序集生成的所有机器代码,但它仍然是按需加载的。术语“加载”在这里是相对的,Windows使用内存映射文件将本机映像映射到虚拟内存空间。在代码执行到达尚未映射到RAM的内存页之前,不会从文件中读取实际字节。这方面的技术术语是“页面错误”,它在Taskmgr.exe中可见。 |
|
|
2
3
当需要在程序集中定义的类型时,将解析从属程序集。因此,程序集是按需加载的。 |
|
|
3
3
从…起 here
|
|
|
Nicola · C++CLI项目中非托管数据上的C#指针 8 年前 |
|
|
Anton Savelyev · 在发布版本中删除类指针会导致内存问题 8 年前 |
|
|
shmnff · 显式转换int到SqlInt32 8 年前 |
|
|
Alex12 · windows窗体中的C++if语句[关闭] 8 年前 |
|
|
Claude Tan · 类型定义和类型引用之间有什么区别? 8 年前 |