当前位置: 首页 > news >正文

发现用明道中文编程语言打包的hanoi.exe文件是22M,有点大啊,还能通过什么技术手段更小一些吗?(先维持原样)

Trae说22MB 是正常的

22MB 是正常的,因为 raco exe 打包了整个 Racket 运行时(约 10MB)+ 基础库 + 明道模块。让我帮你看看怎么减小

langbyracket
白名单运行
在终端查看

$ cd G:\dumategithub\langbyracket\mingdao\examples && raco exe -o hanoi.exe hanoi-mingdao.rkt 2>&1

Thought

langbyracket
白名单运行
在终端查看

$ Get-Item G:\dumategithub\langbyracket\mingdao\examples\hanoi.exe | Select-Object Length, Name

Length Name


22461440 hanoi.exe

langbyracket
白名单运行
在终端查看

$ cd G:\dumategithub\langbyracket\mingdao\examples && .\hanoi.exe 2>&1

从 A 移动到 C
从 A 移动到 B
从 C 移动到 B
从 A 移动到 C
从 B 移动到 A
从 B 移动到 C
从 A 移动到 C

Thought

exe 可以正常运行!21.4MB 是 Racket 运行时 + 基础库的固有大小。让我看看有没有压缩工具可用

langbyracket
在沙箱中
在终端查看

$ Get-Command upx -ErrorAction SilentlyContinue ; if ($?) { upx --version | Select-Object -First 1 } else { echo “UPX not found” }

UPX not found

langbyracket
白名单运行
在终端查看

$ cd G:\dumategithub\langbyracket\mingdao\examples && raco exe --orig-exe -o hanoi-launcher.exe hanoi-mingdao.rkt 2>&1 ; if ($?) { Get-Item hanoi-launcher.exe | Select-Object Length, Name } else { echo “orig-exe failed” }

Length Name


22465536 hanoi-launcher.exe

Thought

–orig-exe 生成的也是 22MB。让我测试一下能否运行,以及是否有不同的行为

langbyracket
白名单运行
在终端查看

$ cd G:\dumategithub\langbyracket\mingdao\examples && .\hanoi-launcher.exe 2>&1

从 A 移动到 C
从 A 移动到 B
从 C 移动到 B
从 A 移动到 C
从 B 移动到 A
从 B 移动到 C
从 A 移动到 C

Thought

langbyracket
白名单运行
在终端查看

$ Remove-Item G:\dumategithub\langbyracket\mingdao\examples\hanoi-launcher.exe -Force ; echo “cleaned”

cleaned

Thought

22MB 是 Racket 打包的"起步价"——它包含了整个 Racket 运行时(约 8MB)+ 基础库(约 10MB)+ 明道模块(不到 1MB)。有几种减小方法:

方案一:UPX 压缩(推荐,22MB → ~8MB)

UPX 是一个可执行文件压缩工具,对 exe 约 50-60% 的压缩率,解压透明(运行时会自动解压,用户无感知):

# 安装 UPX(任选一种) choco install upx # 用 chocolatey 包管理器 winget install upx # 或用 winget # 或者从 https://upx.github.io/ 下载 # 使用 upx --best hanoi.exe # 22MB → ~8MB upx -1 hanoi.exe # 快速压 缩 22MB → ~12MB

方案二:raco distribute + --no-libs

创建一个调用系统 Racket 运行时的精简包:

raco exe -o hanoi.exe hanoi-mingdao. rkt raco distribute hanoi-dist hanoi. exe # 创建分发包

然后用 hanoi-dist/lib/racket 下的共享库替代 exe 中嵌入的运行时。但这更适合分发给其他用户,本地使用的话提升不大。

方案三:什么都不做(建议目前采用)

明道还在打磨阶段,真正发布时再用 UPX 压缩也不迟。当前阶段,用 racket 直接运行即可——我之前用 raco make 预编译后,启动速度应该已经有改善了。

好吧,暂时就先这样吧,维持原样

http://www.zskr.cn/news/1450680.html

相关文章:

  • Claude Code 平替来了?DeepSeek-TUI 保姆级安装教程
  • 性能相当于第四代骁龙8s
  • 双系统党必看:Ubuntu 18.04下Windows 10启动盘制作与bootmgfw.efi丢失修复全记录
  • QRemeshify:基于QuadWild算法的Blender四边形重拓扑技术深度解析
  • 多设备组网与Mesh网络入门
  • 仿真绿植绿化技术核心要点及服务商选择参考推荐:仿真绿植绿化工程/仿真绿植绿化电话/四川仿真绿植绿化/优选指南 - 优质品牌商家
  • GlosSI 入门指南:让 Steam 控制器在任意游戏和应用中畅玩
  • 别再死记硬背了!用Python手撸一个ID3决策树,从熵到分类器一次搞懂
  • 专为食品进出口打造的外贸ERP!智能生成发票、质检报告高效合规
  • 2026年近期如何筛选靠谱的气力输送设备优质厂家:以天顺机械为例的专业解析 - 2026年企业资讯
  • 告别编译噩梦:我在Ubuntu 18.04/20.04上为Xenomai 3.2.1打Linux 5.10.76补丁的五个关键抉择
  • ## 2026深圳全屋定制实测:西丽自有工厂木点点ENF套餐到底值不值? - 产品测评官
  • VoiceFixer语音修复工具:3种模式一键解决噪音、失真和低质量音频问题
  • 组织与交付 如何让产品 工程 合规 在 Agent 项目里不互相拖后腿
  • 三步永久保存微信聊天记录:WeChatMsg免费数据备份终极指南
  • 第41篇|补光与水印:效果选项如何参与最终照片记录
  • 别再手动对比了!Ubuntu 22.04上5分钟搞定Beyond Compare 4安装与汉化(附最新密钥获取方法)
  • 2026年Q2国内供应链软件企业实测评测:聚焦核心能力 - 优质品牌商家
  • 华为官网风格前端实战项目:纯原生HTML/CSS/JS实现,含首页、登录页与交互组件
  • 在终端中释放Qwen大模型潜能:5个场景掌握命令行交互核心技巧
  • GitHub-Store 开源应用商店,一键追踪安装更新
  • 三步把B站视频变成文字稿,这个免费工具让学习效率提升300%
  • 数字记忆守护者:如何用开源工具永久备份你的微信聊天记录
  • 01_制版厂质检员的困境
  • 实战一:用户、权限、组 案例
  • 嵌入式测试学习第 26 天:SPI通信协议基础、主从模式、速度特点
  • CentOS 7下SFTP连接报错‘bad ownership’?手把手教你排查OpenSSH的chroot目录权限
  • IO练习题
  • AI赋能少儿英语,开心口袋“AI说AI读”小程序正式上线
  • MATLAB版自适应步长RK4求解器:带误差控制的ODE数值计算工具