V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
CallmeDredd
V2EX  ›  程序员

32 位应用内存不够了应该怎么办

  •  
  •   CallmeDredd ·
    mahaonan1005 · 2023-02-02 12:44:40 +08:00 · 2347 次点击
    这是一个创建于 420 天前的主题,其中的信息可能已经有所发展或是发生改变。

    工作原因要用到一个老的 32 位应用,每次打开都存都是用满 2G 的,任务多了以后就会出现闪退的情形,最近又添加了点数据进去,操作时候白屏变成了家常便饭。 。。。cry 。。。

    大家有什么好办法吗?

    11 条回复    2023-02-04 07:21:03 +08:00
    bclerdx
        1
    bclerdx  
       2023-02-02 12:56:16 +08:00 via Android   ❤️ 2
    没办法,想办法迁移到 64 位。
    sadfQED2
        2
    sadfQED2  
       2023-02-02 12:56:52 +08:00 via Android   ❤️ 1
    理论上不重新编译成 64 位的应该没什么办法吧?
    feng32
        3
    feng32  
       2023-02-02 13:05:15 +08:00 via Android   ❤️ 1
    高级系统设置里,把内核内存空间调到 1G ,用户态调到 3G

    可能会有些副作用,谨慎使用
    sloknyyz
        4
    sloknyyz  
       2023-02-02 13:08:43 +08:00   ❤️ 1
    32 位顶多也就是把 LARGEADDRESSAWARE 开启。64 位也不是说上就上的,如果用到第三方库,还要把那些东西也一并搞成 64 位的。
    首先还是优化下内存占用,用不到的内存及时释放掉。其次还可以考虑多进程,用 ipc 交互。实在没办法了再考虑 64 位。
    cnbatch
        5
    cnbatch  
       2023-02-02 13:10:19 +08:00   ❤️ 17
    如果你的电脑有 Visual Studio ,那么可以打开“Developer Command Promote for VS****”,再用 editbin /largeaddressaware 给这个 exe 启用大地址支持,这样可以用满 4G 内存。

    用法很简单:editbin /largeaddressaware 你的程序.exe

    注意,使用 editbin 之前必须备份好原 exe ,因为 editbin 会修改 exe 文件本身(其实名字本身就已经说明一切)
    nziu
        6
    nziu  
       2023-02-02 13:28:14 +08:00   ❤️ 3
    #4 说的单独软件,玩一些老游戏经常用到
    https://ntcore.com/?page_id=371
    tool2d
        7
    tool2d  
       2023-02-02 13:44:53 +08:00
    我刚写了一小段测试代码。

    32 位程序,编译不加 /LARGEADDRESSAWARE ,只能分配 1.8G 。

    而加了后,内存容量能到 3.8G ,厉害。
    fengjianxinghun
        8
    fengjianxinghun  
       2023-02-02 15:59:55 +08:00
    @cnbatch 第一次知道,牛逼
    furlxy
        9
    furlxy  
       2023-02-02 19:56:00 +08:00
    @cnbatch 大佬的回帖都是硬核技术
    giaodadi
        10
    giaodadi  
       2023-02-03 01:00:46 +08:00
    多进程
    CallmeDredd
        11
    CallmeDredd  
    OP
       2023-02-04 07:21:03 +08:00
    @nziu 我试了这个软件,超级好用!
    看了下这个作者网站,感觉是个超级有趣的人
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3159 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 12:23 · PVG 20:23 · LAX 05:23 · JFK 08:23
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.