当前位置: 首页 > news >正文

创建超过1G内存大小的程序

正常情况一个进程最大占用内存为1G一下,如果程序有需求要使用超过1G大小的程序,可进行如下操作

VS修改设置:属性--->链接器--->系统--->启用大地址 【选择是】

测试申请堆内存代码

#include <stdlib.h>
#include <stdio.h>
#include <Windows.h>
#include <malloc.h>
#include <exception>
#include <thread>int count = 0;
HANDLE g_event;
void TestThread()
{while (1){try{new int[1024 * 1024];count++;}catch (const std::bad_alloc){printf("申请内存失败\n");break;}}SetEvent(g_event);
}
int main()
{g_event = CreateEvent(0, false, false, 0);CreateThread(0, 0, (LPTHREAD_START_ROUTINE)TestThread, 0, 0, 0);WaitForSingleObject(g_event, INFINITE);printf("%dM\n",count*4);system("pause");return 0;
}

因为编译出来的是x86版本,所以运行后可看到使用了4G的内存

如果是x64,那么最大可使用8GB

使用vs开发人员工具 dumpbin /headers xxx.exe可以查看程序是否开启了大地址选项

Qt开启大地址选项

在.pro文件中添加  QMAKE_LFLAGS_WINDOWS += /LARGEADDRESSAWARE

注意

QMingw是不可以使用该选项的会出现如下错误(Qt Widget Application工程会出现,Qt Console Application不会出现,并且Qt控制台程序没有开启成功,如果使用VS创建Qt控制台工程是可以开启选项成功)

 error: /LARGEADDRESSAWARE: No such file or directory

http://www.lryc.cn/news/214510.html

相关文章:

  • 如何本地部署Jellyfin影音服务器并实现在公网访问
  • docker fixuid
  • MySQL笔记--SQL语句
  • 线扫相机DALSA-相机平场矫正详细步骤
  • 求购供应发布农业副业产品市场行情小程序开发
  • 框架安全-CVE 复现SpringStrutsLaravelThinkPHP漏洞复现
  • 【腾讯云 HAI域探秘】宝妈也能快速入门AI绘画
  • 归并排序,自顶向下
  • 【案例】3D地球(vue+three.js)
  • C语言中float byte char uint_8 转换方法
  • 瑞明达:脚踏实地,为实体经济贡献“瑞明达”力量
  • ChatGPT-自然语言处理模型
  • Apache Dolphinscheduler如何不重启解决Master服务死循环
  • 绝对好用!一个浏览器插件解决跨设备同步问题,吊打文件传输助手!
  • 阿昌教你如何优雅的数据脱敏
  • 力扣每日一题80:删除有序数组中的重复项||
  • SQL——插入已经存在的数据
  • 【网络安全 --- 任意文件上传漏洞靶场闯关 6-15关】任意文件上传漏洞靶场闯关,让你更深入了解文件上传漏洞以及绕过方式方法,思路技巧
  • 阿里云2核2G3M云服务器99元/年,新老同享,续费不涨价!
  • UWB 技术在机器人和移动领域的应用题】
  • 11.1 知识总结(JavaScript)
  • 【Java 进阶篇】Java Web开发:实现验证码功能
  • C++启动线程的方法
  • Distilling the Knowledge in a Neural Network学习笔记
  • JVM虚拟机:垃圾回收算法和垃圾回收器之间的关系
  • oracle sqlplus的使用 ,查询oracle实例名和服务名,查询oracle容器,切换oracle容器
  • golang工程——opentelemetry简介、架构、概念、追踪原理
  • Python 自动化(十六)静态文件处理
  • C#学习系列之密闭类、接口、结构和类
  • C++特殊类的设计