个人项目总结 --by Junyuan Xie

个人项目的要求是些一个统计文本中词频的程序,开始很简单,用了一个小时就写完了。不过后面由于陆续加入功能和优化性能,又花了数个小时,比写代码的时间多多了……

 

初始实现:

最开始想用strtok来切词,不过看了一下它的代码感觉实在有点低效,所以就自己写了一个。接着又写了遍历文件夹的功能,然后用了stl::map统计词频,最后用stl::sort输出一下就完事了。

加入功能:

后续又陆续出现了“要求递归遍历目录”和“忽略大小写”等功能,进行了诸多修改。先是在切词函数里直接加上了tolower,然后把遍历文件夹的函数改成了递归的(期间由于FindFirstFile调错了SegFault了一阵,非常郁闷)。

优化:

后来由于强迫症性质的想要提高点性能,先把map换成了unordered_map,从30s提高到20s。然后把string改成了char*,自己写了个hash函数(其实找了个hash函数列表,一个一个试过去,发现最简单那个最好用),从20s提高到10s。

 

总之优化要适可而止,放任不管的话估计就会花几个小时把关键函数都改成内嵌汇编了……

posted @ 2012-09-07 15:18  Msra-Ustc-灰太狼  阅读(894)  评论(0编辑  收藏  举报