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供应商或将其删除。