比較の結果を再計算するのではなく、保存することが理にかなっている場合 (使用可能なメモリ領域を無視する場合) をしっかりと理解したいと思います。ストレージによって発生する時間コストを正当化するための転換点は何ですか? 比較回数は 2 回、3 回、または 4 回ですか。もっと?
たとえば、この特定のケースでは、どのオプションが (一般的に) 速度の面で優れているでしょうか?
オプション1:
int result = id.compareTo(node.id);
return result > 0 ? 1 : result < 0 ? -1 : 0;
オプション 2:
return id.compareTo(node.id) > 0 ? 1 : id.compareTo(node.id) < 0 ? -1 : 0;
私は自分自身の質問に答えるために 2 つのオプションを自分でプロファイリングしようとしましたが、この種のパフォーマンス テストの経験があまりないため、より経験のある人からより決定的な回答を得たいと思っています。関連する理論的要素をよりよく理解する。
大したことではなく、ほとんどの場合、違いはごくわずかであることはわかっています。しかし、私は完璧主義者で、この特定の問題を解決して、自分の人生をやり遂げたいと思っています (笑)。
さらに、将来遭遇する可能性のある同様の状況に関して、違いが非常に大きくなる可能性がある場合(比較またはメモリ割り当てのコストが発生しない場合など)について、答えが啓発的であることが証明される可能性が高いと思いますパフォーマンスに関する実際の問題を引き起こすほど複雑です)。
回答は、他の言語ではなく、Java でのプログラミングに関連する必要があります。
すでに数回言及したことは知っていますが、回答は速度の違いだけに集中してください。コードを記述する際に、他の多くの要因を考慮に入れることができ、また考慮に入れる必要があることは十分承知していますが、ここでは、どれがより速いかについての単純明快な議論をしたいと思います。