把Go程序变小的办法

把Go程序变小的办法是: 
go build -ldflags “-s -w” (go install类似)

-s去掉符号表(然后panic时候的stack trace就没有任何文件名/行号信息了, 
这个等价于普通C/C++程序被strip的效果), 
-w去掉DWARF调试信息,得到的程序就不能用gdb调试了。

比如,server.go是一个简单的http server,用了net/http包。 
$ go build server.go 
$ ls -l server 
-rwxr-xr-x 1 minux staff 4507004 2012-10-25 14:16 server 
$ go build -ldflags “-s -w” server.go 
$ ls -l server 
-rwxr-xr-x 1 minux staff 2839932 2012-10-25 14:16 server

-s和-w也可以分开使用,一般来说如果不打算用gdb调试,-w基本没啥损失。 
-s的损失就有点大了。

posted @ 2014-05-26 16:13  ghost&240  阅读(331)  评论(0编辑  收藏  举报