go perfguard
1.0.0
該工具正在進行中。它尚未完全準備好生產,但是您可以嘗試一下。
Perfguard是GO靜態分析儀,重點是性能。
它支持兩種運行模式:
perfguard lint發現潛在的問題,就像傳統的靜態分析一樣工作perfguard optimize使用CPU配置文件來提高分析精度Perfguard的關鍵功能:
perfguard optimize模式下引導分析--fix參數(QuickFixes)(*)它不會一次嘗試一次將分析目標加載到內存中。
以下是它可以為您做什麼的一些示例:
在您的$(go env GOPATH)/bin下安裝perfguard二進製文件:
$ go install -v github.com/quasilyte/go-perfguard/cmd/perfguard@latest建議您在現實的工作流程上收集CPU配置文件。
對於短暫的CLI應用程序,這可能是一個完整的運行。對於長期生活的應用程序,您可能需要打開分析一分鐘或更長時間,然後將其保存到文件中。
從基準獲得的輪廓不具有代表性,可能導致次優結果。
個人資料中的熱點可能出現在三個主要地方:
優化自己的代碼很簡單。在項目的根源上運行perfunguard:
$ perfguard optimize --heatmap cpu.out ./...這只會建議修復(2)類別。
為了優化(3)中的代碼,我們有幾個選擇。
第一個選項是可取的。您可以使用相同的CPU配置文件來優化庫。就像您對應用程序一樣,在庫源代碼詞根上運行perfguard。
當您想部署優化的二進製文件而沒有使用第一個選項來解決依賴項的方法時,第二個選項可以適用於情況。請按照以下步驟:
# Make dependencies easily available for perfguard.
$ go mod vendor
# Run the analysis over the vendor.
# We use --fix argument to immediately apply the suggested changes.
$ perfguard optimize --heatmap cpu.out --fix ./vendor/...
# Build the optimized binary.
$ go build -o bin/app ./cmd/myapp然後,如果您不使用供應商,則可以將更改恢復為./vendor供應商或將其刪除。