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

【基本测试】

【大小写测试】

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

【复杂文件测试】

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

【性能分析】

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

  程序运行指标如下:

  

 

  主函数运行情况分析: 

  

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

  

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

  

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

  

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

  

最新文章

  1. bzoj 2287: 【POJ Challenge】消失之物
  2. 对线程等待函数pthread_join二级指针参数分析
  3. cocos2dx中设置横竖版
  4. 告别where 1=1 最佳方案分享
  5. ASP判断文件地址是否有效
  6. [深入React] 1. 开发环境搭建
  7. java与数据结构(4)---java实现双向循环链表
  8. zoj3713 7Bit
  9. C#函数式编程-高阶函数
  10. Eclipse/MyEclipse 安裝後應該更改的設置
  11. python_eval的用法
  12. ubuntu下apache2-php-mysql的环境配置
  13. sqlserver数据库 视图相关
  14. ThinkPad T43续命记
  15. 总结一下《vue的使用》
  16. vCenter Single Sign On 5.1 best practices
  17. Ubuntu上CUDA环境搭建
  18. QQ群免IDKEY加群PHP源码
  19. 简单理解DNS解析流程(一)
  20. PAT 甲级 1142 Maximal Clique

热门文章

  1. java 堆排,优先级队列,归并排序
  2. SpringCloud网关无法加载权限及IP黑名单白名单
  3. csp-s模拟测试86
  4. Sublime Text 3,有了Anaconda就会如虎添翼
  5. c# 中Linq Lambda 的ToLookup方法的使用
  6. Appium测试过程中,建议使用谷歌输入法。用搜狗输入法报错报找不到元素,卡住
  7. awk 一些题目
  8. 批量更新mysql表数据
  9. Java中关于注释、标识符、变量、常量、数据类型、类型转换、转移字符以及数值型的表现形式的详解
  10. .net Cache的用法