效能分析

此做業要求: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

要求1:給出你猜想程序的瓶頸。你認爲優化會有最佳效果,或者在上週在此處作過優化

這裏分析遇到的時間瓶頸是因爲處理文檔中的標點符號方法形成的,這裏採用將全部符號替換成空格符的方法,以前採用的是列舉全部符號,用replace方法進行替換。blog

要求2:經過profile 找出程序的瓶頸。給出程序運行中最花費時間的3個函數或代碼片斷

在命令行輸入如下代碼:

python -m cProfile -s time wf.py -s < war_and_peace.txt

要求3:根據瓶頸,「盡力而爲」地優化程序性能

根據要求1中對程序瓶頸的猜測,發如今運算符判斷時浪費了時間。這時候將全部運算符方式排列換成空格符的代碼改爲將全部運算符放到變量裏,將變量直接賦值成爲空格符便可。

要求4:再次profile,給出在要求1 中的最花費時間的3個函數此時的花費

再次輸入代碼:

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

要求5:程序運行時間

等待教師測評。

相關文章
相關標籤/搜索