VB.NET Select Case 编译器优化?

问题描述 投票:0回答:2

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

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

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

vb.net select logic compiler-optimization
2个回答
2
投票

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

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

做出决定并坚持下去,以保持一致性。一般来说,在分析性能瓶颈所在之前不要对代码进行性能调整。

另请参阅这个问题


1
投票
具有 40 个选择的

Select Case
比一串 40 个
ElseIf
语句快 10 倍以上。这比您期望通过二分搜索获得的改进要大。我猜想一个简单的整数
Select Case
使用与计算的 goto 语句等效的现代机器代码——它进行编译,以便根据整数的值直接分支到正确的“case”。

我认为

Select Case
是最合适的选择。

© www.soinside.com 2019 - 2024. All rights reserved.