可执行大小可以优化吗?

时间:2017-04-09 13:59:45

标签: scheme racket executable chicken-scheme

我在Racket中创建了以下代码的可执行文件(选择Racket而不是GRacket):

#lang racket
(print "Hello World!")

它创建了一个3.6 MB的tgz,可执行文件为6.2 MB。对于这个最简单的程序来说,这似乎非常大。由Chicken Scheme创建的具有相同代码(print "Hello World!")的可执行文件仅为16984字节(16.6 kb)。

我认为在Racket中创建可执行文件时我遗漏了一些东西(可能是一些优化设置)。如何将这个可执行文件缩小?

1 个答案:

答案 0 :(得分:5)

raco exe的文档建议使用尽可能小的基本语言。在这种情况下,请将#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的可执行文件。