我可以在 .NET 应用程序的地址空间中重新排列 dll 映像,以提供更多连续的可用空间吗?
替代文本 http://www.freeimagehosting.net/uploads/67f98ad782.png
图像显示了我的应用程序地址空间中的碎片。有没有办法强制(第三方)dll 映像(紫色)在一起以消除(或减轻)碎片?
该应用程序将在 32 位 XP 上运行;显然,当我们最终转向 64 位 Windows 7 时,这个问题就会消失。
谢谢!
alt text http://www.freeimagehosting.net/uploads/67f98ad782.png
This image shows fragmentation in my app's address space. Is there any way to force the (third-party) dll images (purple) together to eliminate (or mitigate) the fragmentation?
This app will run on 32-bit XP; obviously when we eventually move to 64-bit Windows 7, this problem will go away.
Thanks!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
是的,您可以对 .NET 程序集进行变基,但效果相当有限,因为 JIT 编译的代码将放置在代码堆上,并且不受变基影响。另外,从Vista 和转发图像加载器随机化加载以防止某些类型的利用,所以即使如果你变基,程序集将被加载到随机地址。
Yes you can rebase your .NET assemblies, but the effect is rather limited as the JIT compiled code will be placed on the code heaps and that is not affected by rebasing. Also, from Vista and forward the image loader randomizes loading to prevent certain kind of exploits, so even if you rebase the assemblies will be loaded at random addresses.