软件工程第三次作业—作业二

效能分析:
作业描述:通过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程序设计的基础,我暂时只能做到现在这一步。

原文地址:https://www.cnblogs.com/chjy/p/7598265.html