2011-09-18 41 views
1

我正在制作一款使用nsstream与服务器进行通信的游戏,并且该程序会响应流式传输的命令类型(比如对手跳转或射击)。如果我有说20种不同类型的命令,将: 1)20 if语句(可疑) 2)的开关 - 或 3)对应于命令类型的键选择的一个NSDictionary在iPhone游戏中响应数据流的最有效方式

是最快的如何回应流数据?

为2)我会说整数传递作为命令类型并将数据转换为intValue并传递到开关?

和3)这是否会比交换机更快,或者查找时间和转换是否会使速度变得不那么快?

回答

1

我已经进入游戏流很长一段时间。在你所建议的东西,我相信

“2)我想说的传递整数作为命令类型和 数据转换成的intValue并传递到开关”

将是最快的一个来处理。

1

一般来说,交换机会在这些选项中给你更好的性能。在大多数情况下,C系列编译器能够通过switch语句构建“跳转表”,从而可以直接进入正确的情况,而无需进行有条件的评估。

但是要小心优化太早。交换机不一定是实现你想要做的最可读,可扩展或可维护的方式 - 即使它可能是最好的表现。这个特定的序列可能甚至不会成为应用程序性能的瓶颈。您在选择实施时可能需要考虑其他因素。