ASE个人项目总结--By Hongyi Yao

周五终于提交了整个个人项目的代码和程序,感觉卸掉任务身心舒畅啊~总体来说,这次个人项目的题目并不是很难实现,算法在网上也有很多。不过这次是我第一次认真的统计了代码量和工作时间,并且第一次使用C#、Unit Test和性能分析,从中我也获得了很多经验。

  • 时间估计:总体上估计时间比实际完成时间要长,但这只是coding时间,如果加上查资料、调试和优化就会长出至少一倍。从这次的经验来看,我很同意预估时间*2=真实时间这个说法。
  • C#语言:因为之前有JAVA的基础,所以上手C#很容易。而且C#中有很多很方便的库,可以让我在较高的层次编码而不用纠缠那些恶心的底层问题,比如“选择匹配的文件”和“使用Hash表记录词频”这些功能,从而大大加快了开发速度。
  • 寻找帮助:这里首先要表扬一下MSDN确实提供了很详细的资料,包括接口,成员和异常等等,而且最重要的是每个方法都有示例,这种有上下文的示例比起单薄的接口声明可是有用多了。但是,MSDN的翻译确实非常烂啊,前言不搭后语的,而且有些关键的含义被抹去了。所以我的经验是,想要查某个类的成员和方法去用MSDN,否则还是搜下网上大虾的博客吧。。。
  • 优化:不得不说代码优化真是万恶之源啊。。。整整花了一个下午的时间
    • 反复调用的方法:这个问题在最开始没有想到,中期的需求变化带来了这个问题。就是ToLower这个函数应该在传入整篇文章时就调用。如果在每次分词后再调用,就会带来很大的开销。事实上这个优化至少带来了30%的效率提升,这也提示我多余的函数调用应该是首要的优化目标。
    • 重复计算的变量:包括遍历次数(调用类成员不如提前用临时变量记录下来),分词的结束位置(思考的时候可以多用临时变量让思路清晰,但是实现的时候要尽量少对额外变量赋值,尤其是热点区域),但这属于细节,并没有太大的改善。
    • 编译环境:这个之前还真没注意过,但是鉴于现在系统都逐渐升级到了64位,如果在建立工程的时候就能明确目标平台,那么就可以有针对性的编译出更有效率的机器代码。

转载于:https://www.cnblogs.com/coderepublic/archive/2012/09/06/2673142.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值