一、效能分析

  1、作业地址:https://edu.cnblogs.com/campus/nenu/2016CS/homework/2139

  2、git地址:https://git.coding.net/kefei101/wfAnalysis.git

  3、对wf小程序的功能三进行效能分析,以war_and_peace.txt作为测试文件,使用效能分析工具ptime.exe,连续运行三次,给出每次消耗时间。

    说明:下载后,将自己的wf.exe放到word_count_demo文件夹,打开cmd命令行,首先输入ptime wf,再写自己的小程序命令。

    三次运行结果如下图所示:

软件工程 week  03

软件工程 week  03

软件工程 week  03

次数 时间
1 3.950s
2 2.851s
3 2.157s
平均 2.984s

 二、猜测瓶颈

    针对测试文档war_and_peace.txt,所用到的流程是

软件工程 week  03

    所用到的方法有Jagger类的JaggerFormat(),ReadTxt类的txtToString()方法,SortMap类的sortMap(Map map,int num)方法。

    我认为程序中耗时较多的函数方法/程序段有以下几个:

    (1)我的程序是一层一层深入的,从判断,到逐层进入对应方法,从而执行方法,输出结果。那么我想在JaggerFormat()方法中耗时的有:判断输入格式,分隔字符串

      当然这里面还有我的附加功能(输入格式第一个单词是wf.exe所处的文件夹名)所用到的获取路径方法,我觉得这所占时间是必须的,这也是我的程序比他人运行时间更长的原因之一。

 1      //用 stringTokenizer 方法截取输入格式每个单词,放入list中
 2         StringTokenizer stringTokenizer = new StringTokenizer(order, " \n");
 3         ArrayList<String> list = new ArrayList<String>();
 4         while (stringTokenizer.hasMoreElements()) {
 5             list.add(stringTokenizer.nextToken());
 6         }
 7 
 8         //判断第一个单词是否是wf程序所处文件夹名
 9         String project = System.getProperty("user.dir");
10         project = project.substring(project.lastIndexOf('\\') + 1, project.length());
程序片段一

相关文章:

  • 2021-11-26
猜你喜欢
  • 2021-05-26
  • 2021-09-05
  • 2022-01-29
  • 2022-02-20
  • 2021-11-19
  • 2021-09-03
相关资源
相似解决方案