zoukankan      html  css  js  c++  java
  • 第一次个人项目【词频统计】——测试样例分析&性能分析

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

    【基本测试】

     【大小写测试】

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

    【复杂文件测试】

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

    【性能分析】

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

      程序运行指标如下:

      

     

      主函数运行情况分析: 

      

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

      

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

       

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

      

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

      

  • 相关阅读:
    链表
    Python中安装Requests库
    在vs中使用python
    CentOS添加windows引导
    c#创建windows服务
    SQLServer查询结果另存为csv格式中文乱码问题
    用svn管理GitHub项目
    Jquery操作select
    sqlserver2016安装
    信号处理函数陷阱:调用malloc导致死锁[转]
  • 原文地址:https://www.cnblogs.com/ustctp/p/8678111.html
Copyright © 2011-2022 走看看