【发布时间】:2010-01-25 01:37:20
【问题描述】:
我在这里看到了针对特定语言的答案,关于使用跳转表优化超过 5 种情况的开关,以保证任何情况下的恒定访问时间。
C/C++ 是这样吗?
它特别适用于 gcc 吗?视觉工作室?
如果没有,按发生频率排序是否有帮助?
【问题讨论】:
-
如果 C 可以很好地优化 switch 语句,似乎会让 C 成为“Go 杀手”......
-
如果 6 个案例的散列速度更快,我会非常感到惊讶。也许是 25。当然,哈希表可能会减少访问时间的差异,但它是通过增加固定开销来实现的。
-
我相信你明白,这只有在 switch 分支实际上并没有做太多事情的情况下才重要,并且如果 PC 实际上在很长一段时间内处于 switch 中,比如 10% 或更多。否则它基本上是量子噪声。
标签: c++ c optimization switch-statement