Objective c 大开关语句和效率

Objective c 大开关语句和效率,objective-c,switch-statement,Objective C,Switch Statement,我要休息一天,与内存管理和opengl es进行斗争,以提高效率。我们正在开发的应用程序的一部分可以访问大量的数据表。这些数据主要以switch语句的形式提供给我们 总之,我有四个switch语句,每个语句都有2000多个案例,预计会增长。获取这些信息的时间有多短?对于Objective-C编译器来说,现在是否值得寻找较低的优化结果,或者这是一个很大的禁忌?切换情况通常非常快,因为它们只进行整数比较 如果您真的想进行微观优化,某些类型的数据可以存储在C数组中,以便使用指针算法进行极快的查找。只有

我要休息一天,与内存管理和opengl es进行斗争,以提高效率。我们正在开发的应用程序的一部分可以访问大量的数据表。这些数据主要以switch语句的形式提供给我们


总之,我有四个switch语句,每个语句都有2000多个案例,预计会增长。获取这些信息的时间有多短?对于Objective-C编译器来说,现在是否值得寻找较低的优化结果,或者这是一个很大的禁忌?

切换情况通常非常快,因为它们只进行整数比较

如果您真的想进行微观优化,某些类型的数据可以存储在C数组中,以便使用指针算法进行极快的查找。只有当你真的需要额外的速度指针算法时,你才应该研究这个问题,因为它涉及到很多潜在的错误,其中很多可能很难调试


真正的问题是:你做过任何分析吗?Shark是一个非常有效的工具,当它涉及到iOS应用程序的时间分析时——使用它,看看你的switch case代码上花费了多少执行时间。如果小于5-10%,甚至考虑优化都没有意义。

通常
switch
语句非常有效,它们最终被编译成一个快速访问的跳转表。但这并不意味着您的代码非常易于维护!它似乎不到10%,我认为大约7%,但我们称它为100000次,每个应用程序产生的工件(我们几乎一直在一个接一个地生产这些产品。这并不是/似乎/成为瓶颈,但我觉得这已经够麻烦的了。正如其他人所说的,首先对应用程序进行概要分析。不要仅仅为了重构而重构。重构它,因为你有一个令人信服的理由加入代码,修复缺陷。尽管没有重构的前提是在不改变代码行为的情况下改变代码,每一次重构都有可能引入缺陷。我会等到有必要重构代码时再进行重构。如果代码没有损坏,就不要修复它。