windows应用程序开启大内存,减少程序因为内存问题崩溃

一.为什么开启大内存

windows32应用程序每个进程内存空间为4G,其中2G操作系统默认分配给应用程序,称为用户模式虚拟地址空间,剩下2G默认位操作系统保留,称为内核模式地址空间。但是当应用程序使用大量内存空间后,当新增内存不足时, 程序就会崩溃,因此如果32位应用使用大量内存,可能达到临界线的,应该开启大内存模式。

二.开启方法

1.vs编译选项开启
image.png
2.选用vs的editbin工具\

打开vs对应版本的cmd命令窗
命令是:
editbin /largeaddressaware xx.exe
xx.exe可以是相对路径,也可以是绝对路径。

三.验证方法

打开vs对应版本的cmd命令窗
dumpbin /headers xx.exe | more
出现下图标红框的话,就是开启了大内存模式


image.png

四.开启大内存效果

对于 32 位操作系统,程序依然只能使用 2GB 内存,除非开启了 '/3GB'开关。开启后,应用程序的用户态将可以使用 3GB 内存,但内核态将只能使用 1GB 内存。
对于 64 位操作系统,Windows 将会把4GB寻址空间全部分配给应用程序,因为系统自己已经有更多的内存寻址空间可以使用了,没必要使用 32 位应用程序的寻址空间。
参考博客:
https://www.cnblogs.com/walterlv/p/10326596.html

你可能感兴趣的:(windows应用程序开启大内存,减少程序因为内存问题崩溃)