软件工程第三次作业—作业二
效能分析:
作业描述:通过ptime.exe分析软件对war_and_peace.txt在命令行内输入进行运行时间分析,并对相关性能进行分析。
截图如下:
截图所示:
第一次、第二次、第三次结果基本相同,都在70S之间。
瓶颈预测:
分析原因:
效能分析结果基本处于失败状态,解决办法暂时没有找到,我觉得应该是我的暴力程序的原因,在结构体里面定义了静态数组,并且最多放40000,导致程序运行大文本文件时候的运行时间已经很长很长。
接下来,我在Visual Studio 2012中,使用性能探查器进行了一次性能上的测试:
排序函数中我在此使用的是冒泡排序,预测如果使用快速排序,程序的速度应该可以大大提升。
排序sort()部分代码:
void sort() { int i,j; struct word a; for(i=0;i<sum;i++) { for(j=i+1;j<sum;j++) if(A[i].num<A[j].num) { a=A[j]; A[j]=A[i]; A[i]=a; } } }
总结:
1)程序中首先静态数组设置导致在阅读大文本文件时候比较慢,当时也有设置大堆栈,并查阅相关资料,但是最终没有解决这个问题。对于使用动态数组和链表形式进行存储也有想过,具体代码实现还是有一定问题,主要C程序使用并不熟练,可能想的并不一定能跟上实际做出来的。
2)排序函数使用冒泡排序,相对时间空间复杂度都不及快速排序的迅速。
3)基于我对C程序设计的基础,我暂时只能做到现在这一步。