這篇文章主要介紹“在Go中怎么轉(zhuǎn)儲(chǔ)GOSSAFUNC圖”,在日常操作中,相信很多人在在Go中怎么轉(zhuǎn)儲(chǔ)GOSSAFUNC圖問(wèn)題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”在Go中怎么轉(zhuǎn)儲(chǔ)GOSSAFUNC圖”的疑惑有所幫助!接下來(lái),請(qǐng)跟著小編一起來(lái)學(xué)習(xí)吧!
網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)!專注于網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開(kāi)發(fā)、微信小程序開(kāi)發(fā)、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了覃塘免費(fèi)建站歡迎大家使用!
Go 編譯器的 SSA 后端包含一種工具,可以生成編譯階段的 HTML 調(diào)試輸出。這篇文章介紹了如何為函數(shù)和方法打印 SSA 輸出。
讓我們從一個(gè)包含函數(shù)、值方法和指針?lè)椒ǖ氖纠绦蜷_(kāi)始:
package main import ( "fmt") type Numbers struct { vals []int} func (n *Numbers) Add(v int) { n.vals = append(n.vals, v)} func (n Numbers) Average() float64 { sum := 0.0 for _, num := range n.vals { sum += float64(num) } return sum / float64(len(n.vals))} func main() { var numbers Numbers numbers.Add(200) numbers.Add(43) numbers.Add(-6) fmt.Println(numbers.Average())}
通過(guò) GOSSAFUNC
環(huán)境變量控制 SSA 調(diào)試輸出。此變量含有要轉(zhuǎn)儲(chǔ)的函數(shù)的名稱。這不是函數(shù)的完全限定名。對(duì)于上面的 func main
,函數(shù)名稱為 main
而不是 main.main
。
% env GOSSAFUNC=main go buildruntimedumped SSA to ../../go/src/runtime/ssa.htmltdumped SSA to ./ssa.html
在這個(gè)例子中,GOSSAFUNC=main
同時(shí)匹配了 main.main
和一個(gè)名為 runtime.main
的函數(shù)。[1]這有點(diǎn)不走運(yùn),但是實(shí)際上可能沒(méi)什么大不了的,因?yàn)槿绻阋獙?duì)代碼進(jìn)行性能調(diào)整,它就不會(huì)出現(xiàn)在 func main
中的巨大的意大利面塊中。
你的代碼更有可能在方法中,你可能已經(jīng)看到這篇文章,并尋找能夠轉(zhuǎn)儲(chǔ)方法的 SSA 輸出。
要為指針?lè)椒?nbsp;func (n *Numbers) Add
打印 SSA 調(diào)試,等效函數(shù)名為 (*Numbers).Add
:[2]
% env "GOSSAFUNC=(*Numbers).Add" go buildtdumped SSA to ./ssa.html
要為值方法 func (n Numbers) Average
打印 SSA 調(diào)試,等效函數(shù)名為 (*Numbers).Average
,即使這是一個(gè)值方法:
% env "GOSSAFUNC=(*Numbers).Average" go buildtdumped SSA to ./ssa.html
如果你沒(méi)有從源碼構(gòu)建 Go,那么 runtime
軟件包的路徑可能是只讀的,并且可能會(huì)收到錯(cuò)誤消息。請(qǐng)不要使用 sudo
來(lái)解決此問(wèn)題。
請(qǐng)注意 shell 引用 。
到此,關(guān)于“在Go中怎么轉(zhuǎn)儲(chǔ)GOSSAFUNC圖”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)?lái)更多實(shí)用的文章!
當(dāng)前文章:在Go中怎么轉(zhuǎn)儲(chǔ)GOSSAFUNC圖
分享地址:http://bm7419.com/article44/gosjee.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信公眾號(hào)、域名注冊(cè)、網(wǎng)站營(yíng)銷、微信小程序、外貿(mào)網(wǎng)站建設(shè)、企業(yè)網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)