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

【基本测试】

【大小写测试】

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

【复杂文件测试】

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

【性能分析】

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

  程序运行指标如下:

  

 

  主函数运行情况分析: 

  

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

  

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

  

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

  

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

  

第一次个人项目【词频统计】——测试样例分析&性能分析的更多相关文章

  1. 软件工程第一次个人项目——词频统计by11061153柴泽华

    一.预计工程设计时间 明确要求: 15min: 查阅资料: 1h: 学习C++基础知识与特性: 4-5h: 主函数编写及输入输出部分: 0.5h: 文件的遍历: 1h: 编写两种模式的词频统计函数: ...

  2. hdu 1003 MAX SUM 简单的dp,测试样例之间输出空行

    测试样例之间输出空行,if(t>0) cout<<endl; 这样出最后一组测试样例之外,其它么每组测试样例之后都会输出一个空行. dp[i]表示以a[i]结尾的最大值,则:dp[i ...

  3. YOLOv4 资源环境配置和测试样例效果

    YOLOv4 资源环境配置和测试样例效果 基本环境:cuda=10.0,cudnn>=7.0, opencv>=2.4 一.下载yolov4 git clone https://githu ...

  4. 个人项目-词频统计(语言:C++)

    词频统计 (个人项目) 要求 (1). 实现一个控制台程序,给定一段英文字符串,统计其中各个英文单词(4字符以上含4字符)的出现频率. 附加要求:读入一段文本文件,统计该文本文件中单词的频率. (2) ...

  5. 作业3-个人项目<词频统计>

    上了一天的课,现在终于可以静下来更新我的博客了.       越来越发现,写博客是一种享受.来看看这次小林老师的“作战任务”.                词频统计 单词: 包含有4个或4个以上的字 ...

  6. PAT 1032 挖掘机技术哪家强(20)(有测试样例)

    1032 挖掘机技术哪家强(20)(20 分) 为了用事实说明挖掘机技术到底哪家强,PAT组织了一场挖掘机技能大赛.现请你根据比赛结果统计出技术最强的那个学校. 输入格式: 输入在第1行给出不超过10 ...

  7. PAT 1024 科学计数法 (20)(精简版代码+思路+推荐测试样例)

    1024 科学计数法 (20)(20 分) 科学计数法是科学家用来表示很大或很小的数字的一种方便的方法,其满足正则表达式[+-][1-9]"."[0-9]+E[+-][0-9]+, ...

  8. 个人项目----词频统计WEB(部分功能)

    需求分析 1.使用web上传txt文件,对上传的txt进行词频统计. 2.将统计后的结果输出到web页面,力求界面优美. 3.在界面上展示所给url的文章词频统计,力求界面优美. 3.将每个单词同四. ...

  9. Jfrog 与 jenkins Sonarqube的 测试样例 (From jfrog 培训)

    1. 获取jfrog 仓库地址 sonar的地址 jenkins的地址. 本次例子的地址为: jenkins地址:http://10.24.101.99:8080/ artifactory地址: ht ...

随机推荐

  1. matlab 求已知概率密度函数的随机数生成

    N=10000; %需要随机数的个数 a=zeros(N,1); %存放随机数的数列 n=0; f1=@(t) 1./(1.2*pi*(1+5*(t-7.3).^2)); f2=@(t) 1./(1. ...

  2. mysql 查询当前日期

    1.本年份 SELECT DATE_FORMAT(NOW(), '%Y'); 2.本月份(显示数字) SELECT DATE_FORMAT(NOW(), '%m'); 3.本月份(显示英文) SELE ...

  3. SpringBoot:目录

    ylbtech-SpringBoot:目录 1.返回顶部   2.返回顶部   3.返回顶部   4.返回顶部   5.返回顶部     6.返回顶部   作者:ylbtech出处:http://yl ...

  4. Java lambda尝鲜

    最近Java 11都出来了,java 8 的很多新特性还没用过,比如接口可以有方法体啦,default默认方法. 当然最大的特性就是支持函数式编程了.Java 8 提供了lambda表达式和方法引用来 ...

  5. zepto问题

    jq功能对照表 http://jsrun.it/21f/mrCH 不支持 jquery的 ajaxSetup 全局修改ajax的设置 $.ajaxSetup({beforeSend : beforeS ...

  6. Windows与Linux获取进程集合的方法

    Windows: List<String> tasklist=new ArrayList<String>(); try { Process process = Runtime. ...

  7. 清晰化算法在DSP上的实现

    清晰化算法在DSP TIDM642上的实现,之前的部分工作摘要于此. 1 DSP平台的选择 1.1 DM642 Evolution Module 选择现有的DM642 Evolution Module ...

  8. python编码(31-01)

    以什么方式编码,就以什么方式解码! 第一种编码与解码方式: encode()编码 decode()解码 type()查看数据类型 repr()查看数据内容 s = '你好'print(type(s)) ...

  9. webjars和springboot热启动

    webjars WebJars将Web前端Javascript和CSS等资源打包成Java的Jar包, 以便能使Maven的依赖管理支持静态JavaScript库/CSS库,比如jQuery.layu ...

  10. <爬虫>黑板爬虫闯关01

    import requests from lxml import etree import time ''' 黑板爬虫闯关 网址:http://www.heibanke.com/lesson/craw ...