Han*_*ant 20
编写占用所有可用虚拟内存空间的32位程序非常困难.你的墙壁远远低于2千兆字节,你首先耗尽的是一大块虚拟内存,足以满足要求的大小.您只能通过小额分配来获得最高2GB的限制,小到足以适应漏洞.
在操纵位图的程序中,那堵墙很早就出现了.他们可以消耗大量的VM来存储位图像素,它需要是一个连续的分配.它们存储在一个array而不是一个tree.这是一个非托管的内存分配,典型的.NET内存分析器往往有点无奈向您展示问题.
关于地址空间碎片,你没有任何合理的做法,认为消耗所有可用虚拟机应该是可能的是错误的.通过editbin.exe在后期构建事件中运行并使用其/LARGEADDRESSAWARE命令行选项,可以在64位操作系统上获得更多的喘息空间.这允许进程使用可用的4千兆字节的VM,这是一个特定于64位版本的Windows的选项,因为Windows不需要高2GB.当然,将平台目标更改为AnyCPU是一种快速简便的方法来获取虚拟内存.
| 归档时间: |
|
| 查看次数: |
3841 次 |
| 最近记录: |