Java优化编译

今天在CSDN论坛的Java板块看一网友提出的问题:程序中从不使用的变量对程序运行有什么影响。

 

通常我们使用是SUN JDK提供的Java编译器,它在编译时对从不使用变量 (variable is never used)的处理方法是只给出警告。这样在运行程序时,从不使用的变量会占用一定的内存空间。既然变量从未使用,自然不会对产生bug.

 

这个网友的问题回答起来很简单,但我想这个问题中带出了程序代码编译时的优化问题。其实,除了Sun的编译器,还有很多其它的编译器和优化器,可以编译java程序并使用比Sun编译器更多的代码优化,比如:

  • 通过分析去掉程序无用的方法和类,以减小磁盘空间和发布的大小。
  • 去掉无用的代码,如:if(false) abe++;
  • 用更直接高效的代码替换一些代码,以提高整体效率,如:
    • x = x + 5; 替换为 x += 5; 因为+=运算符更快一些,
    • y = x/2; 替换为 y = x >> 1; 每右移一位运算和除以2是相同的,移位运算速度很快。
    • z = x * 4; 替换为 z = x << 2; 每左移一位运算和乘2是相同的,同上。
  • 去掉不使用的变量
  • 去掉class文件中不需要的部分,给编译后的字节码瘦身,如debug信息和代码行号等。
  • 去掉无用的动态类型检测等(动态类型检测会占用代码资源和CPU时间)。如:
    • Integer i = new Integer(3);
    • Integer j = (Integer) i;
             替换为:
    • Integer i = new Integer(3);
    • Integer j = i;
  • 类,方法及变量更名(混淆器)

还有很多其它的优化方案和例子,这里有一个java代码优化器的列表以供参考:

http://www.javaperformancetuning.com/resources.shtml#Optimizers

再推荐本书:
Java™ Performance Tuning, 2nd Edition

By Jack Shirazi

Publisher: O'ReillyPub

Date: January 2003

ISBN: 0-596-00377-3

Pages: 588

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值