我有一个关于指令优化的问题。如果要在两个语句中使用一个对象,创建一个新的对象引用会更快还是应该在两个语句中直接调用该对象?
就我的问题而言,该对象是对象的一部分Vector
(此示例来自没有 ArrayLists 的简化版 Java)。这是一个例子:
AutoEvent ptr = ((AutoEvent)e_autoSequence.elementAt(currentEventIndex));
if(ptr.exitConditionMet()) {currentEventIndex++; return;}
ptr.registerSingleEvent();
AutoEvent
是有问题的类,e_autoSequence
是Vector
AutoEvent 对象的。包含有问题的AutoEvent
两种方法:exitConditionMet()
和registerSingleEvent()
.
因此,此代码可以交替编写为:
if(((AutoEvent)e_autoSequence.elementAt(currentEventIndex)).exitConditionMet())
{currentEventIndex++; return;}
((AutoEvent)e_autoSequence.elementAt(currentEventIndex)).registerSingleEvent();
这比上面的快吗?
我知道铸造过程很慢,所以这个问题实际上是双重的:另外,如果我不铸造对象,哪个会更优化?
请记住,这仅用于所讨论对象的两种用途。