VB.NET 2008编译器是否有选择地优化Select Case Statements?VB.NET Select Case编译器优化?
例如,具有足够数量的整数个案的Select Case Statement可以组织为二分搜索。
我问这个,因为我很好奇我是否应该选择一个Select Case来代替If语句与多个Else If如果要比较整数或其他基本数据类型。
VB.NET 2008编译器是否有选择地优化Select Case Statements?VB.NET Select Case编译器优化?
例如,具有足够数量的整数个案的Select Case Statement可以组织为二分搜索。
我问这个,因为我很好奇我是否应该选择一个Select Case来代替If语句与多个Else If如果要比较整数或其他基本数据类型。
Select Case
有40个选项比一串40 ElseIf
语句快10倍以上。这比你用二分查找期望得到的改进更大。我猜想一个简单的整数Select Case
可以使用计算goto语句的现代机器代码等价物 - 编译它以便它根据整数值直接分支到合适的“case”。
我认为Select Case
是一个去。
一般来说,您应该担心代码的可读性和可维护性,而不仅仅是这种性能微优化。
除非此开关位于正在执行1000次(数百万次)的循环内,否则这不太可能是您的应用程序的性能瓶颈。
做出决定并坚持一致。一般来说,除非您分析了性能瓶颈,否则不要调优代码。请参阅this question。