Haskell的Hello世界是1.3 MB

Ste*_*712 1 haskell

我发现Haskell中的Hello World可执行文件是1.3 MB,我感到非常失望.这对我来说真是不可接受.难道我做错了什么?让hello world可执行文件如此庞大有什么借口?是否有合理的方法来减少这种情况?C中的相同内容是8 kb.

main = print "Hello, worlds"
Run Code Online (Sandbox Code Playgroud)

Mat*_*hid 11

你没有说哪个平台或GHC的版本,所以我在这里做一些猜测.

  1. 默认情况下,GHC不会删除调试符号.在Linux上,您可以运行该strip实用程序来删除它们.在任何平台上,您都可以编译以-optl-s在链接期间自动删除调试符号.

  2. 根据到底是哪平台你在和你有什么版本的GHC的,GHC默认为静态链接所有调用哈斯克尔库和Haskell的运行时系统本身(即垃圾收集器,线程调度,事务管理器,I/O manager ...)如果您的平台支持,打开动态链接可能会导致可执行文件大小的显着减少.

也可以看看