[金山办公]

[FTP 客户端]

性能测试报告 版本号: V1.0 2022年 8月 9 日 # 1 概述 ## 1.1 编写目的 编写该测试总结报告主要有以下几个目的:
  1. 熟练对性能测试分析工具的使用,方便对后续代码的优化
  2. 通过对测试结果的分析,对系统整体质量有所了解
  3. 根据分析报告中得出的结论进行性能优化

1.2 阅读对象

  1. 主要读者:开发
  2. 其他读者:无

1.3范围

本次测试是针对整个SVG矢量图形编辑器的性能测试,包括图形的绘制、编辑、增加、删除、复制、保存、解析等。

2 测试工具

测试工具有两个,分别是VS性能探查器以及VS自带的性能检测工具。其中VS性能检测器从以下几个方面检测:1整个报告概要说明。2.调用树:以树形表格的方式展开函数之间的关系。3.模块:分析调用的不同的程序模块。4.调用方/被调用方:以数值显示的调用与被调用的关系。5.函数:以数值显示的各个函数的执行时间和执行次数统计值。6.进程:显示当前进程的信息。7.函数详细信息:以图表的方式形象地显示调用函数-当前函数-被调用子函数之间的关系和时间比例。下图是VS性能检测器的启动页面:

KSvgEditor performance test report - 图1

VS自带的诊断工具主要用到的分析数据就是的CPU使用率,通过选取合适时间段的CPU使用情况,找出CPU占用比较多的函数进行瓶颈突破。

3 测试结果及分析

一:VS检测器结果

1.1 整个报告概要说明

KSvgEditor performance test report - 图2

绘制该图形期间,cpu占用率如图:

KSvgEditor performance test report - 图3

可以看出,在运行完所有命令之后,除了少数几处突出之外,CPU使用率曲线较为平滑,对其中几个有轻微波动的时间端进行了截取,结果如下所示:

KSvgEditor performance test report - 图4

可以看到这一段是colorbox命令,功能是将对已经绘制的图形进行重新着色。

查看最热的函数(QColorDialog())详情信息,其主要功能为弹出颜色选择框,如下所示:

KSvgEditor performance test report - 图5

当前函数占用时间最多的是paintEvent(),该函数的作用是主画布绘画事件,进行图形绘制。

KSvgEditor performance test report - 图6

可以看出这一段是SaveFile命令,功能是保存已经绘制的图形。

KSvgEditor performance test report - 图7

占比最高的函数是图形绘制。

1.2 调用树:以树形表格的方式展开函数之间的关系

KSvgEditor performance test report - 图8

从上图可以看到占用时间最多的是SaveSvg(),保存图形相当耗时及cpu占用率大。

1.3 模块:分析调用的不同的程序模块

KSvgEditor performance test report - 图9

以上是整个测试过程中,各个函数的调用次数,其中调用次数较多的是Qt5Widget.dll中的getSaveFileName(),和KSvgEditor.exe中的saveSvg()。

1.4 调用方/被调用方:以数值显示的调用与被调用的关系

KSvgEditor performance test report - 图10

1.5 函数:以数值显示的各个函数的执行时间和执行次数统计值

KSvgEditor performance test report - 图11

大部分时间都是被Qt文件保存和弹出颜色选择对话框占用。

1.6 进程:显示当前进程的信息

KSvgEditor performance test report - 图12

1.7 函数详细信息

该功能是以图表的方式形象地显示调用函数-当前函数-被调用子函数之间的关系和时间比例。

在main()函数中,大部分时间都在执行KColorBox()函数。

KSvgEditor performance test report - 图13

二:VS检测器结果

VS的诊断工具:这里主要用到的分析数据就是CPU的使用率,通过选取合适时间段的CPU使用情况,找出CPU占用比较多的函数进行瓶颈突破。下图是点击保存命令后,加入断点后的CPU使用率图示,对内核及文件系统的调用占用CPU最多。

KSvgEditor performance test report - 图14

KSvgEditor performance test report - 图15