软件工程第三次作业-2效能分析

老师的作业需要对功能4-1进行效能分析,我最终没有做出来功能4-1,所以也就无法对要求的部分进行分析。但是分数只是学习的一部分,就算没有分数或者倒扣分数,也不影响学习这部分知识的重要性,所以我决定用功能2进行分析。

要求0:

我没有读入战争与和平,而是读入了test.txt 内容为 “my English is very very very poor.”

平均值为(0.887+0.895+0.882)/3=0.888s

要求1:

我猜测是对词频进行排序这里可能耗费时间比较多。

            //根据单词出现次数进行排序
            for (n = 0; n < i - 1; n++)
            {
                k = n;
                //    for (j = 0; j < i; j++)
                for (j = n + 1; j < i; j++)
                    if (W[j].num > W[k].num)
                    {
                        k = j;
                        temp = W[k].num;
                        W[k].num = W[n].num;
                        W[n].num = temp;
                        strcpy_s(b, 15, W[k].a);
                        strcpy_s(W[k].a, 15, W[n].a);
                        strcpy_s(W[n].a, 15, b);
                    }
            }
View Code

这里是冒泡排序,可能剪枝没有做好吧,又频繁调用了函数strcpy_s(),我猜测会出现问题。

要求2:

我开始了性能分析的过程,首先点击分析按钮

进入界面,勾选性能向导

结果出现了这个

点进我单个工作最多的函数main()也就是主函数

看到了我占比最多的三条语句

要求3:

这不是我想要的瓶颈...我还是对排序进行了剪枝优化

要求4:

再次分析我的程序是这样的

之后的ptime

平均值为(0.873+0.880+0.882)/3=0.878s

并没有优化多少。

 

posted @ 2017-09-26 20:02  米赫  阅读(134)  评论(0编辑  收藏  举报