├── PairProject1-Java │ └── 221600219&221600212 │ └── src │ ├── Main.java │ └── Lib.java
├── PairProject2-Java │ └── 221600219&221600212 │ └── cvpr │ ├── Main.java │ └── result.txt │ └── src │ ├── Main.java │ └── Lib.java
咱们发现早期的性能瓶颈是由于对文件进行了屡次读取,并在每次读取都进行了排序,因此致使Lib.sortWordMap时间占用长。
java
咱们推翻的以前的方法,经过商讨,摒弃的以前较慢的字符串处理,而是采用了更快的二进制字节处理,同时本来的屡次读取文件也改成了一次读取,屡次使用。
main调用只读取一次文件:
收集单词使用二进制判断:
python
从本来的87s左右下降到了仅有3s,大幅度的提高了程序的运行速度:
git
爬虫部分使用java编写,结合了Jsoup,先匹配CVPR网站上的ptitle类,而后查找类中的
为了方便对基础代码进行自动测试,我使用了python的subprocess库进行对Java代码的自动编译和执行,用unitest来对Java程序的运行结果进行测试,用HTML_Runner_Chart库来对测试结果进行呈现。算法
代码已经开源至Github仓库:https://github.com/numb-men/wordCountAutoTest编程
咱们使用Python的pyecharts、subprocess库,对Java的爬虫代码和WordCount进行了调用,对词组词数分别为1-5的状况进行了图表数据呈现。
github仓库地址:https://github.com/numb-men/cvpr2018DataAnalysis网络
PSP2.1 | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
---|---|---|---|
Planning | 计划 | 30 | 10 |
Estimate | 估计这个任务须要多少时间 | 30 | 10 |
Development | 开发 | 1400 | 2290 |
Analysis | 需求分析 (包括学习新技术) | 100 | 100 |
Design Spec | 生成设计文档 | 60 | 30 |
Design Review | 设计复审 | 30 | 50 |
Coding Standard | 代码规范 (为目前的开发制定合适的规范) | 20 | 20 |
Design | 具体设计 | 180 | 250 |
Coding | 具体编码 | 800 | 1000 |
Code Review | 代码复审 | 110 | 110 |
Test | 测试(自我测试,修改代码,提交修改) | 100 | 150 |
Reporting | 报告 | 120 | 110 |
Test Repor | 测试报告 | 30 | 30 |
Size Measurement | 计算工做量 | 30 | 30 |
Postmortem & Process Improvement Plan |
过后总结, 并提出过程改进计划 | 60 | 50 |
All | 合计 | 1550 | 2410 |
感受此次能和长平同窗结对是一次很愉快的合做。在整个做业的分析,设计,开发,调试过程当中,长平一直很认真的在对待,一块儿沟通问题解决问题。他较为丰富的开发经验以及对Bug的一丝不苟,保障了做业的高质量完成同时也少走许多歪路。真的是一位很可靠的搭档!echarts
和剑威结队的过程当中,也是一个互相学习的过程,咱们在电脑前一块儿讨论,一块儿找bug,有时候我也惊叹他的想法的独到之处,他经常指出我没想到的地方,并且很是认真负责的完成了分工,虽然他在编程上还有待提升,但他是一位能让人感到合做愉快的队友。但愿以后和他的配合会愈来愈默契。机器学习