感觉程序比较简单,所以没有写好多类,只是在一个类里写了几个方法。

类里边有四个属性,mode(记录词频的模式),rec[](记录词的string数组),amo[](记录词的数量),sum(记录词的数量)。

七个方法,一个Main入口,SerchFile(),GetWords(),Record(),Sort(),Combine(),WriteFile()六个方法。

预计用时5小时,实际用时3.5小时。

 

 SerchFile()现成的类Directory和FileSystemInfo,10分钟。

 GetWords()现成的StreamWriter和Split,10分钟。

 Record()判断一下词是否重复,非常简单的算法,10分钟。

 Sort()非常蠢自己手打了个排序,效率有点低,但是由于刚开始的时候习惯性的开数组,所以没什么好用的方法,20分钟。

 Combine()Ext模式下同类词的合并,算法比较简单粗暴,O(n)的,10分钟。

 WriteFile()没什么意思了,StreamWriter,时间忽略不计。

 

 大部分的时间用在完成后的各种修改上,整理代码,优化一些小地方,四处看看别人的代码,看到了一些我没想到的东西就  改一改自己代码,玩一玩性能分析,今天下午临时改了需求分析,顺便改一改。

第一次测试,只搜集到13个样例,时间在1.8s左右,这东西每次有一定的随机性,手打排序果然太弱了。

 

第二次找了一个超大的样例,结果函数调用就不大搞得懂了,求大神指教。

另外有个问题,这个性能测试是不是随机收集数据的呢?每次用同样的目录搜集的样本数并不一样。

 

这个项目是用C#写出来的,C#这个语言就是需要一个熟练度,丰富的类和函数需要多用才能知道,多写一些多了解一些现成的类的使用,就能够更好的运用这个语言。

另外,我的面向对象思想太弱了,写出来的东西基本没有面向对象的概念。

 

经过各种修改需求和确定题意,终于算是收工了。

更新一下测试样例

1、空文件夹

2、隐藏文件夹

3、不同大小写的词

4、尾缀各种数字、字母的词

5、自己程序的.cs文件

6、超多层子目录

7、超多符号测试

8、开头三个字符字母、数字混杂

9、全套工程文件

10、超大样本,总大小2G,混杂很多不同类型的文件

posted on 2012-09-24 15:44  daisuke  阅读(171)  评论(0编辑  收藏  举报