效能分析

此做业要求: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:程序运行时间

等待教师测评。

相关文章
相关标签/搜索