我可以在.NET应用程序的地址空间中重新排列dll图像,以便提供更多连续的可用空间吗?

时间:2010-01-26 15:43:39

标签: .net out-of-memory address-space

alt text http://www.freeimagehosting.net/uploads/67f98ad782.png

此图片显示了我应用的地址空间中的碎片。有没有办法强制(第三方)dll图像(紫色)一起消除(或减轻)碎片?

这个应用程序将在32位XP上运行;显然,当我们最终迁移到64位Windows 7时,这个问题就会消失。

谢谢!

1 个答案:

答案 0 :(得分:4)

是的,您可以重新定义.NET程序集,但效果相当有限,因为JIT编译的代码将放在代码堆上,并且不受重新定位的影响。另外,从Vista and forward the image loader randomizes loading来防止某种类型的攻击,所以即使你重新组装程序集也会在随机地址加载。