发布于: Oct 10, 2021

若要验证应用程序是否正在分析,请返回到 CodeGuru 控制台。此时您应该会看到分析组从”非活动”状态 变为”挂起”状态,然后变为”分析”状态后结束,最终状态显示如下图:

当分析组显示状态为“分析”时,就可以通过可视化的方式查看应用程序的运行时数据了。从 CodeGuru 分析代理将数据提交到分许组大约需要 5 分钟,大约 10 分钟后,您可以看到火焰图可视化效果。在 1 小时左右,您就获得第一份性能建议报告(如上图最后一列显示建议5)。 大约10分钟后点击 DemoApplication-WithIssues 分析组展示类似如下图:

1小时左右可以查看建议报告类似如下图:

上图是其中的一条优化建议: 发现代码中的 debug 的日志输出对应用性能明显(占用 Runnalbe 线程时间的6.67%,同时根据经验应该小于1%),优化建议是按需开启 debug 日志,这个通过机器学习发现的问题和给出的建议与我们实际的经验来看是吻合的。 如果要再次运行此项目,测试无问题场景,请重复前面的步骤,并进行以下更改:

· 根据设置设置导出变量。正如我们前面在运行演示应用 WithIssues 时所讨论的,这些环境变量特定于运行演示应用,并非必须的设置

export DEMO_APP_SQS_URL=https://sqs.YOUR-AWS-REGION.queue.amazonaws.com/YOUR-ACCOUNT-ID/DemoApplicationQueueexport DEMO_APP_BUCKET_NAME=demo-application-test-bucket-1092734-YOUR-BUCKET-NAMEexport AWS_CODEGURU_TARGET_REGION=YOUR-AWS-REGION

·   根据如下代码执行命令(注意这里的环境变量已设置为无问题场景 DemoApplication-WithoutIssues ),同时启动参数为 without-issues

export AWS_CODEGURU_PROFILER_GROUP_NAME=DemoApplication-WithoutIssues
mvn clean install ## This command will generate the DemoApplication-1.0-jar-with-dependencies.jar
java -javaagent:codeguru-profiler-java-agent-standalone-1.0.0.jar \
  -jar target/DemoApplication-1.0-jar-with-dependencies.jar without-issues

· 有关 CodeGuru Profiler 中的可视化功能,详情参阅 “Optimizing application performance with Amazon CodeGuru Profiler“

为避免后续继续产生费用,请删除您为此项目创建的相关资源:

  • 删除 分析组 DemoApplication-WithIssues/ DemoApplication-WithoutIssues
  • 删除 SQS 队列 和 S3
  • 删除 EC2 实例(如果您有创建)

我们很高兴能够帮助您使用 CodeGuru Profiler 已更快、更轻松地方式将性能优化能力集成到您的应用程序中。在近期的文章中,我们回顾并学习了如何使用 CodeGuru Profiler 的两个最近的增强功能:基于资源的权限设置  使用 -javaagent 开关启动探查器代理,而无需修改应用程序的代码。 CodeGuru Profiler Amazon CodeGuru 的一部分,这是一种基于机器学习的服务,可执行自动代码审查和应用程序性能建议。它使用 Amazon APISDK 和各种库在代码中查找问题,并发现与性能方面最佳实践的偏差,以便识别问题,并提出修复的具体建议。CodeGuru 由 机器学习功能、最佳实践和从数百万代码审查和数千个应用程序中吸取的经验教训提供支持,同时它也在包括开源项目和亚马逊内部都有应用。 我们希望您通过本文可以更简单,更快速的将 CodeGuru Profiler 应用到您的项目中。

相关文章