论坛首页 Java企业应用论坛

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

浏览 10434 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2010-02-23  
hellojinjie 写道
guooscar 写道
switch 会更快一点

字符串不能用 switch 的啊


呵呵,看报道说1.7里面好像可以用string了,期待下
0 请登录后投票
   发表时间:2010-02-23  
没代码,啥都是盲目的
0 请登录后投票
   发表时间:2010-02-23  
JDK7才开始支持switch中字符串
0 请登录后投票
   发表时间:2010-02-23  
在性能能够接受的情况下。可读性和可扩展是第一位的。
0 请登录后投票
   发表时间:2010-02-23  
硬件发展得这么强大了。。。代码的可读性早就放第一位了。。。
0 请登录后投票
   发表时间:2010-02-23  
这种if .. else ..if,考虑索引、Hash啊。
转换为HashSet处理试试
0 请登录后投票
   发表时间:2010-02-23  
多不年了,Http协议都没变过,这个数量是固定的,直接用if-else if一点问题都没有,出发点要从扩展性要考虑.这个级别上性能考虑没多大意义 。
业务代码中,如果很有可能要扩展,那么反射带来的好处太大了,无敌的扩展性,对未知类的执行.
记着从扩展性出发。可读性,因为是框架内部实现,如果可读性不太好,但扩展性带来的好处也可以把可读性差的损失换回来.
0 请登录后投票
   发表时间:2010-02-23  
有的时候从软件后期维护角度考虑牺牲一些性能是再所难免的。

就象现在很多人都喜欢用spring和hibernate一样。

要的就是开发、维护方便
0 请登录后投票
   发表时间:2010-02-23  
如果真的在意反射invoke性能,建议采用下面方式可以避免else if的问题
初始化时构造一个map(注意只需一次),map的key为method name, value为一个函数对象,如 :
Runnable method = new Runnable()
{
public void run()
{
method();
}
};
0 请登录后投票
   发表时间:2010-02-23  
Map<String, Integer>

switch (map.get(key))
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics