|
|
Title | Compare the speeds of IIf and If Then statements |
Keywords | IIf, If Then, speed, performance |
Categories | Software Engineering, Tips and Tricks |
|
|
When you click Go, the program runs timed loops comparing IIf and If Then. In my tests, IIf takes more than 6 times as long as If Then!
IIf is also harder to read. Most of the cost of a large project is in debugging and maintenance so anything that causes extra confusion is bad.
|
|
Private Sub cmdGo_Click()
Dim num_trials As Long
Dim i As Long
Dim start_time As Single
Dim stop_time As Single
Dim x As Integer
num_trials = CLng(txtNumTrials.Text)
lblIfThen.Caption = ""
lblIIf.Caption = ""
Screen.MousePointer = vbHourglass
DoEvents
start_time = Timer
For i = 1 To num_trials
If i = 0 Then
x = 1
Else
x = 2
End If
Next i
stop_time = Timer
lblIfThen.Caption = Format$(stop_time - start_time, _
"0.0000") & " seconds"
DoEvents
start_time = Timer
For i = 1 To num_trials
x = IIf(i = 0, 1, 2)
Next i
stop_time = Timer
lblIIF.Caption = Format$(stop_time - start_time, _
"0.0000") & " seconds"
Screen.MousePointer = vbDefault
End Sub
|
|
My book Bug Proofing Visual Basic gives lots of other tips for reducing the number of bugs in a Visual Basic program.
|
|
|
|
|
|