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

开发自用桌面小工具,想要内存占用低编译结果小除了 Delphi 还有什么推荐?

  •  1
     
  •   FrankAdler · 12 小时 3 分钟前 · 1255 次点击

    Delphi CE 下载怎么选实际下载到的都是 RAD Studio ,然后换了好几个邮箱都不到授权邮件,放弃了。

    其他的 Electron ,JavaFx 、Compose Multiplatform 、WPF 这些看下来编译结果个启动后空载内存都不低,个人不喜欢。

    前阵子用 WinForm 做了个小工具,启动后 17M ,勉强能接受,但是今天找了个类似的,人家启动才 2M 功能还比我多,就想试试别的期望能内存占用更低。

    43 条回复    2024-11-24 09:45:35 +08:00
    flyqie
        1
    flyqie  
       11 小时 58 分钟前 via Android
    不如说说你常用的语言是什么?

    不同语言能做到的大小确实不一样
    FrankAdler
        2
    FrankAdler  
    OP
       11 小时 55 分钟前
    @flyqie 服务端开发的,Java 、Go 、NodeJS 这些,写 WinForm 学了点 C#,磕磕绊绊的,也不是很介意学点新东西
    hefish
        3
    hefish  
       11 小时 50 分钟前
    搞个古时候的 mfc ?
    或者远古时代的 win32 api ?
    ericguo
        4
    ericguo  
       11 小时 48 分钟前   ❤️ 1
    FrankAdler
        5
    FrankAdler  
    OP
       11 小时 44 分钟前
    @hefish 如果找不到其他的选项会试试这些。
    musi
        6
    musi  
       11 小时 44 分钟前 via iPhone
    直接用 go 起一个 server 然后用浏览器充当 GUI 呢?
    deng9695
        7
    deng9695  
       11 小时 44 分钟前
    delphi 盗版随便装啊,wxwidgets 写程序也小,4M 左右,delphi 程序也三四 M 吧
    StinkyTofus
        8
    StinkyTofus  
       11 小时 35 分钟前
    易语言开发小工具资源占用也很低哦!
    aiqinxuancai
        9
    aiqinxuancai  
       11 小时 35 分钟前
    都自用了,何必呢?
    akira
        10
    akira  
       11 小时 26 分钟前
    Delphi CE 去官网下。 国内下载源基本上都是盗版的 rad studio
    aiqinxuancai
        11
    aiqinxuancai  
       11 小时 22 分钟前
    比你占用低的,我估计用的这个
    HANDLE hProcess = GetCurrentProcess();
    SetProcessWorkingSetSize(hProcess, -1, -1);
    roundgis
        12
    roundgis  
       11 小时 16 分钟前 via Android   ❤️ 1
    FrankAdler
        13
    FrankAdler  
    OP
       11 小时 13 分钟前
    @musi 有些场景不太适合,比如 托盘小工具提示啥的
    FrankAdler
        14
    FrankAdler  
    OP
       11 小时 13 分钟前
    @aiqinxuancai 就是自用,能控制,才想努努力
    FrankAdler
        15
    FrankAdler  
    OP
       11 小时 12 分钟前
    @deng9695 盗版也是可以的,之前想着 CE 免费就没动这个心思
    chenqh
        16
    chenqh  
       11 小时 10 分钟前
    要不先命令行?我现在就在用 python 的命令行来给自己同步文件.
    FrankAdler
        17
    FrankAdler  
    OP
       11 小时 9 分钟前
    @aiqinxuancai 具体我就不懂了,当我打开他设置里的释放未使用的内存回收,每次关闭窗口到托盘就剩 600k 内存占用了。
    FrankAdler
        18
    FrankAdler  
    OP
       11 小时 8 分钟前
    @akira 官方下载了不给发送授权邮件。。。我安装好了进不去。
    FrankAdler
        19
    FrankAdler  
    OP
       11 小时 7 分钟前
    @aiqinxuancai 比起易语言,感觉 aardio 这种我可能更愿意尝试,而且我也写过,感受也还行
    FrankAdler
        20
    FrankAdler  
    OP
       11 小时 5 分钟前
    @chenqh 场景不同,比如我做个常驻托盘的 App 启动器,或者啥需要托盘、快捷键快速唤起窗口的
    1una0bserver
        21
    1una0bserver  
       10 小时 54 分钟前 via Android
    autoit3/ahk ,pecmd 脚本,易语言,c ,rust,zig ,vb6
    qiniu2025
        22
    qiniu2025  
       10 小时 27 分钟前
    用 delphi7 精简版,自身很小,写的软件也小
    yinmin
        23
    yinmin  
       10 小时 26 分钟前 via iPhone
    还有 1 个古董级的开发软件能实现 OP 的需求,Visual Basic 6 。

    我找到以前用 visual basic 6 写的一个 windows service ,曾经稳定运行了 10 多年,整个软件只有 60KB ,运行只占 2MB 内存。

    刚才试了一下,exe 直接复制到 win11 ,无需安装支持库能直接运行,绝对是绿色软件标准。

    visual basic 是比尔盖茨的最爱,居然 vb6 支持库内置 windows 从 win2000 、xp 、vista 、7 、8 、10 保留到了 win11 ,用 vb6 写的程序能以绿色软件形式直接运行。
    FrankAdler
        24
    FrankAdler  
    OP
       10 小时 24 分钟前
    @1una0bserver
    @qiniu2025
    @yinmin
    感谢,我都试试看
    yinmin
        25
    yinmin  
       10 小时 3 分钟前 via iPhone
    visual basic 6 是 1998 年发布的,当时最先进的 pc 是奔腾 II 300MHz ,64MB 内存,4GB 硬盘跑 win98 或 win NT 4.0 (所以程序占用资源极少)

    金蝶 erp 软件 kis 、k3 ,用友 erp 软件 u8 都是用 vb6 开发的,至今仍有企业在使用这些 vb6 开发的软件(目前仍有工程师做 vb6 的二次开发)

    微软在 2021 年还为 vb6 支持库发布了最新补丁以支持 win11 。
    dcsuibian
        26
    dcsuibian  
       9 小时 48 分钟前
    说句不人道的:用 C ,因为我听说 Rufus 就是用 C 写的,我感觉那个挺轻量的。
    nikenidage1
        27
    nikenidage1  
       9 小时 32 分钟前   ❤️ 1
    试试 winform 的 AOT 啊
    HFX3389
        28
    HFX3389  
       9 小时 25 分钟前 via iPhone
    要不要试试易语言或者 aardio 呢?
    kneo
        29
    kneo  
       9 小时 9 分钟前 via Android   ❤️ 1
    有个现在有点冷门的选择,就是如果应用本身足够简单的话,可以考虑 autohotkey 。
    xmagicer
        30
    xmagicer  
       8 小时 52 分钟前
    如果界面比较复杂,windows 原生系统接口也不一定底,可能是直接调用系统功能导致的统计数据不匹配
    xmagicer
        31
    xmagicer  
       8 小时 51 分钟前
    试试最底层的 win32 gdi
    FrankAdler
        32
    FrankAdler  
    OP
       8 小时 36 分钟前
    @yinmin 折腾了一下装上了,跑了个空 form ,编译启动后 1058kb 内存,感觉还行,等我深入试试。
    WebKit
        33
    WebKit  
       7 小时 50 分钟前 via Android
    Flutter 呢
    Guoiaoang
        34
    Guoiaoang  
       7 小时 27 分钟前
    我是做 C++的,据我所知,越高级的编程语言资源占用越高,汇编 < C < C++ < JAVA ,涉及到 web 更大,Go 好像常用于集群、高并发场景,资源占用应该也不高。不过涉及到 GUI 的话好像就没几个可选的了。据我所知 Windows 可以使用 Win32 的 API 编程,之上封装的有 MFC 、QT ,或者使用 OpenGL 编程。QT 、OpenGL 、java 、脚本语言都是跨平台的但脚本语言实际上也是调用的编译语言的实现。我用的是 Win11 ,QT 写的 snipaste 占用 24M ,scintilla 写的 Notepad2 占用 49M ,rust 写的 rustdesk 占用 42M ,可以在 github 上按流行的编程语言筛选出最有名的 GUI 程序体验一下,大概就知道什么适合自己了。
    jsq2627
        35
    jsq2627  
       6 小时 48 分钟前 via iPhone
    kk2syc
        36
    kk2syc  
       3 小时 43 分钟前
    go+win32api+自绘,14M 内存,我觉得很满足了,毕竟俺配的 128G 内存
    dwu8555
        37
    dwu8555  
       2 小时 59 分钟前
    用 Lazarus ,Delphi 的开源社区版本,跨平台,还是挺好用的
    hanxiV2EX
        38
    hanxiV2EX  
       2 小时 33 分钟前 via Android
    https://github.com/getlantern/systray

    托盘这种,然后用浏览器吧。
    loading
        39
    loading  
       2 小时 12 分钟前
    aardio 值得拥有。
    EngAPI
        40
    EngAPI  
       1 小时 42 分钟前
    lazarus ,跨平台,挺好用的
    bruce0
        41
    bruce0  
       1 小时 18 分钟前
    想要极致的低内存占用, Windows 图形应用, 常见的应该是用 C/C++使用 win32 或者 MFC 开发吧, 手搓汇编这种事不是一般人能干的,很赞同 #34 楼老哥的说法
    kkgogo
        42
    kkgogo  
       1 小时 14 分钟前
    aardio
    sir283
        43
    sir283  
       1 小时 0 分钟前
    Windows 可以用 win32 跟 mfc 啊,Linux 可以用 xwindow 啊,而 c++的 qt 框架介入两者之间,方便开发跟阅读,资源占用也比较 electorn 这些前端框架,要小一些。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2629 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 02:45 · PVG 10:45 · LAX 18:45 · JFK 21:45
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.