未使用的导入和对象是否会对性能产生影响

问题描述 投票:61回答:5

我有一个疑问,Java代码中未使用的导入和未使用的对象是否会产生任何性能影响?

假设一个对象被初始化并且从未使用过,会发生什么?未使用的进口成本是多少?

java import packages bytecode
5个回答
58
投票

这是一个非常普遍的问题。

与大多数性能问题一样,最好的方法是编写最清晰,最简单的代码,因为这样可以提高代码的可维护性,并有助于确保代码在更改后表现得相当好。 (Clever / Obtuse / Needless Verbose代码可以快速运行开始,但由于它被凡人改变它可以变慢得多)

未使用的导入对编译器有轻微影响,但字节代码或运行时没有导入。

未使用的对象可以被优化掉,但最好避免这些因为它们几乎总是会对性能产生一些影响,但更重要的是使读取和维护代码更加困难。


20
投票

未使用的导入在运行时没有性能影响。它纯粹是命名空间机制。尽管如此,您应该始终只导入可读性所需的内容,并避免名称空间冲突,这是一个令人讨厌的问题。

除了代码可读性和代码的可维护性之外,通过整理导入可以更快地编译Java代码(但是,不可察觉),但运行时性能不受影响,因为生成的字节代码不受不整齐导入的影响。生成的字节代码保持不变。


8
投票

虽然编译的影响很小,但部署的影响可能很小。我刚刚遇到一个未使用的导入,需要一个单独的库,它成为一个maven依赖。幸运的是,没有找到进一步的传递依赖问题,但战争无缘无故。在webapp类加载器中添加一个多余的jar。


1
投票

尽管Java文件中未使用的导入不会造成任何损害,但它会不必要地增加Java源文件的长度和大小。


0
投票

是的,如果我们在java类中引用未使用的import语句,它会对性能产生影响。 Java编译器将检查import语句中提到的引用,并且在分钟级别它会影响您的类的性能。

谢谢

© www.soinside.com 2019 - 2024. All rights reserved.