zoukankan      html  css  js  c++  java
  • 2017秋软工2

    coding:https://git.coding.net/137911934/SE20170914.git

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

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

    本程序都是用 Map 的基本操作进行实现,用 vector 进行功能辅助,最终实现功能,所以据我猜测,瓶颈应该在于大文件的读入。

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

    经过测试,在程序运行过程中仅有 main 函数比较耗费时间,其余都是 map 应用库函数操作,对时间消耗不大。所以我推测主要时间耗费在大数据文件的读入处理。

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

    通过 bing 进行查找学习发现,cin 读取数据时有额外开销,运用下面这行代码可以 “取消cin于stdin的同步” :

    std::ios::sync_with_stdio(false); 

    我将这行代码加入到了我的程序中并重新进行调试。

    要求4 再次 profile,给出在 要求1 中的最花费时间的3个函数此时的花费。要求包括截图。

    通过 ptime 测试时间可以清楚的看到,运行时间减少了 0.7 秒左右,较少率接近 50% ,证明优化有效。

    要求5 程序运行时间。根据在教师的机器 (Windows8.1) 上运行的速度排名,分为3档。此题得分,第1档20分, 第2档10分,第3档5分。功能测试不能通过的,0分。

  • 相关阅读:
    使用BC库解密出现no such provider错误
    使用PyHive操作Hive
    使用Python实现Map Reduce程序
    Mysql问题
    安装Python2.7出现configure: error: no acceptable C compiler found in $PATH错误
    crontab入门
    Linux命令-dd
    Linux命令-cp
    Linux命令-mkdir
    RHEL7.2下netcat工具安装教程
  • 原文地址:https://www.cnblogs.com/wangl009/p/7598659.html
Copyright © 2011-2022 走看看