这个系列文章的第一部分上了CSDN的首页,可见这个话题还是有很多人关注的。而且我们也能够从设计者的角度深入了解.Net Compact Framework CLR的内部结构。这部分我们要讨论JIT编译器的知识。再次感谢Steven Pratschner,感谢他给我们带来了这么好的文章,本章的英文版可以在这里找到。
第二章 设计JIT编译器
这是《设计.Net Compact Framework CLR》系列文章的第二部分。你可以在这里看到第一部分。在第二部分中,我们将讨论.Net Compact Framework JIT编译器的一些基本设计原则。
----
.Net Compact Framework的JIT编译器与.Net Framework最大的不同在于内存使用。在内存紧张的情况下,.Net Compact Framework可以释放Jitted代码,将内存返还给操作系统。正如你所预料的那样,如此设计的原因是因为用于存储jitted代码的堆是分配在应用程序私有的32MB地址空间上的(更多信息可以参考第一部分)。除了私有地址空间非常小之外,考虑到它们从来不被分页,在内存受限设备上运行程序,必要时减少空间压力的设计是绝对必要的。