Java优化编译
2009-06-15 21:16
232 查看
通常我们使用Sun提供的java编译器,它在编译时对从不使用变量的处理方法是只给出警告。这样在运行程序时,从不使用的变量会占用一定的内存空间。既然变量从未使用,自然不会对产生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
上面的例子都是此书所讲。
其实,除了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
上面的例子都是此书所讲。
相关文章推荐
- java编译时优化的部分体现
- 工具优化(4)-- eclipse安装JAVA反编译插件
- 深入理解java虚拟机(十三) Java 即时编译器JIT机制以及编译优化
- 利用数学里的一个漏洞(1=0.9(9循环))来验证JAVA的编译优化
- Java的JIT编译优化技术
- 深入理解java虚拟机(十三) Java 即时编译器JIT机制以及编译优化
- Java的即时编译(Just In Time, JIT)及其优化
- Java 性能优化系列之3.2[JVM调优] --- JIT即时编译
- 关于java字符串编译优化问题
- 103day(Java编译优化,对象容器,集合容器(set),散列表(Hash)和计算机操作系统发展和主要功能,直言三段论的学习)
- JDT编译器对Java代码的编译优化一瞥
- 利用数学里的一个漏洞(1=0.9(9循环))来验证JAVA的编译优化
- Java中利用final关键字inline编译优化真的有效吗?
- java性能优化策略
- Java性能优化技巧集锦
- Android Studio之优化gradle编译速度
- Java程序优化的一些最佳实践
- Java实现Package编译和访问
- 记一次 java程序优化
- java编程进行动态编译加载代码分享