飞行员夹克搭配男 图片:gnuplot用于逻辑复杂的高性能软件调试
来源:百度文库 编辑:九乡新闻网 时间:2024/05/04 05:52:01
在高性能软件调试中,常常面临一个困境,如果性能出现波动或不稳定时,无法通过程序日志来确认原因,因为:
(1) 即使日志只是序列化到内存中,可是它依然会影响不少性能。
(2) 即使性能没有受到严重影响,但是,在几十万的性能数据统计中,想要通过普通方式看出问题来,是比较困难的。如果使用平均值,显然是很难观察到波动的。
于是,需要有一种调试方式,即不影响性能,又能将数据可视化,一览于眼底。于是, 使用gnuplot将数据可视化成为一种比较好的解决方式。就如上图中的结果一样,这幅图横坐标表示的是运行某段代码的次序,纵坐标是耗时。从图上我们可以看出在运行到20000次左右时,发生了大量的波动。然后我们可以再细化分析这段代码,再把代码分成几段,再画图,直到找到问题。注:绿色的那条线是平均值。
我通常用的实施方法是:
(1) 将程序分成几段关键的代码,对分段进行计时,把每次运行花费的时间记入一个数组中,数组给的大一点,存个十万个或更多,数组循环使用。
(2) 在发生问题时,将数组的数据导出,再用gnuplot画成图。非常清晰。
(3) 通过观察图,找出问题所在。
第三步其实很重要,gnuplot画的图,只是让程序的所有性能点都一五一十的呈现在了你的面前,分析还是得靠自己。主要的技巧是你需要对图中的合理时间值有个估计,不然,当你看到每幅图时,你都有可能认为是合理的,也有可能认为是不合理的。
注:如果能用INTEL.VTUNE.PERFORMANCE能分析是好事,不过这些工具不是所有的机子都能运行,且有局限性。
gnuplot用于逻辑复杂的高性能软件调试
Keil软件仿真的串口调试技巧
Keil软件仿真的串口调试技巧
JVM高级性能调试
sunplus_dvd 软件调试
S3c2410软件调试总结
基于单片机的复杂可编程逻辑器件快速配置方法
用于动画制作软件
开发高性能网站的web性能测试工具
各种软件,用于动画制作
各种软件 用于动画制作/
各种软件 用于动画制作....
各种软件 用于动画制作
价值创新:高增长的战略逻辑
S3c2410软件调试总结之我见
高性能WEB开发(6) - web性能测试工具推荐 - BearRui(AK-47) 的B...
高性能高速钢
高性能MySQL 索引
高性能锁ReentrantReadWriteLock
高性能服务器设计
卫星电视接收机的调试
变频器基本参数的调试
真空干燥箱的调试
ADSL的调试方法