Dieses Tool ist in Arbeit. Es ist noch nicht vollständig produktionsbereit, aber Sie können es ausprobieren.
Perfguard ist ein statischer Analysator mit Schwerpunkt auf der Leistung.
Es unterstützt zwei Run -Modi:
perfguard lint findet potenzielle Probleme, arbeitet wie eine traditionelle statische Analyseperfguard optimize verwendet CPU -Profile, um die Analysegenauigkeit zu verbessernPerfguard Schlüsselmerkmale:
perfguard optimize--fix Argument (QuickFixes)(*) Es wird nicht versucht, Analyseziele auf einmal in den Speicher zu laden.
Hier sind einige Beispiele dafür, was es für Sie tun kann:
Installieren Sie eine perfguard -Binärin unter Ihrem $(go env GOPATH)/bin :
$ go install -v github.com/quasilyte/go-perfguard/cmd/perfguard@latestEs wird empfohlen, CPU -Profile für realistische Workflows zu sammeln.
Für eine kurzlebige CLI-App könnte es sich um einen vollständigen Lauf handeln. Für eine langlebige App möchten Sie möglicherweise die Profilerstellung für eine Minute oder länger einschalten und sie dann in einer Datei speichern.
Profile, die von Benchmarks erhalten werden, sind nicht repräsentativ und können zu suboptimalen Ergebnissen führen.
Hotspots im Profil können an drei Hauptplätzen erscheinen:
Die Optimierung Ihres eigenen Codes ist unkompliziert. Führen Sie Perfguard auf der Wurzel Ihres Projekts aus:
$ perfguard optimize --heatmap cpu.out ./... Dies schlägt nur fest, dass Korrekturen in der Kategorie (2) festgelegt werden.
Um den Code aus (3) zu optimieren, haben wir mehrere Möglichkeiten.
Die erste Option ist vorzuziehen. Sie können das gleiche CPU -Profil verwenden, um die Bibliothek zu optimieren. Führen Sie den Perfguard auf dem Quellcode -Root der Bibliothek aus, genau wie bei Ihrer Anwendung.
Die zweite Option kann für die Fälle funktionieren, wenn Sie eine optimierte Binärdatum bereitstellen möchten, während Sie keine Möglichkeit haben, Abhängigkeiten mithilfe der ersten Option zu beheben. Folgen Sie folgenden Schritten:
# 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 Anschließend können Sie die Änderungen in den ./vendor zurückversetzen oder sie entfernen, wenn Sie nicht das Verkaufsbereich verwenden.