在iphone游戏中响应数据流的最有效方式

时间:2011-09-18 17:18:18

标签: iphone objective-c

我正在制作一款使用nsstream与服务器通信的游戏,程序会响应流的命令类型(比如对手跳跃或射击)。如果我说20种不同类型的命令,会: 1)20个陈述(可疑) 2)一个开关 - 要么 3)与命令类型的键

对应的选择器的NSDictionary

是响应流数据的最快方式吗?

for 2)我会说将整数作为命令类型传入并将数据转换为intValue并传入交换机吗?

和3)这会比开关更快,还是查找时间和转换会使它不那么快?

2 个答案:

答案 0 :(得分:1)

一般来说,一个开关可以让您在这些选项中获得更好的性能。在大多数情况下,C系列编译器能够从switch语句构建一个“跳转表”,这使得它可以直接进入正确的情况,甚至无需进行条件评估。

但是要过早地进行优化。交换机不一定是实现您想要执行的操作的最易读,可扩展或可维护的方式 - 即使它可能是最佳性能。这个特定的序列甚至可能不是您应用程序性能的瓶颈。在选择实施时,您可能需要考虑其他这些因素。

答案 1 :(得分:1)

我已经进入游戏流很长一段时间了。在你提出的建议中,我相信

  

“2)我会说整数作为命令类型传递并转换   将数据转换为intValue并传入交换机“

将是最快的一个。