效能分析

作业要求【https://edu.cnblogs.com/campus/nenu/2018fall/homework/2145

代码地址【https://coding.net/u/liuyy0817/p/counts/git

要求0 以 战争与和平 作为输入文件,重读向由文件系统读入。连续三次运行,给出每次消耗时间、CPU参数。 

要求1 给出你猜测程序的瓶颈。你认为优化会有最佳效果,或者在上周在此处做过优化 (或考虑到优化,因此更差的代码没有写出) 。

要求2 通过 profile 找出程序的瓶颈。给出程序运行中最花费时间的3个函数(或代码片断)。要求包括截图。 

要求3 根据瓶颈,"尽力而为"地优化程序性能。 

要求4 再次 profile,给出在 要求1 中的最花费时间的3个函数此时的花费。要求包括截图

要求5 程序运行时间。根据在教师的机器 (Windows8.1) 上运行的速度排名,分为3档。此题得分,第1档20分, 第2档10分,第3档5分。功能测试不能通过的,0分。

第一次运行时间:

CPU参数:

 第二次运行时间:

 CPU参数:

第三次运行时间:

 CPU参数:

我猜测瓶颈是在匹配文件名处,因为他需要每一次都进行比较。

1 for (int i = 0; i<len; i++)
2         {
3             if (isalpha(temp[i]) || temp[i] == '-' || temp[i] == '\'')
4             {
5                 tmp[j] = temp[i];
6                 j++;
7             }
8 
9         }

执行最多的三个函数

至于优化,我实在想不出来该如何进行优化,对此,我需要更深入的学习。

猜你喜欢

转载自www.cnblogs.com/liuyy0817/p/9748026.html