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

  • 相关阅读:
    模拟最烂的网速
    TableView编辑状态下跳转页面的崩溃处理
    Swift的Optional类型
    autolayout之后获取uiview的frame
    Swift中的闭包(Closure)[转]
    Swift1.2与Xcode6.3 beta
    python技巧31[python中使用enum][转]
    Python初学者的捷径[译]
    tornado+bootstrap急速搭建你自己的网站
    Windows下nginx+tomcat实现简单的负载均衡、动静分离等
  • 原文地址:https://www.cnblogs.com/lidabo/p/12163101.html
Copyright © 2011-2022 走看看