Scheme 可以优化可执行文件的大小吗?
我在Racket中创建了以下代码的可执行文件(选择Racket而不是GRacket): 它创建了一个3.6MB的tgz和一个6.2MB的可执行文件。这对于这个最简单的程序来说似乎非常大。由Chicken Scheme使用相同代码创建的可执行文件Scheme 可以优化可执行文件的大小吗?,scheme,racket,executable,chicken-scheme,Scheme,Racket,Executable,Chicken Scheme,我在Racket中创建了以下代码的可执行文件(选择Racket而不是GRacket): 它创建了一个3.6MB的tgz和一个6.2MB的可执行文件。这对于这个最简单的程序来说似乎非常大。由Chicken Scheme使用相同代码创建的可执行文件(打印“Hello World!”)的大小仅为16984字节(16.6KB) 我想我在Racket中创建可执行文件时遗漏了一些东西(可能是一些优化设置)。如何使此可执行文件变小?的文档建议使用尽可能小的基础语言。在这种情况下,将#lang racket替换
(打印“Hello World!”)
的大小仅为16984字节(16.6KB)
我想我在Racket中创建可执行文件时遗漏了一些东西(可能是一些优化设置)。如何使此可执行文件变小?的文档建议使用尽可能小的基础语言。在这种情况下,将#lang racket
替换为#lang racket/base
。在我的机器(Linux,Racket 6.8)上,将可执行文件大小从6.6M降低到988K
通过首先运行解调器,我能够进一步减小可执行文件的大小。我将程序保存为hello.rkt
并运行
$ raco demod hello.rkt
$ raco exe -o hello hello_rkt_merged.zo
这将生成一个277K的可执行文件。此解决方案过去可以工作,但在较新的Racket 7上不再工作。0@logc谢谢,我在这里创建了一个bug报告:
$ raco demod hello.rkt
$ raco exe -o hello hello_rkt_merged.zo