1.X86程序与X64程序的区别

  • X86程序的内存使用限制
    在Windows32位操作系统中,每个进程所能使用的最大空间(包含操作系统使用的内核模式地址空间)为4G,在通常情况下,操作系统会分配2GB内存给进程使用,另外2G内存,另外2G内存为操作系统保留。
  • 何谓大内存
    所谓“大内存”,就是指允许X86进程允许使用超过2G的内存空间。这里的内存空间不光是进程动态申请的,还包括操作系统自动为进程分配的。一般情况下,进程当前使用的内存空间大小,可以通过操作系统计数器来查看。
    从目前的个人的测试情况来看,开启大内存后的X86进程最多能用3.7G左右的内存空间,当然该数值是个估计值,和硬件、操作系统及程序本身都有关系。
  • 大内存的使用条件
    1.操作系统应该是64位Windows操作系统;
    2.开启大内存的程序应为Visual Studio开发的;
    3.程序应为X86程序,X64程序本身就没有2G内存的限制。

2.什么时候需要开启大内存

  • 大内存的适用情况
    在软件开发中,随着处理路数和数据量的加大,内存消耗的越来越多。为了解决这种问题,最好的方法是将编译平台从X86切换到X64。然后现实中,并不是所有的X86程序都能够直接切换到X64位的,以下就是几种常见的情况:
    1.目前的维护的较早的X86程序,公司没有过多资源来将整个软件切换到X64平台;并且原有的X86版本是正常运行的,现在仅仅是数据量或者稍微增加,但是增加后的进程内存还在3.7G以下;
    2.原有的X86程序用了较多的第三方库,而部分第三方库没有X64版本的库文件。
  • 内存不足的先兆
    1.对于C#程序来说,内存不足一般会引发异常,常见的异常原因有“内存不足”或者“图片无法加载“;
    2.对于C++程序,一般是内存申请操作失败。

3.开启大内存的方法

  • 由于Visual Studio版本较多,个人精力和资源有限,仅针对VS2008和VS2015进行了测试。下面针对VS2008和VS2015做下说明。假定要开启大内存的程序执行文件路径为: D:\Test.exe
  • VS2008开启大内存的方法
    1.开启方法
    (1)利用管理员身份运行”Visual Studio 2008 x64 兼容工具命令提示”程序;
    (2)输入命令:editbin /LARGEADDRESSAWARE D:\Test.exe
    2.检查是否开启成功
    (1)利用管理员身份运行”Visual Studio 2008 x64 兼容工具命令提示”程序;
    (2)输入命令:dumpbin /headers D:\Test.exe
  • VS2015开启大内存的方法
    1.开启方法
    (1)利用管理员身份运行”VS2015 x64 x86兼容工具命令提示符”程序;
    (2)输入命令:editbin /LARGEADDRESSAWARE D:\Test.exe
    2.检查是否开启成功
    (1)利用管理员身份运行”VS2015 x64 x86兼容工具命令提示符”程序;
    (2)输入命令:dumpbin /headers D:\Test.exe

注意
1.内存开启成功的标志:在查看结果中的”FILE HEADER VALUES”段落中,会出现”Application can handle large (>2G) addresses”字样;
2.当程序重新编译后,原有的大内存信息会丢失,所有需要重新开启;
3.在程序中,只需要针对执行文件开启大内存即可,其他的文件非执行文件不需要再开启。

利用Visual Studio为X86程序开启大内存的方法相关推荐

  1. Visual Studio Code 打开程序文件中文乱码解决方法

    文章原始地址: http://feotech.com/?p=76 \ 使用Visual Studio Code打开程序文件后对应的中文乱码,造成这种现象的原因是文件的编码方式不同. 可以通过调整打开文 ...

  2. Windows10下利用Visual Studio Code搭建C语言开发环境

    Windows10下利用Visual Studio Code搭建C语言开发环境 1. 前言 2. 下载安装VSCode以及MinGW 2.1 下载安装VSCode 2.2 下载安装MinGW-w64 ...

  3. 利用Visual Studio Project自动将数据加载到SQL Server数据库中

    介绍 (Introduction) A few months back, I encountered an interesting challenge at a client site. For th ...

  4. 如何利用Visual Studio建立具有MVC框架的网页模型

    如何利用Visual Studio建立具有MVC框架的网页模型 1.打开VS2015,新建项目,选择Web模型中的ASP.NET Web应用程序 2.其次选择带有MVC的模板进行创建,并等待项目创建成 ...

  5. IDE之VS:利用 Visual Studio中的IDE配置python语言进行编程

    IDE之VS:利用 Visual Studio中的IDE配置python语言进行编程 目录 第一步,先安装python环境 第二步,加载本地已有的python 第一步,先安装python环境

  6. IDE之VS:利用 Visual Studio中的IDE配置C++语言进行编程

    IDE之VS:利用 Visual Studio中的IDE配置C++语言进行编程 目录 C++编译器之VS2015 1.新建项目,VisualC++,空项目,确定 2.右键项目文件夹,添加,新建 3.添 ...

  7. 利用Visual Studio 2005的自动化测试工具来做数据导入

    * reference link: http://www.bentan.cn/Blog/Lists/Posts/Post.aspx?ID=3 1     引言 1.1         研究目标 在我们 ...

  8. vs2017c语言一闪而逝6,Visual Studio IDE编写程序时不显示窗口或窗口一闪而逝的解决方法...

    这篇文章主要为大家详细介绍了Visual Studio IDE编写程序时不显示窗口或窗口一闪而逝的解决方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 使用Visual Studio IDE编写 ...

  9. Visual Studio“无法启动程序”系统找不到指定文件

    Visual Studio"无法启动程序"系统找不到指定文件,并且打开debug发现里面生成的是exe.recipe 解决方法: 1.建立一个空项目 2.在解决方案资源管理器里面添 ...

最新文章

  1. lua用于ios开发
  2. python和java一样吗-Python和Java的区别
  3. k8s-16-k8s基础存储
  4. 调用自定义函数search(int list[], int n),在数组中查找某个数
  5. 详介oracle的RBO/CBO优化器
  6. this.getstate_Java线程类Thread.State getState()方法(带示例)
  7. lan pci 联想开机_微软承认KB4568831导致部分联想ThinkPad笔记本崩溃和蓝屏
  8. Qt之模式、非模式、半模式对话框
  9. raster | R语言中的空间栅格对象及其基本处理方法(Ⅱ):投影、属性提取
  10. JavaScript 之arguments、caller 和 callee 介绍
  11. 浅层分析-shallow parsing
  12. 基于Socket的文件传输(使用CSocket类)
  13. hadoop 如何连beeline_impala为hadoop续命
  14. 笨方法学Python3 习题6
  15. 好看的PPT导航栏有哪些制作技巧
  16. WordPress SEO插件,免费WordPress插件大全
  17. 《21天学通C语言(第7版)》一6.4 小 结
  18. 39.伪造重定向ICMP数据包
  19. 高新区 中国智慧城市大数据创新联盟揭牌
  20. 3.如何使用EXCEL进行数据分析,得出相应的拟合公式

热门文章

  1. sectigo代码签名证书
  2. 飞思卡尔单片机DZ60---EEPROM读写
  3. CSS 提示 invalid property value
  4. 人性善恶论与公司文化
  5. ITK学习笔记(七) ITK旋转方向位置不变
  6. 专访东方网力董事长刘光:起底安防市场下的AI商业逻辑
  7. MATLAB计算阶乘、排列数与组合数
  8. GNU GPL 许可证常见问题解答
  9. 深入分析 Java 中的中文编码问题(1)
  10. Fritzing下载安装