命令の最適化について質問があります。オブジェクトが 2 つのステートメントで使用される場合、新しいオブジェクト参照を作成する方が速いですか、それとも両方のステートメントでオブジェクトを直接呼び出す必要がありますか?
私の質問の目的のために、オブジェクトはオブジェクトの一部Vector
です (この例は、ArrayLists のない合理化されたバージョンの Java からのものです)。次に例を示します。
AutoEvent ptr = ((AutoEvent)e_autoSequence.elementAt(currentEventIndex));
if(ptr.exitConditionMet()) {currentEventIndex++; return;}
ptr.registerSingleEvent();
AutoEvent
は問題のクラスで、e_autoSequence
AutoEventVector
オブジェクトの です。問題のAutoEvent
2 つのメソッドが含まれています:exitConditionMet()
とregisterSingleEvent()
。
したがって、このコードは次のように書くこともできます。
if(((AutoEvent)e_autoSequence.elementAt(currentEventIndex)).exitConditionMet())
{currentEventIndex++; return;}
((AutoEvent)e_autoSequence.elementAt(currentEventIndex)).registerSingleEvent();
これは上記よりも高速ですか?
キャスト プロセスが遅いことは理解しているので、この質問は実際には 2 つあります。さらに、オブジェクトをキャストしていない場合、どちらがより高度に最適化されるでしょうか?
これは、問題のオブジェクトを 2 回使用するためのものであることに注意してください。