[金山办公]
[文件监控器]
性能测试报告 版本号: V1.0 2022年 8月 19 日 # 1 概述 ## 1.1 编写目的 编写该测试总结报告主要有以下几个目的:- 熟练对性能测试分析工具的使用,方便对后续代码的优化
- 通过对测试结果的分析,对系统整体质量有所了解
- 根据分析报告中得出的结论进行性能优化
1.2 阅读对象
主要读者:开发
其他读者:无
1.3范围
本次测试是针对整个文件监控器的性能测试,包括选取文件夹路径、设置过滤条件、设置监控内容、开始监控、最小化界面、最小化下消息提示及忽略消息、最小化放大、停止监控、查询监控日志内容、保存监控日志、清除日志、退出程序。
2 测试工具
测试工具有两个,分别是VS性能探查器以及VS自带的性能检测工具。其中VS性能检测器从以下几个方面检测:1整个报告概要说明。2.调用树:以树形表格的方式展开函数之间的关系。3.模块:分析调用的不同的程序模块。4.调用方/被调用方:以数值显示的调用与被调用的关系。5.函数:以数值显示的各个函数的执行时间和执行次数统计值。6.进程:显示当前进程的信息。7.函数详细信息:以图表的方式形象地显示调用函数-当前函数-被调用子函数之间的关系和时间比例。下图是VS性能检测器的启动页面:
VS自带的诊断工具主要用到的分析数据就是的CPU使用率,通过选取合适时间段的CPU使用情况,找出CPU占用比较多的函数进行瓶颈突破。
3 测试结果及分析
一:VS检测器结果
1.1 整个报告概要说明
性能探测器运行期间的整个测试流程如下:
选取文件夹路径、设置过滤条件、设置监控内容、开始监控、最小化界面、最小化下消息提示及忽略消息、最小化放大、停止监控、查询监控日志内容、保存监控日志、清除日志、退出程序。
可以看出,在运行完所有命令之后,除了少数几处突出之外,CPU使用率曲线较为平滑,对其中几个有轻微波动的时间端进行了截取,结果如下所示:
可以看到这一段是程序模型加载,tableview占比最高,其为数据库初始化及QTableview模块。
查看最热的函数(QTableview)详情信息,其主要功能为弹出颜色选择框,如下所示:
当前函数占用时间最多的是函数体构建,调用堆栈的底部。
可以看出这一段是QFileDialog命令,功能是选取监控文件夹目录。
占比最高的函数是弹出文件选择框。
当前时间段占比最高的函数是ReadDirectoryChangesw(),功能是监控文件。
当前时间段占比最高的函数是全局数据类,设置监控开始与停止的flag。
当前时间段占比最高的函数是保存数据函数,主要功能是弹出保存文件对话框,并保存数据。
当前时间段占比最高为弹出退出对话框,选择是最小化还是退出软件。
1.2 调用树:以树形表格的方式展开函数之间的关系
从上图可以看到占用时间最多的是KselectBar()、kcheckbar( ) 和Kfilemonitor(),功能为读取过滤条件及调用监控软件。
1.3 模块:分析调用的不同的程序模块
以上是整个测试过程中,各个函数的调用次数,其中调用次数较多的是Kfilemonitor.exe中的KselectBar()、kfunctionbar()、kdirectorybar()和Kfilemonitor()。
1.4 调用方/被调用方:以数值显示的调用与被调用的关系
1.5 函数:以数值显示的各个函数的执行时间和执行次数统计值
大部分时间都是被Qt文件保存和弹出颜色选择对话框占用。
1.6 进程:显示当前进程的信息
1.7 函数详细信息
该功能是以图表的方式形象地显示调用函数-当前函数-被调用子函数之间的关系和时间比例。
在main()函数中,大部分时间都在执行KTableView()函数,进行数据实时显示。
二、优化分析
优化程序结构、把数据显示与主函数分开,减少CPU占比。