把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的損失就有點大了。
把音訊檔案壓縮變小的方法
有時候乙個音訊檔案比較大,傳輸以及使用很不方便,需要把檔案壓縮變小,這裡就提供一種壓縮的工具。注意,壓縮音訊檔案是以降低位元速率為代價的,可能會影響音訊效果 位元速率計算公式 基本的演算法是 位元速率 kbps 檔案大小 位元組 x8 時間 秒 1000 音訊檔案專用演算法 位元率 kbps 量化取...
把Go程式發布成windows服務
近日正在考慮用go程式做乙個報表計算服務,在g 上看到有老外介紹把go打包的exe發布成window service,遂把該文章翻譯過來,一同分享。大致方法 b 1.b 第一步當然是先將你的go程式打包成exe,比如go web server。b 2.b 使用nssm發布windows服務,命令 n...
Go簡單的結束程式
當你寫的go程式在退出時做一些操作就需要捕捉訊號後進行業務處理再關閉程式 但是當程式主線不止一條時,邏輯會些許複雜。一般捕捉訊號的函式只有乙個,但是退出的地方卻多了起來,退出方案必須具有拓展性與簡單性才能讓自己不再糾結於此。一般資料都時在講捕捉訊號與退出,而例子往往只考慮單個主線退出,當你寫個命令列...