web-dev-qa-db-ja.com

未使用のインポートとオブジェクトはパフォーマンスに影響しますか

Javaコードの未使用のインポートと未使用のオブジェクトがパフォーマンスに影響を与えるかどうかは疑問です。

オブジェクトが初期化されて使用されないと仮定すると、どうなりますか?そして、未使用の輸入品の費用はいくらですか

64
Dheeraj Joshi

そのよくある質問です。

ほとんどのパフォーマンスの質問と同様に、最良のアプローチは、できる限り明確でシンプルなコードを記述することです。これにより、コードの保守性が向上し、変更後も適切に機能するようになります。 (賢い/債務/不必要に冗長なコードは最初は高速に実行できますが、単なる人間によって変更されるため、はるかに遅くなる可能性があります)

未使用のインポートはコンパイラにささいな影響を与えますが、バイトコードまたは実行時にインポートはありません。

未使用のオブジェクトは最適化して取り除くことができますが、ほとんど常にパフォーマンスに影響を与えるため、これらを避けるのが最善ですが、より重要なことはコードの読み取りと保守をより困難にします。

61
Peter Lawrey

未使用のインポートは、実行時にパフォーマンスに影響しません。これは純粋に名前空間メカニズムです。それにもかかわらず、常に読みやすくするために必要なものだけをインポートし、迷惑な名前空間の衝突を避ける必要があります。

コードの読みやすさ、ひいてはコードの保守性は別として、インポートを片付けることでJavaコード(ただし、気づかない))のコンパイルが速くなる場合がありますが、生成されるバイトコードは乱雑なインポートの影響:生成されるバイトコードは変わりません。

21
Frankline

コンパイルへの影響は最小限ですが、展開への影響は悪い場合があります。私は、Mavenの依存関係となった別のライブラリを必要とする未使用のインポートに出くわしました。幸いなことに、さらなる推移的な依存関係の問題は見つかりませんでしたが、戦争は理由もなくより深刻でした。それに、webappクラスローダーに余分なjarを追加します。

8
Ossama Boughaba

Javaファイル内の未使用のインポートは害を与えませんが、Javaソースファイルの長さとサイズを不必要に増加させます。

1
asem shawkey

はい、Javaクラスで未使用のimportステートメントを参照している場合、パフォーマンスに少し影響します。 Javaコンパイラーは、importステートメントに記載されている参照をチェックし、ごくわずかなレベルでクラスのパフォーマンスに影響を与えます。

ありがとう

0
Neeraj