Go更新執行追蹤套件,CPU執行開銷降至1-2%
· 2024-03-18

Go開發團隊更新追蹤(Trace)套件,不只大幅減少追蹤時CPU開銷,還強化追蹤的可擴展性,同時新增追蹤讀取器API降低追蹤資料存取門檻

Go開發團隊更新執行環境的追蹤(Trace)套件,不僅大幅降低執行追蹤的CPU開銷,還透過定期分割追蹤檔控制追蹤檔案大小,進而增加了追蹤的可擴展性。此外,新的更新還支援持續追蹤功能,並提供追蹤讀取器API,使得追蹤資料更容易共享與存取。

Go的runtime/trace套件是一組工具,目的在於協助開發者進一步理解與排除程式故障,其允許開發者追蹤每個goroutine的活動,並透過go tool trace指令,視覺化並探索追蹤裡的資料。開發者能夠於程式中加入特定的標註,包括任務、區域和日誌,將程式的邏輯流程、效能表現和錯誤處理,與底層諸如程式的執行時機、資源使用和呼叫堆疊等執行細節相關聯,使開發者更能監控和分析程式,解決效能瓶頸等問題。

雖然Go的執行追蹤可提供豐富的資訊,但也存在一些長期問題,像是追蹤成本偏高,會對程式的執行效能造成明顯的影響,因此難以用在生產環境中。追蹤也難以擴展,當追蹤產生的資料量太大,將導致追蹤檔難以分析。

另外,啟動追蹤的時機也不夠明確,開發者往往不清楚何時啟動追蹤,才能確定捕捉到特定的錯誤行為,造成追蹤分析困難。而且因為缺乏解析執行追蹤的公共套件,因此也只有資深的Go開發者有能力進行程式化分析追蹤。

開發團隊開始著手解決這些問題,在之前的Go版本,追蹤在許多應用程式會導致10-20% CPU執行開銷,這使得追蹤被限制在特定的使用情境,而不能像CPU分析那樣持續使用,開發團隊解釋,這是因為在啟動執行追蹤時,執行環境會生成許多事件,這些事件大多數附加了堆疊追蹤,這些堆疊追蹤對於辨識goroutine在執行的任務非常有用,但是成本也很高。

開發團隊指出,追蹤的大部分成本發生在回溯,因此透過最佳化回溯效率,追蹤執行環境的CPU開銷已經大幅降低至1-2%,如此開發者便可以頻繁地使用追蹤來監控和診斷應用程式,且不會對效能產生太大的影響。

另外,在新版本中,追蹤分析變得可擴展。過去追蹤檔的格式和事件的設計講究有效性,但是需要工具來解析和保留整個追蹤狀態,數百MiB的追蹤可能需要數GiB的記憶體來分析,而新的追蹤功能進行了調整,透過定期分割正在生成的追蹤檔,使每一個追蹤檔的大小降低,而由於追蹤檔變小,分析工具便不需要一次性載入龐大的追蹤檔到記憶體中,因此也降低了所需要的記憶體。

之前的追蹤事件,是寫入各自執行緒自己的快取位置,這代表事件的出現並不符合真實順序,而新的方法會在分割追蹤檔時重新同步,因此也讓事件更容易按真實順序重組,減少了分析工具的負擔。整體來說,新的分割機制讓追蹤資料更容易管理且分析,開發者也能更快地找到感興趣的事件,讓效能分析更有效。

Go追蹤現在也支援持續追蹤紀錄(Flight Recording),可讓程式一直保持在追蹤狀態,紀錄近期發生的事,而這項功能也是因為追蹤分割技術的導入,才使得持續追蹤變得可行。而隨著開發團隊重寫追蹤實作,也提供了一個新的追蹤讀取器API,讓開發者更容易存取追蹤資料。

熱門文章
灰度在iGB L!VE 2026展位T70和你相約7月,一起點燃倫敦的熱情!
灰度頭條
菲律賓網絡賭博和加密貨幣仍構成持續的洗錢風險
東南亞資訊
越南在線博彩業政策收緊 催生市場新機遇
東南亞資訊
哈薩克計劃對線上賭場促銷活動進行處罰
合規與政策
印第安納州在線賭場法案在眾議院委員會停滯不前
合規與政策
橫跨全球6個城市,灰度8場派對邀你共看世界盃,重塑高質量社交新場景
灰度頭條
超級PAC籌資4800萬美元:體育博彩勢力加碼
合規與政策
斯里蘭卡博弈產業大轉型,官方:劍指南亞拉斯維加斯
合規與政策
GGC Awards 2026 璀璨科倫坡:致敬 iGaming 行業的領航者與創新力量
灰度頭條
印度最高法院受理公益訴訟,要求全國禁封「偽裝」成社交遊戲的賭博平台
合規與政策
巴西擬將博弈稅率提高至24% 稅收將用於社保與醫療領域
合規與政策
英國確認各垂直行業的賭博稅稅率
合規與政策
新澤西州7月博彩收入創6.06億美元新高,頒布禁令
合規與政策
越南博彩管控逐步放寬,惟本土需求仍顯乏力
東南亞資訊
JILI 宣佈與全球板球傳奇 AB de Villiers(ABD)達成重磅戰略合作
體育遊戲
首頁
遊戲
合作
發現
我的