我試過谷歌這個,但沒有運氣。開關盒順序是否影響速度?
我有一個非常大的開關,有些情況是明顯比其他人更普遍。
所以我想知道訂單是否真的保持原樣,並且「較低」的情況在「較低」之前得到測試,因此被評估得更快。
我想保留我的訂單,但如果它傷害速度,那麼重新排序分支將是一個好主意。
爲了說明:
switch (mark) {
case Ion.NULL:
return null;
case Ion.BOOLEAN:
return readBoolean();
case Ion.BYTE:
return readByte();
case Ion.CHAR:
return readChar();
case Ion.SHORT:
return readShort();
case Ion.INT:
return readInt();
case Ion.LONG:
return readLong();
case Ion.FLOAT:
return readFloat();
case Ion.DOUBLE:
return readDouble();
case Ion.STRING:
return readString();
case Ion.BOOLEAN_ARRAY:
return readBooleans();
case Ion.BYTE_ARRAY:
return readBytes();
case Ion.CHAR_ARRAY:
return readChars();
case Ion.SHORT_ARRAY:
return readShorts();
case Ion.INT_ARRAY:
return readInts();
case Ion.LONG_ARRAY:
return readLongs();
case Ion.FLOAT_ARRAY:
return readFloats();
case Ion.DOUBLE_ARRAY:
return readDoubles();
case Ion.STRING_ARRAY:
return readStrings();
default:
throw new CorruptedDataException("Invalid mark: " + mark);
}
這不是一個瓶頸,而且我實際上已經對它進行了描述。我只是想知道,這是否真的影響了執行速度 - 出於好奇,非常多。 – MightyPork
我很確定訂單沒有任何區別。 JVM並沒有按照大的順序來處理這些案例。它更像是一種「仰望下一步去哪裏」的事情。 –
你試過了嗎? –