CN113886251B - 基于热力图的热点函数确定方法 - Google Patents
基于热力图的热点函数确定方法 Download PDFInfo
- Publication number
- CN113886251B CN113886251B CN202111163282.3A CN202111163282A CN113886251B CN 113886251 B CN113886251 B CN 113886251B CN 202111163282 A CN202111163282 A CN 202111163282A CN 113886251 B CN113886251 B CN 113886251B
- Authority
- CN
- China
- Prior art keywords
- function
- thermodynamic diagram
- thermodynamic
- execution time
- diagram
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明提供了一种基于热力图的热点函数确定方法,在执行测试算例得到各函数执行时间和被调用次数后,采用热力图对执行时间和函数被调用次数进行可视化显示;并以函数执行时间热力图为主,以函数调用次数热力图为辅,籍此可以方便地确定出程序中的热点函数,从而为函数优化确定方向。
Description
技术领域
本发明属于软件工程中的软件开发领域,尤其涉及在软件开发中基于热力图的热点函数确定方法。
背景技术
在科学计算类程序中,通常包含复杂的逻辑处理过程和大量的数值处理算法,导致其运行速度受到影响;为了提高程序的运行效率,需要对已经完成的程序代码进行优化,通过对数据存储方式、程序处理逻辑等的优化,达到提高程序运行效率的目的。
针对全部代码进行优化固然是一个好方法,但是耗时费力;如果能快速准确地分析出程序的运算瓶颈代码,然后对其优化,将起到事半功倍的效果。
我们把在整个程序运行中耗费时间最多、执行最频繁的代码,称为热点代码,包含热点代码的函数称为热点函数,针对热点函数的优化,才会达到较好的优化效果。
通过执行典型算例的方式来得到各函数的执行时间和被调用次数,进而确定出热点函数的方法是一种可行的方法,但是存在不直观等问题;热力图是一种以可视化方式反映一个区域的受关注程度、显著程度或者活跃程度的方法,将其用在热点函数的确定过程中,可以直观地显示函数的热度,从而为代码优化提供可视化参考。
为了更好地完成科学计算类程序的代码优化工作,本发明提供了一种基于热力图的热点函数确定方法,在执行测试算例得到各函数执行时间和被调用次数后,对执行时间和函数被调用次数进行可视化显示,以函数执行时间热力图为主,以函数调用次数热力图为辅,籍此可以方便地确定出程序中的热点函数,从而为函数优化确定方向。
发明内容
基于热力图的热点函数确定方法,包括以下步骤:
步骤1,使用编写好的测试算例来执行程序,统计得到各函数的执行时间和被调用次数;
步骤2,将函数执行时间和被调用次数作为热力值,分别绘制函数调用热力图;
步骤3,函数调用热力图中,热力值较大的函数,可以确定为热点函数;
步骤4,对每个热点函数进行详细分析并尝试优化;
步骤5,重新执行上述过程,重新绘制函数调用热力图,对比分析检查优化的效果。
步骤1中,统计得到各函数的被调用时间,包括:
(1)函数的执行时间,指程序运行时,该函数被调用时的全部运行时间的总和;
(2)当一个函数调用其他函数时,其他函数的执行时间不统计在该函数的执行时间内。
步骤2中,所述函数调用热力图,包括:
(1)统计程序的全部函数个数N,计算两个正整数n和m,使n*m<=N;
(2)在平面内正交的两个方向绘制n*m个正方形格子,每个格子唯一代表一个函数,函数的与格子的关系可以随意,也可以按某种关系进行排序;
(3)每个格子的值称为热力值,也称热度值或者热值;
(4)根据格子的热力值,对每个格子赋予不同的颜色,热力值越大则颜色越深,绘制成平面热力图;
(5)可选地,将格子的热力值作为与前两个方向正交的第三个方向的值,构成一个在二维平面上竖立的柱状图,称为立体图热力图;当n为1时,立体热力图退化为平面柱状图;
(6)可选地,立体热力图中柱子的颜色,可以按平面热力图的颜色模式赋值和绘制;
(7)按上述方式绘制的图形,称为函数调用热力图,简称热力图。
所述统计程序的全部函数个数N,计算两个值n和m,包括:
(1)n和m的选择可以遵循接近的原则,如n=m时,n*n>=N;此时热力图为似正方形;
(2)可选地,n和m也可以随意选择,如m或n为1时,此时的平面热力图退化到一个方向,立体热力图退化到两个方向。
步骤2中,所述函数调用热力图,还包括:
(1)一个测试算例运行时会调用多个函数,可以绘制该测试算例的函数覆盖热力图;
(2)多个测试算例运行后的热力图,相当于多个测试算例的热力图相加;
(3)多个热力图相加时,对应函数的热力值直接相加;
(4)多个热力图相加时,每个格子代表的函数必须相同。
步骤2中,所述分别绘制函数调用热力图,包括:
(1)使用函数的执行时间绘制的函数调用热力图,称为执行时间热力图;
(2)使用函数的被调用次数绘制的函数调用热力图,称为调用次数热力图。
步骤2中,所述分别绘制函数调用热力图,还包括:
(1)可选地,函数调用热力图也可以使用其他方式绘制,如将函数序号放在X轴,执行时间或调用次数放在Y轴,将各个XY值点连成直线构成折线图;
(2)此时可将函数执行时间热力图和函数调用次数热力图可以绘制在一张图上,其中,X方向为函数序号,左右侧的Y值分别为执行时间和函数调用次数。
步骤3中,所述热力值较大的函数,可以确定为热点函数,包括:
(1)以函数执行时间热力图为主,若某函数执行时间大于其他函数一个比例时,可以确定为热点函数;
(2)以函数调用次数热力图为辅,若某函数的调用次数大于其他函数一个比例时,且函数执行时间大于一个阈值,可以确定为热点函数;
(3)不宜将全部函数都确定为热点函数,可以考虑设置一个比例阈值;
(4)热点函数的确定是一个综合的过程,不是所有的热点函数的优化尝试都会有效果。
所述步骤4,对每个热点函数进行详细分析并尝试优化,包括:
(1)以函数执行时间热力图为主确定的热点函数;后续优化时可以考虑以内部流程优化为主;
(2)以函数调用次数热力图为辅确定的热点函数,后续优化时可以考虑函数调用时传递参数个数、变量定义位置等优化方式。
所述步骤5,还包括:
(1)针对一个测试算例的热点函数,因为调用情况的不同,在另外的测试算例执行时可能不是热点函数;
(2)热点函数的确定是一个变化的过程,可以确定一个后尝试优化一个;
(3)也可以综合权衡确定热点函数后再分别尝试,即将各测试算例的函数调用热力图叠加,得到全部测试算例的函数调用热力图,然后综合各测试算例从而确定热点函数。
本方法针对科学计算类程序的优化问题,将测试算例执行时的函数执行时间和被调用次数作为热力值并进行可视化显示,从而为寻找热点函数提供了较为直观的方法;在优化完成后,重复执行这个过程可以检验优化的效果;实际应用情况表明该方法具有直观、方便、效果明显的特点。
附图说明
图1为本发明方法的流程示意图。
图2为本发明实施例中测试算例运行后的情况统计图。
图3为本发明实施例中函数调用次数热力图。
图4为本发明实施例中函数执行时间热力图。
图5为本发明实施例中用折线图表示的函数执行时间热力图(左侧纵坐标)和函数调用次数热力图(右侧纵坐标)。
图6为本发明实施例中优化后的函数执行时间热力图。
具体实施方式
为了更加清楚地展示本发明的目的和技术方案,下面将结合具体的实施过程和附图,对本发明的具体实施方式和参数进行更加详细的描述。
基于热力图的热点函数确定方法,如图1所示,包括以下步骤。
步骤1,使用编写好的测试算例来执行程序,统计得到各函数的执行时间和被调用次数。
设待测软件包括5个函数,分别为F1~F5;其中一个测试算例的执行结果如图2所示,时间单位为秒。
步骤2,将测试算例执行时的函数执行时间和被调用次数作为热力值,分别绘制函数调用热力图。
本例中函数调用次数热力图如图3所示,函数执行时间热力图如图4所示;其中行1表示函数F1,F2,F3,行2表示函数F4,F5。
步骤3,以函数执行时间热力图为主,图中热力值较大的函数,可以确定为热点函数。
所述热力值较大,可以设成一个比例阈值,即某函数的热力值大于其他函数的一个比例阈值时,可以确定为热点函数。
根据图4可以发现,函数F5的执行时间是其他函数的10倍以上,若比例阈值设定为10,可以确定为热点函数。
用折线图表示的热力图如图5所示,该图中,左侧的Y值表示执行时间,用正方形表示的折线表示执行时间热力图;右侧的Y值表示调用次数,用菱形表示的折线表示(被)调用次数热力图;从该图中可以直观地得出F5函数是热点函数的结论。
步骤4,以函数调用次数热力图为辅,图中热力值较大的函数,若函数执行时间大于一个阈值,可以确定为热点函数。
综合图3和图4,函数F2的调用次数为100次,远大于其他函数(最大为5);执行时间为50秒;若将调用次数比例阈值设置为10,执行时间阈值设置为30,则函数F2可以确定为热点函数。
同时,也可以设置热点函数的比例阈值,如设置为60%时,除确定函数F2为热点函数外,还可以确定F4为热点函数。
根据图5,也可以直观地得到,除函数F5外,还可以确定函数F2和F4为热点函数。
步骤5,对每个热点函数进行详细分析并尝试优化。
本例中,应该按函数F5,F4,F2的顺序对函数代码进行分析并优化;对函数F5,后续优化时可以考虑以内部流程优化为主;对函数F4和F2,后续优化时可以考虑函数调用时传递参数个数、变量定义位置等优化方式。
步骤6,重新执行上述过程,重新绘制函数调用热力图,对比分析检查优化的效果。
本例中,设优化后的函数执行时间热力图如图6所示,对比图4可以看出,对函数F5和F2的优化有明显效果,同时表明函数F5和F2是热点函数。
最后应说明的是,以上实施例仅用以说明本发明的技术方案,而非对其进行限制;尽管前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解,通过对前述实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换,或者修改各个步骤的顺序,而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围;本发明中各种阈值及范围的取值,也会因为具体情况不同而有所改变。
Claims (7)
1.基于热力图的热点函数确定方法,其特征在于,包括以下步骤:
步骤1,使用测试算例来执行程序,统计得到各函数的执行时间和被调用次数;
步骤2,将函数执行时间和被调用次数作为热力值,分别绘制函数调用热力图;
步骤3,函数调用热力图中,热力值较大的函数,确定为热点函数;
步骤4,对每个热点函数进行详细分析并尝试优化;
步骤5,重新执行上述过程,重新绘制函数调用热力图,对比分析检查优化的效果;
所述步骤2中的函数调用热力图,包括:
(1)统计程序的全部函数个数N,计算两个正整数n和m,使n*m<=N;
(2)在平面内正交的两个方向绘制n*m个正方形格子,每个格子唯一代表一个函数,函数的与格子的关系是随意的,或者按某种关系进行排序;
(3)每个格子的值称为热力值,也称热度值或者热值;
(4)根据格子的热力值,对每个格子赋予不同的颜色,热力值越大则颜色越深,绘制成平面热力图;
(5)将格子的热力值作为与前两个方向正交的第三个方向的值,构成一个在二维平面上竖立的柱状图,称为立体图热力图;当n为1时,立体热力图退化为平面柱状图;
(6)立体热力图中柱子的颜色,按平面热力图的颜色模式赋值和绘制;
(7)按上述方式绘制的图形,称为函数调用热力图,简称热力图;
所述步骤2中的函数调用热力图,还包括:
(1)一个测试算例运行时会调用多个函数,从而绘制该测试算例的函数覆盖热力图;
(2)多个测试算例运行后的热力图,相当于多个测试算例的热力图相加;
(3)多个热力图相加时,对应函数的热力值直接相加;
(4)多个热力图相加时,每个格子代表的函数必须相同。
2.根据权利要求1所述的方法,其特征在于,包括:
(1)n和m的选择遵循接近的原则,如n=m时,n*n>=N;此时热力图近似正方形;
(2)n和m也可随意选择,如m或n为1时,此时平面热力图退化到一个方向,立体热力图退化到两个方向。
3.根据权利要求1所述的方法,其特征在于,步骤2中,所述分别绘制函数调用热力图,包括:
(1)使用函数的执行时间绘制的函数调用热力图,称为执行时间热力图;
(2)使用函数的被调用次数绘制的函数调用热力图,称为调用次数热力图。
4.根据权利要求1所述的方法,其特征在于,步骤2中,所述分别绘制函数调用热力图,还包括:
(1)函数调用热力图也可使用其他方式绘制,如将函数序号放在X轴,执行时间或调用次数放在Y轴,将各个XY值点连成直线构成折线图;
(2)将函数执行时间热力图和函数调用次数热力图绘制在一张图上,其中,X方向为函数序号,左右侧的Y值分别为执行时间和函数调用次数。
5.根据权利要求1所述的方法,其特征在于,步骤3中,所述热力值较大的函数,确定为热点函数,包括:
(1)以函数执行时间热力图为主,若某函数执行时间大于其他函数一个比例时,确定为热点函数;
(2)以函数调用次数热力图为辅,若某函数的调用次数大于其他函数一个比例时,且函数执行时间大于一个阈值,确定为热点函数。
6.根据权利要求1所述的方法,其特征在于,步骤4,所述对每个热点函数进行详细分析并尝试优化,包括:
(1)以函数执行时间热力图为主确定的热点函数;后续优化时考虑内部流程优化为主;
(2)以函数调用次数热力图为辅确定的热点函数,后续优化时考虑函数参数个数、变量定义位置的优化方式。
7.根据权利要求1所述的方法,其特征在于,所述步骤5,包括:
将各测试算例的函数调用热力图叠加,得到全部测试算例的函数调用热力图,然后确定热点函数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111163282.3A CN113886251B (zh) | 2021-09-30 | 2021-09-30 | 基于热力图的热点函数确定方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111163282.3A CN113886251B (zh) | 2021-09-30 | 2021-09-30 | 基于热力图的热点函数确定方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113886251A CN113886251A (zh) | 2022-01-04 |
CN113886251B true CN113886251B (zh) | 2023-04-11 |
Family
ID=79004903
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111163282.3A Active CN113886251B (zh) | 2021-09-30 | 2021-09-30 | 基于热力图的热点函数确定方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113886251B (zh) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104794059A (zh) * | 2015-05-08 | 2015-07-22 | 北京理工大学 | 一种基于函数调用记录的缺陷定位方法及装置 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140368511A1 (en) * | 2013-06-17 | 2014-12-18 | Microsoft Corporation | Interactive visualization for highlighting change in top and relative ranking |
CN106055548B (zh) * | 2016-03-31 | 2018-08-24 | 广西电网有限责任公司电力科学研究院 | 一种电力输变电设备故障数据的可视化分析方法 |
CN106020950B (zh) * | 2016-05-12 | 2019-08-16 | 中国科学院软件研究所 | 基于复杂网络分析的函数调用图关键节点识别和标识方法 |
CN106227671B (zh) * | 2016-08-05 | 2018-10-26 | 网易(杭州)网络有限公司 | 程序运行性能分析方法及装置 |
CN109960507B (zh) * | 2017-12-14 | 2021-06-08 | Oppo广东移动通信有限公司 | 编译优化方法、装置、存储介质、智能终端及服务器 |
CN108132872B (zh) * | 2018-01-10 | 2020-04-03 | 成都信息工程大学 | 基于并行超算网格云平台的grapes系统优化方法 |
CN111104104A (zh) * | 2019-11-04 | 2020-05-05 | 珠海亿智电子科技有限公司 | 函数调用时间和统计结果可视化的方法、装置及可读介质 |
CN111667061B (zh) * | 2020-04-17 | 2023-04-18 | 中国海洋大学 | 一种基于目标众核的深度学习框架移植与优化方法及系统 |
CN111666071B (zh) * | 2020-04-17 | 2021-12-17 | 中国海洋大学 | 一种基于目标众核的对抗网络移植与优化的方法及系统 |
-
2021
- 2021-09-30 CN CN202111163282.3A patent/CN113886251B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104794059A (zh) * | 2015-05-08 | 2015-07-22 | 北京理工大学 | 一种基于函数调用记录的缺陷定位方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN113886251A (zh) | 2022-01-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210304045A1 (en) | Thermal load prediction method and apparatus, readable medium, and electronic device | |
CN110780879B (zh) | 一种基于智能编译技术的决策执行方法、装置、设备及介质 | |
CN112988305A (zh) | 策略流程的处理方法、装置、计算机设备及存储介质 | |
CN112100167A (zh) | 一种生态保护红线数据的质检方法及装置 | |
CN113434396A (zh) | 接口测试方法、装置、设备、存储介质及程序产品 | |
CN113886251B (zh) | 基于热力图的热点函数确定方法 | |
US20190340311A1 (en) | Layered analytical modeling of telecom tower structure and scenario analysis | |
CN116301735B (zh) | 将软件要素组织为软件数据链路的方法、装置及存储介质 | |
CN115523043B (zh) | 一种发动机加权工况点的确定方法、装置、设备及介质 | |
CN114153494B (zh) | 一种基于热力图的热点代码优化方法及装置 | |
CN114679335B (zh) | 电力监控系统网络安全风险评估训练方法、评估方法及设备 | |
CN111487962B (zh) | 一种应用于仓储环境下多机器人路径快速规划方法 | |
CN113986728A (zh) | 基于热力图的集成测试用例最小集分析方法、系统及终端 | |
CN109360215A (zh) | 三维模型的外轮廓查找方法、装置、设备和存储介质 | |
CN113886252B (zh) | 基于热力图的回归测试用例优先级确定方法 | |
CN113778518A (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
CN111931313B (zh) | 超限结构的处理方法、装置、设备和介质 | |
JPWO2019142266A1 (ja) | テストケース生成装置、テストケース生成方法およびテストケース生成プログラム | |
CN115543325B (zh) | 一种图形化编程的界面布局优化方法、系统、终端及介质 | |
CN113986305B (zh) | B/s模型升级的检测方法、装置、设备和存储介质 | |
KR20140044209A (ko) | 선박 성능평가 그래프 자동 생성방법 | |
CN113986727B (zh) | 基于热力图的函数覆盖率检测方法、系统、终端及介质 | |
CN115221211B (zh) | 一种图计算处理方法、装置、电子设备及存储介质 | |
CN113326408B (zh) | 基于时间聚合和位置聚合的数据处理系统 | |
CN115577417A (zh) | 一种基于bim的核电室外工程管线间距检查方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |