PC端C++软件, 开启大地址,让32位程序使用4G内存

我在以前的文章中分析过软件的内存模型(链接点击这里),从中我们可以知道,程序运行起来以后,它将有自己独立的虚拟地址空间。这个空间的大小与操作系统的位数有关。目前使用C++开发的PC端软件一般都是开发32位的。那么32位的软件,最大寻址空间也就是4GB。其中很重要的一部分是给系统内核使用的内核空间。在32位的windows操作系统中,高地址的2GB空间就是给内核使用的内核空间,用户程序空间只有2GB;而32位的linux内核空间只有1GB大小,也就是用户空间有3GB大小。我们也引用以前的图:

2.对于 QT 项目:

在配置文件.pro中添加下面的编译选项,进行开启大地址:

3.其实不管使用什么IDE编译的程序,都可以使用VS的editbin工具打开大地址选项。

4.接下来我们怎么验证一下当前程序是否启用了大地址呢/h3>

这时候,我们可以借用VS命令行工具,editbin命令来进行检测。
1.首先打开VS命令行工具:

PC端C++软件, 开启大地址,让32位程序使用4G内存
我们可以看到信息增加了一行:“Application can handle large (>2GB) address”。也就是程序可以操控大于2GB的地址。这也就达到了我们开启大地址的结果。

32位的程序开启了大地址,可以降低由于程序申请大内存失败导致的崩溃。有效提高了软件的稳定性。

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2019年11月22日
下一篇 2019年11月22日

相关推荐