Individual Project: Word Frequency
之前没写过博客,为了软工作业才开的博客。
Word Frequency程序,代码不难。
预计时间1小时,实际用时1.5小时(主要是编码探测部分费了时间)。
主要使用了
1.单词类Word
2.单词库类(使用KeyedCollection)
3.分词部分用的是Regex类
3.文件搜索也用了Regex
4.采用了CodeProject的一个编码探测的封装类,封装了MLang接口的相关编码探测函数。
性能分析一直出错,家里的电脑业装不上2012,回学校再补充。
后来性能分析成功了,下面是图片:
可以看出探测代码和正则表达式匹配占了主要时间,
因此最终还是决定取消编码探测部分,改为只检测bom,这样可以判断常用的unicode(包括Big Endian),utf8和ansi,其他非ansi代码页的支持取消了,后来修改和测试陆续用了2小时。
测试数据是磁盘中的全部文件等,还有一个100多M的电子书文件夹和作业要求本身等。
发现程序访问某些系统目录时会出现权限不足造成的失败,因此采用了微软未公开的提权函数RtlAdjustPrivilege获取BackupPrivilege权限,就可以访问所有目录了。