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

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

    代码地址:https://git.coding.net/yanglei749/wfnew.git

    要求0: 以 战争与和平 作为输入文件,重读向由文件系统读入。连续三次运行,给出每次消耗时间、CPU参数。

    使用命令行进入程序所在文件夹,输入如下命令:

    ptime wf -s < war_and_peace.txt

    得到的运行时间分别如下:

    1.第一次运行:

    2.第二次运行:

    3.第三次运行:

    次数 时间(s)
    1 0.536
    2 0.531
    3 0.523
    平均 0.530

    CPU参数: Intel(R) Core(TM) i5-8400 CPU @ 2.80GHz 2.81GHz

    要求1:给出你猜测程序的瓶颈。你认为优化会有最佳效果,或者在上周在此处做过优化

    这里分析遇到的时间瓶颈是由于处理文档中的标点符号方法造成的,这里采用将所有符号替换成空格符的方法,之前采用的是列举所有符号,用replace方法进行替换。

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

    在命令行输入以下代码:

    python -m cProfile -s time wf.py -s < war_and_peace.txt

    要求3:根据瓶颈,“尽力而为”地优化程序性能

    根据要求1中对程序瓶颈的猜想,发现在运算符判断时浪费了时间。这时候将所有运算符方式排列换成空格符的代码改成将所有运算符放到变量里,将变量直接赋值成为空格符即可。

    要求4:再次profile,给出在要求1 中的最花费时间的3个函数此时的花费

    再次输入代码:

    python -m cProfile -s time wf.py -s < war_and_peace.txt

    得到结果如下图所示:

    1.第一次运行:

     2.第二次运行:

    3.第三次运行:

    次数 时间(s)
    1 0.520
    2 0.519
    3 0.517
    平均 0.518

    CPU参数: Intel(R) Core(TM) i5-8400 CPU @ 2.80GHz 2.81GHz

    对比可以看出平均时间由之前的0.530到现在的0.518,减少了0.012

    要求5:程序运行时间

    等待教师测评。

  • 相关阅读:
    Selenium操作之滚动条
    IntelliJ IDEA代码编码区提示库源不匹配字节码解决办法
    自动化测试浅谈
    json-lib解析json之二维JSONArray
    Java 多态
    Java0基础教程——java的安装
    LAYUI弹出层详解
    ajax实现动态URL
    js serialize()
    TP5.1接入支付宝实现网页/APP支付完整请求回调流程(沙箱环境)
  • 原文地址:https://www.cnblogs.com/yangl794/p/9756352.html
Copyright © 2011-2022 走看看