私は、カスタムオブジェクトを使用するJavaプロジェクトを作成しています。これは主にdouble変数で構成されています。配列のパフォーマンスと独立変数のパフォーマンスを得る方法
プロジェクトが進化したので、smallObjectのすべての変数が4要素の配列になる必要がありました。つまり、double変数は、double型の配列となりました。
bigObjectを使用するプロセスは、smallObjectとまったく同じです。唯一の違いは、要素番号が含まれているため、smallObject.a = 4はbigObject.a [2] = 4になります。
私は配列にアクセスするたびに、私が必要とする要素(検索する必要はありません)を正確に定義しているので、パフォーマンスはほぼ同じになるはずですが、パフォーマンスは2〜3の係数。これらのオブジェクトは、最大3百万要素まで成長することができるarraylistsとキューで使用されます。
パフォーマンスが低下することは予想されますか?この問題を回避するにはどうすればよいですか?個々の変数(a [4]はa1、a2、a3、a4になります)を使うことを考えていましたが、これはそれぞれが正しい変数にアクセスしてコードを読むことができないように、
お時間をいただきありがとうございます。
アレイへのアクセスには常に境界チェックが必要であり、パフォーマンスヒットが重大になる可能性があります。 – Kayaman
コードスニペットが回答に役立つ可能性があります。 –
境界チェックや(おそらく多くの)データの局所性が悪い可能性があります。個々の変数で配列を置き換えるというハックはおそらく助けになりますが、より簡単な方法があります。 ... – maaartinus