私は最近、Javaプログラムをコンパイルした後、クラス/メソッドが静的にリンクされ、メソッド名が実行時に影響を与えないことを知りました。comeクラスからメソッドを呼び出すのではなく、別のクラスのメソッドを呼び出すことによって、どのくらいのオーバーヘッドが作成されますか?
質問:同じクラスのメソッドを呼び出すのではなく、別のクラスのメソッドを呼び出すと、どのくらいのオーバーヘッドが作成されますか?
私は自分のバージョンの四角形であるBoundsクラスを持っています。私は基本的に描画情報を保持するエンティティである別のクラスを持っています。現在、私は、このEntityクラスのメソッドを持っています。このメソッドは、現在のBoundsを、それ自身のクラスのポイントのリストから生成し、新しい境界を返します。しかし、私はこのメソッドをBoundsクラスに移動し、パラメータとしてポイントのリストを取得し、Boundsを返すようにしたかったのです。このメソッドをBoundsクラスに移動して、このメソッドがここに属しているとは思わないので、Entityクラスをクリーンアップしたいだけです。いくつかの方法でコードを更新する必要があります。現在の変換マトリックスですべてのメソッドをこの境界を更新する必要があるので、My Entityクラスは境界オブジェクトを保持しません。マウス選択のために必要なときに、このフレームを生成したくありません。私の推測では、ローカルメソッドが高速になります。
Bound b = getBounds(); // This would have to change to the below
Bound b = Bounds.getBounds(this.listOfPoints); // This is a List<Point>
あなたのプログラムは、あなたがそれを気にする必要があるほど "批評家"ですか? –
このタイプのものが重要な(ほとんど決してない)プログラムを書くなら、あなたはJavaでプログラムしないでください。このような質問は、Javaではほとんど無意味です。 – Radiodef
実際はそうではありません。私はちょうどその質問を考えて、パフォーマンスに影響があるかどうかを知りたいと思っていました。私は未来のベストプラクティスを見つけようとすることに間違ったことは何も見ません。 –