此做業要求:https://edu.cnblogs.com/campus/nenu/2018fall/homework/2145python
代碼地址:https://git.coding.net/yanglei749/wfnew.gitgit
要求0: 以 戰爭與和平 做爲輸入文件,重讀向由文件系統讀入。連續三次運行,給出每次消耗時間、CPU參數。函數
使用命令行進入程序所在文件夾,輸入以下命令:性能
ptime wf -s < war_and_peace.txt
獲得的運行時間分別以下:優化
1.第一次運行:.net
2.第二次運行:命令行
3.第三次運行:3d
次數 | 時間(s) |
1 | 0.536 |
2 | 0.531 |
3 | 0.523 |
平均 | 0.530 |
CPU參數: Intel(R) Core(TM) i5-8400 CPU @ 2.80GHz 2.81GHzcode
這裏分析遇到的時間瓶頸是因爲處理文檔中的標點符號方法形成的,這裏採用將全部符號替換成空格符的方法,以前採用的是列舉全部符號,用replace方法進行替換。blog
在命令行輸入如下代碼:
python -m cProfile -s time wf.py -s < war_and_peace.txt
根據要求1中對程序瓶頸的猜測,發如今運算符判斷時浪費了時間。這時候將全部運算符方式排列換成空格符的代碼改爲將全部運算符放到變量裏,將變量直接賦值成爲空格符便可。
再次輸入代碼:
python -m cProfile -s time wf.py -s < war_and_peace.txt
獲得結果以下圖所示:
1.第一次運行:
2.第二次運行:
3.第三次運行:
次數 | 時間(s) |
1 | 0.520 |
2 | 0.519 |
3 | 0.517 |
平均 | 0.518 |
CPU參數: Intel(R) Core(TM) i5-8400 CPU @ 2.80GHz 2.81GHz
對比能夠看出平均時間由以前的0.530到如今的0.518,減小了0.012
等待教師測評。