开发者
我要评分
获取效率
正确性
完整性
易理解
在线提单
论坛求助

性能瓶颈优化

操作步骤

  1. 修改源码文件,如图1所示,将修改后的源码文件重命名为hotspot_io_after.cc,并上传到“/home/demo”目录。
    修改后的源码使用mmap的方式进行重构,以减少系统调用次数,从而实现性能优化。
    图1 修改后的源码文件
  2. 编译源码文件。
    g++ -g -O2 -std=c++17 /home/demo/hotspot_io_after.cc -o /home/demo/hotspot_io_after
  3. 切换至鲲鹏性能定界工具安装目录,xxx指版本号,请根据实际情况替换。
    cd /home/ksys-x.x.x-Linux-aarch64
  4. 采集优化后的应用的性能数据。
    ./ksys collect -d 10 /home/demo/hotspot_io_after /home/demo/tmp.txt
    图2 热点统计数据

    在热点统计数据部分,发现process_buffer功能函数比例相对提升,从之前的51%提升到72%。与此同时内核态相关的copy_page_mc函数的占比下降。整体内核态的占比从优化前的49%+下降到28%+,应用计算性能得到提升。

  5. 切换至demo目录,查看优化后应用的运行时间。
    1. 切换至demo目录。
      cd /home/demo
    2. 查看优化后应用的运行时间。
      time ./hotspot_io_after tmp.txt

      执行命令后,发现应用中读取数据时间从4.1秒缩短到2秒,优化后的应用计算性能得到提升。

      图3 运行时间