有个小疑问,不知道未使用的变量对软件性能有无影响呢? 最近查了下代码,发现有很多类里定义了变量却从未使用它,还有些导入的包也从没用到,我想这除了浪费点磁盘空间外,对软件性能有无影响呢?比如,会不会有潜在bug的可能呢?请大虾们指教.(如果有影响那要抽空处理下了,哈.) 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 变量定义未用,会占一些内存,但不会产生BUG和性能问题(我想你的个数也不至于引起性能问题),引入的包没有用到,也不会影响程序,只是编译的速度有所降低。 package 的话 我觉得会引起classloader的一些加载动作,是不是会实例化 这个就未必了,但是因为你import了 它肯定要先加载过来。至于无用变量尽量还是删除吧, 除了性能以外,代码还有一个最重要的特性:可读性 通常我们使用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是相同的,同上。* 去掉不使用的变量,即LZ所问* 去掉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 EditionBy Jack Shirazi Publisher: O'ReillyPub Date: January 2003ISBN: 0-596-00377-3Pages: 588上面的例子都是此书所讲。 JAVA 备份与恢复 Eclipse插件开发,想做一个view里面显示所有Project的src folder applet显示图片问题,急!! 今天刚学的字符串处理,有个问题不会! JAVA高手的请进 一个关于File类的问题,小弟初学,希望各位高手指教!!! 对话框为什么不在面板的当前位置? 请问怎样知道Sun Forte EE所采用的JDK的版本,谢谢! 什么地方可以DOWN到Visual Age for Java? 哪里有基于JAVA对路由器设备编程的资料 java标签的键盘事件 关于找工作
引入的包没有用到,也不会影响程序,只是编译的速度有所降低。
* 去掉无用的代码,如:if(false) abe++;
* 用更直接高效的代码替换一些代码,以提高整体效率,如:
x = x + 5; 替换为 x += 5; 因为+=运算符更快一些,
y = x/2; 替换为 y = x >> 1; 每右移一位运算和除以2是相同的,移位运算速度很快。
z = x * 4; 替换为 z = x << 2; 每左移一位运算和乘2是相同的,同上。
* 去掉不使用的变量,即LZ所问
* 去掉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 EditionBy Jack Shirazi Publisher: O'ReillyPub Date: January 2003ISBN: 0-596-00377-3Pages: 588上面的例子都是此书所讲。