在Go中怎么轉(zhuǎn)儲(chǔ)GOSSAFUNC圖

這篇文章主要介紹“在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

  1. 如果你沒(méi)有從源碼構(gòu)建 Go,那么 runtime 軟件包的路徑可能是只讀的,并且可能會(huì)收到錯(cuò)誤消息。請(qǐng)不要使用 sudo 來(lái)解決此問(wèn)題。

  2. 請(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)

成都seo排名網(wǎng)站優(yōu)化