|
-
May 23rd, 2025, 07:07 PM
#11
Re: Getting the ball rolling. Which VB6 projects are you working on?
 Originally Posted by jpbro
Thanks, I'll give it a try if I get bored this weekend. If I get around to it, I'll time it and post the results.
Wow, unless I've done something stupid, I get >10x improvement using a On X Goto/JumpTable approach vs. Select Case
Code:
Sub Test(Optional PrintToForm As Form)
Const c_MaxTestLoops = 100000
Dim ii As Long
Dim jj As Long
Dim s As Currency
Dim y() As Currency
Randomize
ReDim y(200)
For ii = 0 To 200
y(ii) = Int(Rnd * 201)
Next
New_c.Timing True
For jj = 1 To c_MaxTestLoops
For ii = LBound(y) To UBound(y)
Select Case y(ii)
Case 0
s = s + y(ii)
Case 1
s = s + y(ii)
Case 2
s = s + y(ii)
Case 3
s = s + y(ii)
Case 4
s = s + y(ii)
Case 5
s = s + y(ii)
Case 6
s = s + y(ii)
Case 7
s = s + y(ii)
Case 8
s = s + y(ii)
Case 9
s = s + y(ii)
Case 10
s = s + y(ii)
Case 11
s = s + y(ii)
Case 12
s = s + y(ii)
Case 13
s = s + y(ii)
Case 14
s = s + y(ii)
Case 15
s = s + y(ii)
Case 16
s = s + y(ii)
Case 17
s = s + y(ii)
Case 18
s = s + y(ii)
Case 19
s = s + y(ii)
Case 20
s = s + y(ii)
Case 21
s = s + y(ii)
Case 22
s = s + y(ii)
Case 23
s = s + y(ii)
Case 24
s = s + y(ii)
Case 25
s = s + y(ii)
Case 26
s = s + y(ii)
Case 27
s = s + y(ii)
Case 28
s = s + y(ii)
Case 29
s = s + y(ii)
Case 30
s = s + y(ii)
Case 31
s = s + y(ii)
Case 32
s = s + y(ii)
Case 33
s = s + y(ii)
Case 34
s = s + y(ii)
Case 35
s = s + y(ii)
Case 36
s = s + y(ii)
Case 37
s = s + y(ii)
Case 38
s = s + y(ii)
Case 39
s = s + y(ii)
Case 40
s = s + y(ii)
Case 41
s = s + y(ii)
Case 42
s = s + y(ii)
Case 43
s = s + y(ii)
Case 44
s = s + y(ii)
Case 45
s = s + y(ii)
Case 46
s = s + y(ii)
Case 47
s = s + y(ii)
Case 48
s = s + y(ii)
Case 49
s = s + y(ii)
Case 50
s = s + y(ii)
Case 51
s = s + y(ii)
Case 52
s = s + y(ii)
Case 53
s = s + y(ii)
Case 54
s = s + y(ii)
Case 55
s = s + y(ii)
Case 56
s = s + y(ii)
Case 57
s = s + y(ii)
Case 58
s = s + y(ii)
Case 59
s = s + y(ii)
Case 60
s = s + y(ii)
Case 61
s = s + y(ii)
Case 62
s = s + y(ii)
Case 63
s = s + y(ii)
Case 64
s = s + y(ii)
Case 65
s = s + y(ii)
Case 66
s = s + y(ii)
Case 67
s = s + y(ii)
Case 68
s = s + y(ii)
Case 69
s = s + y(ii)
Case 70
s = s + y(ii)
Case 71
s = s + y(ii)
Case 72
s = s + y(ii)
Case 73
s = s + y(ii)
Case 74
s = s + y(ii)
Case 75
s = s + y(ii)
Case 76
s = s + y(ii)
Case 77
s = s + y(ii)
Case 78
s = s + y(ii)
Case 79
s = s + y(ii)
Case 80
s = s + y(ii)
Case 81
s = s + y(ii)
Case 82
s = s + y(ii)
Case 83
s = s + y(ii)
Case 84
s = s + y(ii)
Case 85
s = s + y(ii)
Case 86
s = s + y(ii)
Case 87
s = s + y(ii)
Case 88
s = s + y(ii)
Case 89
s = s + y(ii)
Case 90
s = s + y(ii)
Case 91
s = s + y(ii)
Case 92
s = s + y(ii)
Case 93
s = s + y(ii)
Case 94
s = s + y(ii)
Case 95
s = s + y(ii)
Case 96
s = s + y(ii)
Case 97
s = s + y(ii)
Case 98
s = s + y(ii)
Case 99
s = s + y(ii)
Case 100
s = s + y(ii)
Case 101
s = s + y(ii)
Case 102
s = s + y(ii)
Case 103
s = s + y(ii)
Case 104
s = s + y(ii)
Case 105
s = s + y(ii)
Case 106
s = s + y(ii)
Case 107
s = s + y(ii)
Case 108
s = s + y(ii)
Case 109
s = s + y(ii)
Case 110
s = s + y(ii)
Case 111
s = s + y(ii)
Case 112
s = s + y(ii)
Case 113
s = s + y(ii)
Case 114
s = s + y(ii)
Case 115
s = s + y(ii)
Case 116
s = s + y(ii)
Case 117
s = s + y(ii)
Case 118
s = s + y(ii)
Case 119
s = s + y(ii)
Case 120
s = s + y(ii)
Case 121
s = s + y(ii)
Case 122
s = s + y(ii)
Case 123
s = s + y(ii)
Case 124
s = s + y(ii)
Case 125
s = s + y(ii)
Case 126
s = s + y(ii)
Case 127
s = s + y(ii)
Case 128
s = s + y(ii)
Case 129
s = s + y(ii)
Case 130
s = s + y(ii)
Case 131
s = s + y(ii)
Case 132
s = s + y(ii)
Case 133
s = s + y(ii)
Case 134
s = s + y(ii)
Case 135
s = s + y(ii)
Case 136
s = s + y(ii)
Case 137
s = s + y(ii)
Case 138
s = s + y(ii)
Case 139
s = s + y(ii)
Case 140
s = s + y(ii)
Case 141
s = s + y(ii)
Case 142
s = s + y(ii)
Case 143
s = s + y(ii)
Case 144
s = s + y(ii)
Case 145
s = s + y(ii)
Case 146
s = s + y(ii)
Case 147
s = s + y(ii)
Case 148
s = s + y(ii)
Case 149
s = s + y(ii)
Case 150
s = s + y(ii)
Case 151
s = s + y(ii)
Case 152
s = s + y(ii)
Case 153
s = s + y(ii)
Case 154
s = s + y(ii)
Case 155
s = s + y(ii)
Case 156
s = s + y(ii)
Case 157
s = s + y(ii)
Case 158
s = s + y(ii)
Case 159
s = s + y(ii)
Case 160
s = s + y(ii)
Case 161
s = s + y(ii)
Case 162
s = s + y(ii)
Case 163
s = s + y(ii)
Case 164
s = s + y(ii)
Case 165
s = s + y(ii)
Case 166
s = s + y(ii)
Case 167
s = s + y(ii)
Case 168
s = s + y(ii)
Case 169
s = s + y(ii)
Case 170
s = s + y(ii)
Case 171
s = s + y(ii)
Case 172
s = s + y(ii)
Case 173
s = s + y(ii)
Case 174
s = s + y(ii)
Case 175
s = s + y(ii)
Case 176
s = s + y(ii)
Case 177
s = s + y(ii)
Case 178
s = s + y(ii)
Case 179
s = s + y(ii)
Case 180
s = s + y(ii)
Case 181
s = s + y(ii)
Case 182
s = s + y(ii)
Case 183
s = s + y(ii)
Case 184
s = s + y(ii)
Case 185
s = s + y(ii)
Case 186
s = s + y(ii)
Case 187
s = s + y(ii)
Case 188
s = s + y(ii)
Case 189
s = s + y(ii)
Case 190
s = s + y(ii)
Case 191
s = s + y(ii)
Case 192
s = s + y(ii)
Case 193
s = s + y(ii)
Case 194
s = s + y(ii)
Case 195
s = s + y(ii)
Case 196
s = s + y(ii)
Case 197
s = s + y(ii)
Case 198
s = s + y(ii)
Case 199
s = s + y(ii)
Case 200
s = s + y(ii)
End Select
Next
Next
If PrintToForm Is Nothing Then
Debug.Print "S: " & s
Debug.Print "Select..Case Timing: " & New_c.Timing
Else
PrintToForm.Print "S: " & s
PrintToForm.Print "Select..Case Timing: " & New_c.Timing
End If
s = 0
New_c.Timing True
For jj = 1 To c_MaxTestLoops
For ii = LBound(y) To UBound(y)
On y(ii) GoTo lbl0, lbl1, lbl2, lbl3, lbl4, lbl5, lbl6, lbl7, lbl8, lbl9, lbl10, _
lbl11, lbl12, lbl13, lbl14, lbl15, lbl16, lbl17, lbl18, lbl19, lbl20, _
lbl21, lbl22, lbl23, lbl24, lbl25, lbl26, lbl27, lbl28, lbl29, lbl30, _
lbl31, lbl32, lbl33, lbl34, lbl35, lbl36, lbl37, lbl38, lbl39, lbl40, _
lbl41, lbl42, lbl43, lbl44, lbl45, lbl46, lbl47, lbl48, lbl49, lbl50, _
lbl51, lbl52, lbl53, lbl54, lbl55, lbl56, lbl57, lbl58, lbl59, lbl60, _
lbl61, lbl62, lbl63, lbl64, lbl65, lbl66, lbl67, lbl68, lbl69, lbl70, _
lbl71, lbl72, lbl73, lbl74, lbl75, lbl76, lbl77, lbl78, lbl79, lbl80, _
lbl81, lbl82, lbl83, lbl84, lbl85, lbl86, lbl87, lbl88, lbl89, lbl90, _
lbl91, lbl92, lbl93, lbl94, lbl95, lbl96, lbl97, lbl98, lbl99, lbl100, _
lbl101, lbl102, lbl103, lbl104, lbl105, lbl106, lbl107, lbl108, lbl109, lbl110, _
lbl111, lbl112, lbl113, lbl114, lbl115, lbl116, lbl117, lbl118, lbl119, lbl120, _
lbl121, lbl122, lbl123, lbl124, lbl125, lbl126, lbl127, lbl128, lbl129, lbl130, _
lbl131, lbl132, lbl133, lbl134, lbl135, lbl136, lbl137, lbl138, lbl139, lbl140, _
lbl141, lbl142, lbl143, lbl144, lbl145, lbl146, lbl147, lbl148, lbl149, lbl150, _
lbl151, lbl152, lbl153, lbl154, lbl155, lbl156, lbl157, lbl158, lbl159, lbl160, _
lbl161, lbl162, lbl163, lbl164, lbl165, lbl166, lbl167, lbl168, lbl169, lbl170, _
lbl171, lbl172, lbl173, lbl174, lbl175, lbl176, lbl177, lbl178, lbl179, lbl180, _
lbl181, lbl182, lbl183, lbl184, lbl185, lbl186, lbl187, lbl188, lbl189, lbl190, _
lbl191, lbl192, lbl193, lbl194, lbl195, lbl196, lbl197, lbl198, lbl199, lbl200
lbl0: s = s + y(ii): GoTo Done
lbl1: s = s + y(ii): GoTo Done
lbl2: s = s + y(ii): GoTo Done
lbl3: s = s + y(ii): GoTo Done
lbl4: s = s + y(ii): GoTo Done
lbl5: s = s + y(ii): GoTo Done
lbl6: s = s + y(ii): GoTo Done
lbl7: s = s + y(ii): GoTo Done
lbl8: s = s + y(ii): GoTo Done
lbl9: s = s + y(ii): GoTo Done
lbl10: s = s + y(ii): GoTo Done
lbl11: s = s + y(ii): GoTo Done
lbl12: s = s + y(ii): GoTo Done
lbl13: s = s + y(ii): GoTo Done
lbl14: s = s + y(ii): GoTo Done
lbl15: s = s + y(ii): GoTo Done
lbl16: s = s + y(ii): GoTo Done
lbl17: s = s + y(ii): GoTo Done
lbl18: s = s + y(ii): GoTo Done
lbl19: s = s + y(ii): GoTo Done
lbl20: s = s + y(ii): GoTo Done
lbl21: s = s + y(ii): GoTo Done
lbl22: s = s + y(ii): GoTo Done
lbl23: s = s + y(ii): GoTo Done
lbl24: s = s + y(ii): GoTo Done
lbl25: s = s + y(ii): GoTo Done
lbl26: s = s + y(ii): GoTo Done
lbl27: s = s + y(ii): GoTo Done
lbl28: s = s + y(ii): GoTo Done
lbl29: s = s + y(ii): GoTo Done
lbl30: s = s + y(ii): GoTo Done
lbl31: s = s + y(ii): GoTo Done
lbl32: s = s + y(ii): GoTo Done
lbl33: s = s + y(ii): GoTo Done
lbl34: s = s + y(ii): GoTo Done
lbl35: s = s + y(ii): GoTo Done
lbl36: s = s + y(ii): GoTo Done
lbl37: s = s + y(ii): GoTo Done
lbl38: s = s + y(ii): GoTo Done
lbl39: s = s + y(ii): GoTo Done
lbl40: s = s + y(ii): GoTo Done
lbl41: s = s + y(ii): GoTo Done
lbl42: s = s + y(ii): GoTo Done
lbl43: s = s + y(ii): GoTo Done
lbl44: s = s + y(ii): GoTo Done
lbl45: s = s + y(ii): GoTo Done
lbl46: s = s + y(ii): GoTo Done
lbl47: s = s + y(ii): GoTo Done
lbl48: s = s + y(ii): GoTo Done
lbl49: s = s + y(ii): GoTo Done
lbl50: s = s + y(ii): GoTo Done
lbl51: s = s + y(ii): GoTo Done
lbl52: s = s + y(ii): GoTo Done
lbl53: s = s + y(ii): GoTo Done
lbl54: s = s + y(ii): GoTo Done
lbl55: s = s + y(ii): GoTo Done
lbl56: s = s + y(ii): GoTo Done
lbl57: s = s + y(ii): GoTo Done
lbl58: s = s + y(ii): GoTo Done
lbl59: s = s + y(ii): GoTo Done
lbl60: s = s + y(ii): GoTo Done
lbl61: s = s + y(ii): GoTo Done
lbl62: s = s + y(ii): GoTo Done
lbl63: s = s + y(ii): GoTo Done
lbl64: s = s + y(ii): GoTo Done
lbl65: s = s + y(ii): GoTo Done
lbl66: s = s + y(ii): GoTo Done
lbl67: s = s + y(ii): GoTo Done
lbl68: s = s + y(ii): GoTo Done
lbl69: s = s + y(ii): GoTo Done
lbl70: s = s + y(ii): GoTo Done
lbl71: s = s + y(ii): GoTo Done
lbl72: s = s + y(ii): GoTo Done
lbl73: s = s + y(ii): GoTo Done
lbl74: s = s + y(ii): GoTo Done
lbl75: s = s + y(ii): GoTo Done
lbl76: s = s + y(ii): GoTo Done
lbl77: s = s + y(ii): GoTo Done
lbl78: s = s + y(ii): GoTo Done
lbl79: s = s + y(ii): GoTo Done
lbl80: s = s + y(ii): GoTo Done
lbl81: s = s + y(ii): GoTo Done
lbl82: s = s + y(ii): GoTo Done
lbl83: s = s + y(ii): GoTo Done
lbl84: s = s + y(ii): GoTo Done
lbl85: s = s + y(ii): GoTo Done
lbl86: s = s + y(ii): GoTo Done
lbl87: s = s + y(ii): GoTo Done
lbl88: s = s + y(ii): GoTo Done
lbl89: s = s + y(ii): GoTo Done
lbl90: s = s + y(ii): GoTo Done
lbl91: s = s + y(ii): GoTo Done
lbl92: s = s + y(ii): GoTo Done
lbl93: s = s + y(ii): GoTo Done
lbl94: s = s + y(ii): GoTo Done
lbl95: s = s + y(ii): GoTo Done
lbl96: s = s + y(ii): GoTo Done
lbl97: s = s + y(ii): GoTo Done
lbl98: s = s + y(ii): GoTo Done
lbl99: s = s + y(ii): GoTo Done
lbl100: s = s + y(ii): GoTo Done
lbl101: s = s + y(ii): GoTo Done
lbl102: s = s + y(ii): GoTo Done
lbl103: s = s + y(ii): GoTo Done
lbl104: s = s + y(ii): GoTo Done
lbl105: s = s + y(ii): GoTo Done
lbl106: s = s + y(ii): GoTo Done
lbl107: s = s + y(ii): GoTo Done
lbl108: s = s + y(ii): GoTo Done
lbl109: s = s + y(ii): GoTo Done
lbl110: s = s + y(ii): GoTo Done
lbl111: s = s + y(ii): GoTo Done
lbl112: s = s + y(ii): GoTo Done
lbl113: s = s + y(ii): GoTo Done
lbl114: s = s + y(ii): GoTo Done
lbl115: s = s + y(ii): GoTo Done
lbl116: s = s + y(ii): GoTo Done
lbl117: s = s + y(ii): GoTo Done
lbl118: s = s + y(ii): GoTo Done
lbl119: s = s + y(ii): GoTo Done
lbl120: s = s + y(ii): GoTo Done
lbl121: s = s + y(ii): GoTo Done
lbl122: s = s + y(ii): GoTo Done
lbl123: s = s + y(ii): GoTo Done
lbl124: s = s + y(ii): GoTo Done
lbl125: s = s + y(ii): GoTo Done
lbl126: s = s + y(ii): GoTo Done
lbl127: s = s + y(ii): GoTo Done
lbl128: s = s + y(ii): GoTo Done
lbl129: s = s + y(ii): GoTo Done
lbl130: s = s + y(ii): GoTo Done
lbl131: s = s + y(ii): GoTo Done
lbl132: s = s + y(ii): GoTo Done
lbl133: s = s + y(ii): GoTo Done
lbl134: s = s + y(ii): GoTo Done
lbl135: s = s + y(ii): GoTo Done
lbl136: s = s + y(ii): GoTo Done
lbl137: s = s + y(ii): GoTo Done
lbl138: s = s + y(ii): GoTo Done
lbl139: s = s + y(ii): GoTo Done
lbl140: s = s + y(ii): GoTo Done
lbl141: s = s + y(ii): GoTo Done
lbl142: s = s + y(ii): GoTo Done
lbl143: s = s + y(ii): GoTo Done
lbl144: s = s + y(ii): GoTo Done
lbl145: s = s + y(ii): GoTo Done
lbl146: s = s + y(ii): GoTo Done
lbl147: s = s + y(ii): GoTo Done
lbl148: s = s + y(ii): GoTo Done
lbl149: s = s + y(ii): GoTo Done
lbl150: s = s + y(ii): GoTo Done
lbl151: s = s + y(ii): GoTo Done
lbl152: s = s + y(ii): GoTo Done
lbl153: s = s + y(ii): GoTo Done
lbl154: s = s + y(ii): GoTo Done
lbl155: s = s + y(ii): GoTo Done
lbl156: s = s + y(ii): GoTo Done
lbl157: s = s + y(ii): GoTo Done
lbl158: s = s + y(ii): GoTo Done
lbl159: s = s + y(ii): GoTo Done
lbl160: s = s + y(ii): GoTo Done
lbl161: s = s + y(ii): GoTo Done
lbl162: s = s + y(ii): GoTo Done
lbl163: s = s + y(ii): GoTo Done
lbl164: s = s + y(ii): GoTo Done
lbl165: s = s + y(ii): GoTo Done
lbl166: s = s + y(ii): GoTo Done
lbl167: s = s + y(ii): GoTo Done
lbl168: s = s + y(ii): GoTo Done
lbl169: s = s + y(ii): GoTo Done
lbl170: s = s + y(ii): GoTo Done
lbl171: s = s + y(ii): GoTo Done
lbl172: s = s + y(ii): GoTo Done
lbl173: s = s + y(ii): GoTo Done
lbl174: s = s + y(ii): GoTo Done
lbl175: s = s + y(ii): GoTo Done
lbl176: s = s + y(ii): GoTo Done
lbl177: s = s + y(ii): GoTo Done
lbl178: s = s + y(ii): GoTo Done
lbl179: s = s + y(ii): GoTo Done
lbl180: s = s + y(ii): GoTo Done
lbl181: s = s + y(ii): GoTo Done
lbl182: s = s + y(ii): GoTo Done
lbl183: s = s + y(ii): GoTo Done
lbl184: s = s + y(ii): GoTo Done
lbl185: s = s + y(ii): GoTo Done
lbl186: s = s + y(ii): GoTo Done
lbl187: s = s + y(ii): GoTo Done
lbl188: s = s + y(ii): GoTo Done
lbl189: s = s + y(ii): GoTo Done
lbl190: s = s + y(ii): GoTo Done
lbl191: s = s + y(ii): GoTo Done
lbl192: s = s + y(ii): GoTo Done
lbl193: s = s + y(ii): GoTo Done
lbl194: s = s + y(ii): GoTo Done
lbl195: s = s + y(ii): GoTo Done
lbl196: s = s + y(ii): GoTo Done
lbl197: s = s + y(ii): GoTo Done
lbl198: s = s + y(ii): GoTo Done
lbl199: s = s + y(ii): GoTo Done
lbl200: s = s + y(ii): GoTo Done
Done:
Next
Next
If PrintToForm Is Nothing Then
Debug.Print "S: " & s
Debug.Print "Select..Case Timing: " & New_c.Timing
Else
PrintToForm.Print "S: " & s
PrintToForm.Print "Select..Case Timing: " & New_c.Timing
End If
End Sub
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
-
Forum Rules
|
Click Here to Expand Forum to Full Width
|