2011-09-18 40 views
1

我正在製作一款使用nsstream與服務器進行通信的遊戲,並且該程序會響應流式傳輸的命令類型(比如對手跳轉或射擊)。如果我有說20種不同類型的命令,將: 1)20 if語句(可疑) 2)的開關 - 或 3)對應於命令類型的鍵選擇的一個NSDictionary在iPhone遊戲中響應數據流的最有效方式

是最快的如何迴應流數據?

爲2)我會說整數傳遞作爲命令類型並將數據轉換爲intValue並傳遞到開關?

和3)這是否會比交換機更快,或者查找時間和轉換是否會使速度變得不那麼快?

回答

1

我已經進入遊戲流很長一段時間。在你所建議的東西,我相信

「2)我想說的傳遞整數作爲命令類型和 數據轉換成的intValue並傳遞到開關」

將是最快的一個來處理。

1

一般來說,交換機會在這些選項中給你更好的性能。在大多數情況下,C系列編譯器能夠通過switch語句構建「跳轉表」,從而可以直接進入正確的情況,而無需進行有條件的評估。

但是要小心優化太早。交換機不一定是實現你想要做的最可讀,可擴展或可維護的方式 - 即使它可能是最好的表現。這個特定的序列可能甚至不會成爲應用程序性能的瓶頸。您在選擇實施時可能需要考慮其他因素。