PGSystemTester

Variable Olympics For VBA (Long vs Integer)

Aug 4th, 2018
269
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.  Sub VariableOlymics()
  2.     Dim beginTIME As Double, trials As Long, i As Long, p As Long
  3.    
  4.         trials = 100000000
  5.         p = 0
  6.        
  7.         beginTIME = Now
  8.         For i = 1 To trials
  9.             Call boomBYTE
  10.         Next i
  11.         Call Finished(p, Now - beginTIME, CDbl(trials))
  12.         p = p + 1
  13.        
  14.         beginTIME = Now
  15.         For i = 1 To trials
  16.             Call boomINTEGER
  17.         Next i
  18.         Call Finished(p, Now - beginTIME, CDbl(trials))
  19.         p = p + 1
  20.        
  21.        
  22.         beginTIME = Now
  23.         For i = 1 To trials
  24.             Call boomLONG
  25.         Next i
  26.         Call Finished(p, Now - beginTIME, CDbl(trials))
  27.         p = p + 1
  28.        
  29.        
  30.         beginTIME = Now
  31.         For i = 1 To trials
  32.             Call boomDOUBLE
  33.         Next i
  34.         Call Finished(p, Now - beginTIME, CDbl(trials))
  35.         p = p + 1
  36.        
  37.        
  38.         beginTIME = Now
  39.         For i = 1 To trials
  40.             Call boomUNDECLARED
  41.         Next i
  42.         Call Finished(p, Now - beginTIME, CDbl(trials))
  43.         p = p + 1
  44.    
  45.     End Sub
  46.    
  47.    
  48.     Private Sub boomBYTE()
  49.     Dim a As Byte, b As Byte, c As Byte
  50.    
  51.         a = 1
  52.         b = 1 + a
  53.         c = 1 + b
  54.         c = c + 1
  55.    
  56.     End Sub
  57.    
  58.    
  59.     Private Sub boomINTEGER()
  60.     Dim a As Integer, b As Integer, c As Integer
  61.    
  62.         a = 1
  63.         b = 1 + a
  64.         c = 1 + b
  65.         c = c + 1
  66.    
  67.     End Sub
  68.    
  69.    
  70.     Private Sub boomLONG()
  71.     Dim a As Long, b As Long, c As Long
  72.    
  73.         a = 1
  74.         b = 1 + a
  75.         c = 1 + b
  76.         c = c + 1
  77.    
  78.     End Sub
  79.    
  80.    
  81.     Private Sub boomDOUBLE()
  82.     Dim a As Double, b As Double, c As Double
  83.    
  84.         a = 1
  85.         b = 1 + a
  86.         c = 1 + b
  87.         c = c + 1
  88.    
  89.     End Sub
  90.    
  91.    
  92.     Private Sub boomUNDECLARED()
  93.    
  94.         a = 1
  95.         b = 1 + a
  96.         c = 1 + b
  97.         c = c + 1
  98.    
  99.     End Sub
  100.    
  101.     Private Sub Finished(i As Long, timeUSED As Double, trials As Double)
  102.    
  103.         With Range("B2").Offset(i, 0)
  104.                 .Value = .Value + trials
  105.                 .Offset(0, 1).Value = .Offset(0, 1).Value + timeUSED
  106.         End With
  107.    
  108.     End Sub
Add Comment
Please, Sign In to add comment