【发布时间】:2018-05-10 11:02:13
【问题描述】:
我很失望地发现我在 Haskell 中的 Hello World 可执行文件只有 1.3 mb。这对我来说真的是无法接受的。难道我做错了什么?有什么借口可以让 hello world 可执行文件如此之大?有没有合理的方法来减少这种情况? C 中的相同内容是 8 kb。
main = print "Hello, worlds"
【问题讨论】:
-
嗯,这取决于上下文。我很高兴看到包含运行时支持库和垃圾收集器的 Haskell 二进制文件占用了如此小的空间 (1MB)。看到 C 语言中的“hello world”占用了如此巨大的空间(8KB),我很难过。
-
我也觉得它有点大,但请记住,GHC 静态链接可执行文件中的库,至少在默认情况下是这样。我猜如果 GHC 喜欢动态库,并且如果 RTS 也被移动到外部共享库(就像 libc 一样),那么可执行文件会小得多。根据我的经验,对于更复杂的程序,这不是一个严重的问题。
-
乔恩·珀迪,非常有趣的评论,谢谢。 Chi,我喜欢查看我的可执行文件的汇编输出。我有一种奇怪的恋物癖。
标签: haskell