Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scheme 可以优化可执行文件的大小吗?_Scheme_Racket_Executable_Chicken Scheme - Fatal编程技术网

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替换

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

它创建了一个3.6MB的tgz和一个6.2MB的可执行文件。这对于这个最简单的程序来说似乎非常大。由Chicken Scheme使用相同代码创建的可执行文件
(打印“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