第一次个人项目【词频统计】——测试样例分析&性能分析

【空文件测试】(认为空文件行数为0)

 

【基本测试】

 

 【大小写测试】

  可以看出abcd同类型的词出现了三次,而单词树中存储的是ABCd,满足大小写要求。

 

【复杂文件测试】

  前三项数据比较接近,但是单词和词组统计的个数稍有差异,因此导致了排名的差异。

 

【性能分析】

   使用助教提供的数据集,在Release条件下跑出的时间大概七八十秒。说明平衡二叉树在大量数据的查找具有不错的性能。

  程序运行指标如下:

  

 

  主函数运行情况分析: 

  

  可以看出词组平衡树的插入,单文件信息获取以及同词组类型判断这三个函数占用的时间比较多,优化应当从这几函数考虑。

  

  时间主要集中在strcmp,暂无优化方案

   

  时间开销主要是函数isSamePhrase引起的,同上无较好解决方案。

  

 

  从上面几幅图可以看出,时间开销比较明显的全部集中在系统调用的函数上,如strcmp,fgetc,所以合理的优化方案是改变程序的结构,考虑使用多线程,以提高CPU利用率和减少时间。

 

 

  

posted @ 2018-03-30 19:19  ^TP^  阅读(215)  评论(1编辑  收藏  举报