zoukankan      html  css  js  c++  java
  • 20180925-3 效能分析

    此要求参见:https://edu.cnblogs.com/campus/nenu/2018fall/homework/2145

    代码地址:https://git.coding.net/doubanjiang73/llll.git

    要求0

        在完成此次效能分析作业时,首先结合杨贵福老师的推荐与自己电脑的实际情况,我使用了ptime.exe计算每次运行消耗的时间。以《战争与和平》作为输入文件,重读向由文件系统读入。因为要能运行该文件,所以需要把ptime.exe与需要进行效能分析的文件放入一个文件夹中。

     

        根据我所编写的代码测试能完成的功能,以下内容为效能测试较慢版本(为不易弄乱,在进行效能分析时较慢版本被命名为lwf.exe,截图中4.71s、4.56s、4.94s为我在非控制台中进行测试时的运行时间)。

    要求1 给出你猜测程序的瓶颈。你认为优化会有最佳效果,或者在上周在此处做过优化 (或考虑到优化,因此更差的代码没有写出)。

        我预测会在以下两个片段会是程序的瓶颈,因为以下两个代码在运行时都需要遍历整个文件的全部内容,所以我推测会增加运行时间。我预计通过减少对函数的调用进而缩短运行时间,预计算短5秒时间。

    片段一:

    def lower(s):
        ss = ''
        for i in s:
            if ord(i) in range(65,91):
                i = chr(ord(i)+32 )
            ss += i
        return ss

     片段二: txt = txt.replace(ch, " ")  

     要求2 通过 profile 找出程序的瓶颈。给出程序运行中最花费时间的3个函数(或代码片断)。

    1.运行时间最长的三个片段

    片段一:

    def lower(s):
        ss = ''
        for i in s:
            if ord(i) in range(65,91):
                i = chr(ord(i)+32 )
            ss += i
        return ss

    片段二: def p_count(words,nn=5): 

    片段三: com = input(' >') 

    2.根据profile运行后得出的运行时间最长的三个片段,我发现这三个片段在运行时都需要遍历整个文件,所以以上三个片段运行时间较长。

    要求3 根据瓶颈,"尽力而为"地优化程序性能。

        根据profile运行后的得出的结果,如果想要缩短程序运行时间就要减少对 lower函数的调用,于是经过学习我发现可以使用python内建函数不必自己定义函数,这样可以大大缩短运行时间,下图分别为优化后的运行时间与在要求1中最花费时间的3个函数在优化后的运行时间。

     

  • 相关阅读:
    Codeforces Round #370 (Div. 2)
    Codeforces Round #425 (Div. 2)
    变量调节器
    Smarty基础
    流程
    iframe 内联框架
    权限:改变权限
    权限:查找
    html 框架
    Jcrop+uploadify+php实现上传头像预览裁剪
  • 原文地址:https://www.cnblogs.com/zwqhh/p/9740750.html
Copyright © 2011-2022 走看看