亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Google的Golang是解釋器還是編譯器?

Google的Golang是解釋器還是編譯器?

Go
qq_遁去的一_1 2021-05-15 13:14:45
我一直在研究Golang,并且發現它具有編譯器。但是它是編譯進入匯編級代碼還是只是將其轉換為BYTECODES然后調用該編譯?我的意思是,即使在PHP中,我們也能夠將其轉換為BYTECODES并具有更快的性能。Golang是系統級編程和編譯的替代品嗎?
查看完整描述

2 回答

?
慕容708150

TA貢獻1831條經驗 獲得超4個贊

這實際上是一個編譯器(實際上它嵌入了2個編譯器),并且使完全可執行的可執行文件成為可能。您不需要任何補充庫或任何類型的運行時即可在服務器上執行它。您只需要針對目標計算機體系結構對其進行編譯。

文檔中

有兩個官方的Go編譯器工具鏈。本文檔重點介紹gc Go編譯器和工具(6g,8g等)。有關如何使用gccgo(使用GCC后端的更傳統的編譯器)的信息,請參閱設置和使用gccgo。

Go編譯器支持三個指令集。不同體系結構的編譯器質量存在重要差異。

amd64(aka x86-64); 6g,6l,6c,6a 一個成熟的實現。編譯器具有有效的優化器(注冊器),并且可以生成良好的代碼(盡管有時gccgo可以做得更好)。

386(aka x86或x86-32); 8g,8l,8c,8a 類似于amd64端口。

手臂(又名ARM); 5g,5l,5c,5a 僅支持Linux二進制文件。沒有其他端口廣泛使用,因此沒有經過全面測試。

除了底層操作系統接口代碼之類的內容外,所有端口的運行時支持都是相同的,包括標記清除垃圾收集器,有效的數組和字符串切片以及對有效的goroutine(例如堆棧)的支持。按需增長和收縮。

編譯器可以針對FreeBSD,Linux,NetBSD,OpenBSD,OS X(Darwin)和Windows操作系統。下面的環境變量討論中列出了支持的全套組合。

在服務器上,通常將目標amd64平臺作為目標。

請注意,Go以編譯速度而聞名。在部署服務器程序時,我不會在開發計算機上針對不同的平臺進行構建:我會部署源代碼,并直接在生產服務器上進行編譯。從Go1開始,我從來沒有在一個平臺上編譯過代碼,而沒有在另一個平臺上編譯過代碼。

在Windows上,我可以exe在開發計算機上exe進行安裝,并將其發送給從未安裝過Go相關內容的人們都沒有問題。


查看完整回答
反對 回復 2021-05-17
  • 2 回答
  • 0 關注
  • 293 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號