VB.NET选择案例编译器优化?

时间:2010-02-04 09:19:00

标签: vb.net compiler-construction select logic compiler-optimization

VB.NET 2008编译器是否有选择地优化Select Case Statements?

例如,可以将具有足够数量的整数个案的Select Case语句组织为二进制搜索。

我问这个是因为我很好奇我是否应该选择一个Select Case代替If具有多个Else的语句If如果要比较整数或其他基本数据类型。

2 个答案:

答案 0 :(得分:2)

一般而言,除了这种性能微优化之外,您应该担心代码可读性和可维护性。

除非此开关位于正在执行1000(数百万?)次的循环内,否则这不太可能成为您应用的性能瓶颈。

做出决定并坚持下去以保持一致性。通常,在分析性能瓶颈的位置之前,不要对性能进行调优。

另见this question

答案 1 :(得分:1)

具有40个选项的

Select Case比40个ElseIf语句的字符串快10倍以上。这比使用二进制搜索所期望的更多改进。我猜想一个简单的整数Select Case使用与计算的goto语句相当的现代机器代码 - 它编译使得它根据整数的值直接分支到正确的“case”。

我认为Select Case是最合适的。