作业03

 2017****7506

 郭昕宇

 码云项目仓库:https://gitee.com/guoxiaoyuxiao/SE7506/tree/master

2) 程序分析,对程序中的四个函数做简要说明。要求附上每一段代码及对应的说明。

  1.读文件到缓存区

  

  2.统计每个单词的频率

  

  3.输出Top 10 单词

  

  4.导入argparse库用于解析命令行数据,依次执行函数

  

  在命令中输入python word_freq.py Gone_with_the_wind.txt运行代码
  结果如下,输出了词频Top10的单词和次数:

3) 性能分析结果及改进。

  使用cProfile进行性能分析
  python -m cProfile word_freq.py Gone_with_the_wind.txt

  

  

  

   上图显示有1732200次函数调用,程序总共耗时386.826秒

    回到代码中发现process_buffer函数中的for循环内有一句if word in word_freq.keys():
  而遍历字典循环中每执行一次就要调用字典word_freq的keys()方法,但实际不需要再提取字典中的值(keys),直接判断word在字典word_freq中是否存在就可以了,所以去掉keys()          法,将代码修改为if word in word_freq:

  

  

  优化后显示有891908次函数调用,程序总共耗时0.702秒

4) 给出你对此次任务的总结与反思。

  对于Python还是没有那么深的了解,运用的不那么流畅,对自己不满意。在完成作业的过程中我寻求了同学的帮助,认真的向他请教。

posted @ 2019-04-07 19:54  北软郭昕宇  阅读(109)  评论(0编辑  收藏  举报