从控制台读入英文单篇作品,这不是为了打脸老五,而是为了向你女朋友炫酷,表明你能提供更适合嵌入脚本中的作品(或者如她所说,不过是更灵活的接口)。如果读不懂需求,请教师兄师姐,或者 bing: linux 重定向,仅管这个功能在windows下也有,搜索关键词中加入linux有利于迅速找到。>wf -s < the_show_of_the_ring
total 176
the 6
a 3
festival 2
dead 2
for 2
...
要求0 以 战争与和平 作为输入文件,重读向由文件系统读入。连续三次运行,给出每次消耗时间、CPU参数。 (2分)
运行方法
ptime wf -s < war_and_peace.txt
要求1 给出你猜测程序的瓶颈。你认为优化会有最佳效果,或者在上周在此处做过优化 (或考虑到优化,因此更差的代码没有写出) 。
要求 给出代码片断,并说明为什么你会认为此处是瓶颈,预计优化会有达到多好的效果。
要求2 通过 profile 找出程序的瓶颈。给出程序运行中最花费时间的3个函数(或代码片断)。要求包括截图。 (5分)
要求 分析为什么此处是瓶颈。
要求 profile需要得到函数的运行时间和次数。仅得到CPU和内存占用,不得分。
要求3 根据瓶颈,"尽力而为"地优化程序性能。 (5分)
要求 给出如何改进瓶颈,改进后与改进前程序原理上 (而不是效果上的) 的差异。
要求4 再次 profile,给出在 要求1 中的最花费时间的3个函数此时的花费。要求包括截图。(2分)
要求5 程序运行时间。根据在教师的机器 (Windows8.1) 上运行的速度排名,分为3档。此题得分,第1档20分, 第2档10分,第3档5分。功能测试不能通过的,0分。(20分)
要求 你提交的git工作目录结构需要符合以下要求
/wf/wf.exe (此文件名要求必须是wf.exe。java或python代码,请编译为exe。) /wf/wf.cs (wf源代码,文件名也可能是wf.cpp, wf.py,wf.java) /wf/??? (wf源代码所依赖的其他文件,如果存在的话。)
教师会用脚本遍历所有同学git工作目录下/wf/wf.exe,以战争与和平作为输入文件,每位同学连续测试三次,取最短时间作为排名依据。
//wf.exe需要由你自己的代码编译得到。wf.cs (或其他语言源代码) 与wf.exe如果不能对应,倒扣100分。
(如果上次作业有某个功能没有实现,)效能分析的对象可以是其他同学的代码。需在明确说明代码来自哪位同学及链接,并且不参与速度排名,否则视作抄袭。
效能测试作业参考资料
以下是教师备忘,不是作业的一部分
应明确要求git地址不改变
需要也给出相同单词重复计数的单词个数,用于与word的结果对比,检测功能是否正确。