zoukankan      html  css  js  c++  java
  • 第二次结对编程

    项目名称:词频统计

    作业要求: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左右。

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

  • 相关阅读:
    215. Kth Largest Element in an Array
    B:魔兽世界之一:备战
    218. The Skyline Problem
    编程作业: 编程作业—类和对象
    239. Sliding Window Maximum
    313. Super Ugly Number
    hdu3068 manacher模板题
    fzu1901 kmp
    hdu2609 最小表示法
    hdu3374 kmp+最小表示法
  • 原文地址:https://www.cnblogs.com/xiaoqz/p/9899195.html
Copyright © 2011-2022 走看看