个人项目
| 这个作业要求在哪里 | 个人项目-论文查重算法 |
|---|---|
| 这个作业的目标 | 1、完成PSP表格。2、完成“论文查重算法”的设计并进行测试。3、代码签入Github中。 4、编写博客记录。 |
GitHub链接
仓库地址
计算模块接口
-
TxtIOUtils类
readTXT 读取文件,采用java中同步阻塞的IO字节流,每次读取一行数据到内存中 writeTXT 写入文件,采用java中同步阻塞的IO字节流,每次写入一行数据到文件中 -
HammingUtils类
getHash通过MD5获取字符串的hash值getSimHash计算出字符串的simHash值 -
SimHashUtils类
| getHammingDistance | 输入两个simHash值,计算它们的海明距离 |
|---|---|
| getSimilarity | 输入两个simHash值,输出相似度 |
性能测试

计算模块接口部分的性能改进

可以看到,整个函数执行花了2045ms,而但是读取文件内容执行的IO时间就占了1135ms,可见IO操作最影响程序的性能,
这里可以采用Java中的缓冲流提高IO速度
测试覆盖率

异常处理说明

当文本长度小于200时,文本过短无法提取除关键字进行比对,抛出一个文本过短异常
PSP表格
| *PSP2.1* | *Personal Software Process Stages* | *预估耗时(分钟)* | *实际耗时(分钟)* |
|---|---|---|---|
| Planning | 计划 | 20 | 30 |
| · Estimate | · 估计这个任务需要多少时间 | 200 | 240 |
| Development | 开发 | 120 | 100 |
| · Analysis | · 需求分析 (包括学习新技术) | 120 | 140 |
| · Design Spec | · 生成设计文档 | 40 | 30 |
| · Design Review | · 设计复审 | 20 | 20 |
| · Coding Standard | · 代码规范 (为目前的开发制定合适的规范) | 30 | 20 |
| · Design | · 具体设计 | 40 | 30 |
| · Coding | · 具体编码 | 120 | 120 |
| · Code Review | · 代码复审 | 30 | 10 |
| · Test | · 测试(自我测试,修改代码,提交修改) | 20 | 30 |
| Reporting | 报告 | 60 | 80 |
| · Test Repor | · 测试报告 | 30 | 20 |
| · Size Measurement | · 计算工作量 | 10 | 10 |
| · Postmortem & Process Improvement Plan | · 事后总结, 并提出过程改进计划 | 20 | 10 |
| · 合计 | 680 | 650 |
浙公网安备 33010602011771号