第二次结对编程

项目名称:词频统计

作业要求:https://www.cnblogs.com/xinz/archive/2011/11/27/2265000.html

代码链接:https://github.com/YichongLeng/word_frequency

合作方式:

我们两人合作完成-c的处理

我们采取分工合作的方式,分别负责-x -f -p -v -d等功能的实现

在后来的效能分析,测试环节,首先我们一起优化整体逻辑,然后分别优化自己编写的函数性能的优化。

讨论方式:

刚开始就确定了整个程序大致由哪些函数构成,各个部分的输入输出。并确定原则:尽可能减少完整扫描这个txt文件的次数

 

同伴的优缺点:

优点:

  1. 熟练使用github
  2. 对于编译原理等知识有较好理解,能够很好的优化代码
  3. 逻辑清楚,能够在设计之初就提出高效能的算法

缺点:

  1. 刚开始对于PyCharm的效能分析工具不太会使用

 

效能分析:

  采用PyCharm自带的Profile工具

  起初,我们的代码运行速度很慢,实现-p -n -v功能的时间需要2s多

 

之后,我们分析程序各部分运行时间的结果,对以下几点做了优化:

  1. 首先是将简单的大小写字母判断,由函数调用的形式改为了直接在程序中执行的方式,提速很多,因为每一个字符我们都进行了大小写判断。
  2. 此外,调整了部分函数if else 的顺序,将经常执行的部分,调整到前面。判断大小写字母改为非大写字母即为小写字母的逻辑。
  3. 对于组合功能,编写一个函数完成对应功能,而非用多个函数多次遍历文件内容,加速效果明显

优化后,简单功能运行的时间控制在0.2s到0.3秒之间,对于-p控制在0.5s左右。

对比优化前后,进步明显。

 

posted on 2018-11-03 00:04  USTCer_Z  阅读(108)  评论(0编辑  收藏  举报

导航