第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

Go如何如此迅速地編譯?

Go如何如此迅速地編譯?

Go
臨摹微笑 2021-04-05 12:14:14
我已經(jīng)在Go網(wǎng)站上搜索了Google,但在Go的非凡構(gòu)建時(shí)間上似乎找不到解釋。它們是語言功能(或缺少語言功能),高度優(yōu)化的編譯器或其他產(chǎn)品的產(chǎn)物嗎?我不是要推廣Go;我只是好奇。
查看完整描述

3 回答

?
精慕HU

TA貢獻(xiàn)1845條經(jīng)驗(yàn) 獲得超8個(gè)贊

依賴性分析。

在轉(zhuǎn)到FAQ用于包含下面的句子:

Go提供了一種用于軟件構(gòu)建的模型,該模型使依賴關(guān)系分析變得容易,并避免了C樣式包含文件和庫的大量開銷。

雖然該短語不再是FAQ中的內(nèi)容,但是在Google的Go討論中對(duì)該主題進(jìn)行了詳細(xì)說明,該演講比較了C / C ++和Go的依賴關(guān)系分析方法。

這是快速編譯的主要原因。這是設(shè)計(jì)使然。


查看完整回答
反對(duì) 回復(fù) 2021-04-26
?
人到中年有點(diǎn)甜

TA貢獻(xiàn)1895條經(jīng)驗(yàn) 獲得超7個(gè)贊

我認(rèn)為不是Go編譯器很快,而是其他編譯器很。

C和C ++編譯器必須解析大量的標(biāo)頭-例如,編譯C ++“ hello world”需要編譯18k行代碼,這幾乎是源代碼的一半!

$ cpp hello.cpp | wc  
18364   40513  433334

Java和C#編譯器在VM中運(yùn)行,這意味著操作系統(tǒng)必須先加載整個(gè)VM,然后才能對(duì)其進(jìn)行編譯,然后再將它們從字節(jié)碼JIT編譯為本機(jī)代碼,所有這些都需要花費(fèi)一些時(shí)間。

編譯速度取決于幾個(gè)因素。

某些語言旨在快速編譯。例如,Pascal被設(shè)計(jì)為使用單遍編譯器進(jìn)行編譯。

編譯器本身也可以優(yōu)化。例如,Turbo Pascal編譯器是用手動(dòng)優(yōu)化的匯編器編寫的,該匯編器與語言設(shè)計(jì)結(jié)合在一起,從而使真正的快速編譯器可以在286類硬件上工作。我認(rèn)為即使是現(xiàn)在,現(xiàn)代的Pascal編譯器(例如FreePascal)也比Go編譯器快。


查看完整回答
反對(duì) 回復(fù) 2021-04-26
?
慕的地6264312

TA貢獻(xiàn)1817條經(jīng)驗(yàn) 獲得超6個(gè)贊

Go編譯器比大多數(shù)C / C ++編譯器快得多的原因有很多:

  • 主要原因:大多數(shù)C / C ++編譯器的設(shè)計(jì)都非常差(從編譯速度的角度來看)。同樣,從編譯速度的角度來看,C / C ++生態(tài)系統(tǒng)的某些部分(例如,程序員在其中編寫代碼的編輯器)在設(shè)計(jì)時(shí)并未考慮編譯速度。

  • 主要原因:快速的編譯速度是Go編譯器和Go語言的有意識(shí)選擇

  • Go編譯器比C / C ++編譯器具有更簡單的優(yōu)化器

  • 與C ++不同,Go沒有模板,也沒有內(nèi)聯(lián)函數(shù)。這意味著Go不需要執(zhí)行任何模板或函數(shù)實(shí)例化。

  • Go編譯器會(huì)更快地生成低級(jí)匯編代碼,而優(yōu)化器將對(duì)匯編代碼進(jìn)行處理,而在典型的C / C ++編譯器中,優(yōu)化將對(duì)原始源代碼的內(nèi)部表示進(jìn)行傳遞。C / C ++編譯器的額外開銷來自需要生成內(nèi)部表示的事實(shí)。

  • Go程序的最終鏈接(5l / 6l / 8l)可能比鏈接C / C ++程序要慢,因?yàn)镚o編譯器正在遍歷所有使用的匯編代碼,也許它還在執(zhí)行C / C ++的其他額外操作鏈接器沒有做

  • 一些C / C ++編譯器(GCC)生成文本形式的指令(傳遞給匯編器),而Go編譯器生成二進(jìn)制形式的指令。為了將文本轉(zhuǎn)換為二進(jìn)制,需要做一些額外的工作(但不多)。

  • Go編譯器僅針對(duì)少量CPU體系結(jié)構(gòu),而GCC編譯器針對(duì)大量CPU

  • 旨在提高編譯速度的編譯器(例如Jikes)速度很快。在2GHz CPU上,Jikes每秒可以編譯20000+行Java代碼(并且增量編譯模式效率更高)。


查看完整回答
反對(duì) 回復(fù) 2021-04-26
  • 3 回答
  • 0 關(guān)注
  • 378 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)