大型交换机语句和效率

时间:2010-09-09 10:40:02

标签: objective-c switch-statement

我花了一天的时间来打击内存管理和opengl-es以试图提高效率。我们正在努力的应用程序的一部分访问大量数据表。这些数据主要是以switch语句的形式提供给我们的。

总之,我有四个switch语句,每个都有2000多个案例,预计会增长。这些访问时间有多差?现在值得寻找低挂优化水果还是Objective-C编译器的大禁忌?

1 个答案:

答案 0 :(得分:1)

切换案例通常非常快,因为它们只进行整数比较。

如果您真的想进行微优化,可以将某些类型的数据存储在C阵列中,以便使用指针算法进行极快的查找。如果真的需要额外的速度,那么你应该只考虑这一点 - 指针算法涉及很多潜在的错误,其中很多都很难调试。

真正的问题是:你做过任何剖析吗?在iOS应用程序的时间分析中,Shark是一个非常有效的工具 - 使用它,并查看在您的交换机案例代码上花费了多少执行时间。如果它低于5-10%,即使考虑优化也没有意义。