此作业的要求参见:[https://edu.cnblogs.com/campus/nenu/2018fall/homework/2145]
git地址:[https://coding.net/u/xumonv/p/word_count/git/tree/master/wf]
要求0:以战争与和平作为输入文件,重读向由文件系统读入。连续三次运行,给出每次消耗时间、CPU参数。
1.第一次运行
2.第二次运行
3.第三次运行
CPU参数:Intel(R) Core(TM) i5-4200U CPU @ 1.60GHz 1.60GHz
要求1:要求1 给出你猜测程序的瓶颈。你认为优化会有最佳效果,或者在上周在此处做过优化。
(1)在将标点符号转换为空格时,通过使用枚举法列举所有可能出现的符号,可能会导致程序运行的时间增加。
(2)猜测通过使用Python中自带的函数可以实现用非枚举法的方式将所有标点符号替换为空格。(不过未能找到这一函数)
源代码如下:
1 def parseText(text): 2 for ch in "~!@#$%^&*(()_+-={}[]<>,.?/;':"|\": 3 text = text.replace(ch, " ") 4 words = text.split() 5 return words
要求2:通过profile 找出程序的瓶颈。给出程序运行中最花费时间的3个函数或代码片段。
在命令行输入:
python
-
m cProfile
-
s time wf.py
-
s < war_and_peace.txt
得到耗时前三名结果如下图所示:
要求3:根据瓶颈,“尽力而为”地优化程序性能。
由于能力有限,没有做到性能的优化。
要求5:程序运行时间。
等待教师测评。