CPU火焰图初探-优化0.1%
我们非常重视原创文章,为尊重知识产权并避免潜在的版权问题,我们在此提供文章的摘要供您初步了解。如果您想要查阅更为详尽的内容,访问作者的公众号页面获取完整文章。
文章摘要
本文讨论作者在使用CPU火焰图工具async-profiler分析性能时的经历。由于Intellij自带的火焰图插件无法使用,作者选择了async-profiler作为替代工具,并在测试随机数性能时发现了一个可以优化的性能点。通过优化,CPU使用率降低了0.1%,取得了初步成果。
async-profiler工具
作者建议读者可以上网查找async-profiler的安装和使用教程,特别是其Github仓库的Wiki页面,因为文中并未详细介绍该工具。
Case代码
作者提供了测试随机数性能的Case代码,其中包含了动态QPS模型的使用示例。
优化过程
在分析main线程的火焰图后,作者发现com.okcoin.hickwall.presses.funtester.frame.execute.ThreadPoolUtil#executeTask方法中的getSecond方法消耗了较多CPU资源。该方法原本用于定时输出QPS和线程信息,作者通过替换为时间戳的方式优化了代码,从而将CPU使用率从0.53%降低到0.44%。尽管整体优化效果不大,仅为0.1%,但作者认为仍有收获。此外,作者指出火焰图中大部分CPU占用由sleep方法引起,意识到可能之前对随机数性能问题的探索结论不够明显,计划重新设计用例进行测试。
FunTester原创专题推荐
文末,作者推荐了FunTester的多个专题,包括接口功能测试、性能测试、Groovy专题,以及其他与测试相关的资源,如Java、Groovy、Go、Python专题,单元测试和白盒测试,以及社群、理论、视频内容和案例分享。
想要了解更多内容?