├── 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/cvpr2018DataAnalysisecharts
PSP2.1 | Personal Software Process Stages | 預估耗時(分鐘) | 實際耗時(分鐘) |
---|---|---|---|
Planning | 計劃 | 2310 | 2870 |
Estimate | 估計這個任務須要多少時間 | 2310 | 2870 |
Development | 開發 | 800 | 1000 |
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 | 報告 | 50 | 50 |
Test Repor | 測試報告 | 30 | 30 |
Size Measurement | 計算工做量 | 30 | 30 |
Postmortem & Process Improvement Plan |
過後總結, 並提出過程改進計劃 | 60 | 50 |
All | 合計 | 2310 | 2870 |