扫码阅读
手机扫码阅读

CPU火焰图初探-优化0.1%

154 2024-04-13
文章摘要

文章摘要

本文讨论作者在使用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专题,单元测试和白盒测试,以及社群、理论、视频内容和案例分享。

想要了解更多,点击 查看原文