zoukankan      html  css  js  c++  java
  • 利用Visual Studio为X86程序开启大内存的方法

    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.在程序中,只需要针对执行文件开启大内存即可,其他的文件非执行文件不需要再开启。
    ————————————————

  • 相关阅读:
    mysql命令集锦
    linux 删除文件名带括号的文件
    linux下的cron定时任务
    struts2文件下载的实现
    贴一贴自己写的文件监控代码python
    Service Unavailable on IIS6 Win2003 x64
    'style.cssText' is null or not an object
    "the current fsmo could not be contacted" when change rid role
    远程激活程序
    新浪图片病毒
  • 原文地址:https://www.cnblogs.com/lidabo/p/12163101.html
Copyright © 2011-2022 走看看