可执行文件的大小可以优化吗?
Can executable size be optimized?
我已经在 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 中创建可执行文件时遗漏了一些东西(可能是一些优化设置)。如何让这个可执行文件变小?
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 的可执行文件。
我已经在 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 中创建可执行文件时遗漏了一些东西(可能是一些优化设置)。如何让这个可执行文件变小?
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 的可执行文件。