Go 自帶的工具集主要使用腳本和 Go 語言自身編寫的,目前版本的 Go 實現了以下三個工具:
go install
是安裝 Go 包的工具,類似 Ruby 中的 rubygems。主要用於安裝非標准庫的包文件,將源代碼編譯成對象文件。go fix
用於將你的 Go 代碼從舊的發行版遷移到最新的發行版,它主要負責簡單的、重復的、枯燥無味的修改工作,如果像 API 等復雜的函數修改,工具則會給出文件名和代碼行數的提示以便讓開發人員快速定位並升級代碼。Go 開發團隊一般也使用這個工具升級 Go 內置工具以及 谷歌內部項目的代碼。go fix
之所以能夠正常工作是因為 Go 在標准庫就提供生成抽象語法樹和通過抽象語法樹對代碼進行還原的功能。該工具會嘗試更新當前目錄下的所有 Go 源文件,並在完成代碼更新后在控制台輸出相關的文件名稱。go test
是一個輕量級的單元測試框架(第 13 章)。
摘自:https://github.com/Unknwon/the-way-to-go_ZH_CN/blob/master/eBook/03.7.md
go性能的評測結果
有一些評測結果:
-
比較 Go 和 Python 在簡單的 web 服務器方面的性能,單位為傳輸量每秒:
原生的 Go http 包要比 web.py 快 7 至 8 倍,如果使用 web.go 框架則稍微差點,比 web.py 快 6 至 7 倍。在 Python 中被廣泛使用的 tornado 異步服務器和框架在 web 環境下要比 web.py 快很多,Go 大概只比它快 1.2 至 1.5 倍(詳見引用 26)。
-
Go 和 Python 在一般開發的平均水平測試中,Go 要比 Python 3 快 25 倍左右,少占用三分之二的內存,但比 Python 大概多寫一倍的代碼(詳見引用 27)。
-
根據 Robert Hundt(2011 年 6 月,詳見引用 28)的文章對 C++、Java、Go 和 Scala,以及 Go 開發團隊的反應(詳見引用 29),可以得出以下結論:
- Go 和 Scala 之間具有更多的可比性(都使用更少的代碼),而 C++ 和 Java 都使用非常冗長的代碼。
- Go 的編譯速度要比絕大多數語言都要快,比 Java 和 C++ 快 5 至 6 倍,比 Scala 快 10 倍。
- Go 的二進制文件體積是最大的(每個可執行文件都包含 runtime)。
- 在最理想的情況下,Go 能夠和 C++ 一樣快,比 Scala 快 2 至 3 倍,比 Java 快 5 至 10 倍。
- Go 在內存管理方面也可以和 C++ 相媲美,幾乎只需要 Scala 所使用的一半,比 Java 少 4 倍左右。
摘自:https://github.com/Unknwon/the-way-to-go_ZH_CN/blob/master/eBook/03.8.md