else if 与反射invoke性能比较测试(用于servlet判断调用方法)

else if 与反射invoke性能比较测试(用于servlet判断调用方法),从测试结果看,只有几个方法的时候直接用if else if比较快,第一次使用invoke的时候花费的时间比较长,但之后基本上一致,比较平稳。在100个方法以后invoke方法比else少一个数量级别的时间,不过差别都是在纳秒范围内。

但采用invoke有一个明显的优势就是增加新的方法的时候不需要写判断语句的代码,直接添加方法就可以了,可以节省很长一段else if 代码的判断和维护。

 

两次运行结果:

 if method1用时:55147纳秒,0毫秒

 invoke method1用时:227628纳秒,0毫秒

 

 if method2用时:49518纳秒,0毫秒

 invoke method2用时:52185纳秒,0毫秒

 

 if method100用时:193578纳秒,0毫秒

 invoke method100用时:41914纳秒,0毫秒

 

 if method500用时:507870纳秒,0毫秒

 invoke method500用时:42386纳秒,0毫秒

 

 if method1000用时:496012纳秒,0毫秒

 invoke method1000用时:44326纳秒,0毫秒


 =====================================

 if method1用时:48170纳秒,0毫秒

 invoke method1用时:216665纳秒,0毫秒

 

 if method2用时:50090纳秒,0毫秒

 invoke method2用时:52676纳秒,0毫秒

 

 if method100用时:195969纳秒,0毫秒

 invoke method100用时:44236纳秒,0毫秒

 

 if method500用时:497615纳秒,0毫秒

 invoke method500用时:43714纳秒,0毫秒

 

 if method1000用时:494152纳秒,0毫秒

 invoke method1000用时:43538纳秒,0毫秒

=======================================

 

下面是测试代码:

 http://code.google.com/p/coos/source/browse/trunk/coos/src/com/coos/util/TestCase.java

 

下面是实现的servlet接口代码:

http://code.google.com/p/coos/source/browse/trunk/coos/src/com/coos/util/GetData.java

 

注:javaeye本身的语法着色js导致浏览器运行过慢弹出提示框,点击是就不显示我的代码了,所以用googlecode的代码功能!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值