个人项目

这个作业要求在哪里 个人项目-论文查重算法
这个作业的目标 1、完成PSP表格。2、完成“论文查重算法”的设计并进行测试。3、代码签入Github中。 4、编写博客记录。

GitHub链接

仓库地址

计算模块接口

  1. TxtIOUtils类

    readTXT 读取文件,采用java中同步阻塞的IO字节流,每次读取一行数据到内存中
    writeTXT 写入文件,采用java中同步阻塞的IO字节流,每次写入一行数据到文件中
  2. HammingUtils类

     getHash通过MD5获取字符串的hash值
    
    getSimHash计算出字符串的simHash值
    
  3. 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

posted @ 2023-09-17 21:31  Yam1  阅读(39)  评论(0)    收藏  举报