dbasnett
Mar 28th, 2009, 02:16 PM
I am looking for a reference that explains how/why the scope of a variable affects performance. Here is an example of what I mean
03/28/09 13:12:51.516 CPU - 1.794GHz. Stopwatch(HR) Freq. is 3,579,545
x86 Family 6 Model 13 Stepping 6 Address width - 32 Memory - 2.0GB
One - Procedure
Two - Module
Outer Loops(OL) = 7 Inner Loops(IL) = 262,144
Times given in ticks. 1 ms. = 10,000 ticks; 1,000 ms. = 1 second.
Ticks / Loop Fastest? One
0.0194 1.2242 1.7381 -0.5139
OL Base IL One IL Two IL Difference (One - Two)
1 5,055 320,265 454,974 -134,709
2 5,086 320,411 454,639 -134,228
3 5,058 320,113 455,677 -135,564
4 5,093 320,022 455,077 -135,055
5 5,057 324,892 459,133 -134,241
6 5,247 319,998 455,082 -135,084
7 5,057 320,722 454,889 -134,167
Average
5,093 320,917 455,638 -134,721 (-13.472 ms./IL)
03/28/09 13:12:53.113 RunMode = CTRL-F5 End Dewayne Relative Speed Test
Source Code Follows
'
Const itms As Integer = 100
Dim TestData() As Integer
Dim TestList As New List(Of Integer)
Dim sum As Integer = 0
'
Private Function TestCase1() As Boolean 'One
'Test One Code Follows
Dim sum As Integer = 0
For i As Integer = 0 To TestData.Length - 1
sum += TestData(i)
Next
'End Test One Code
Return True
End Function
'
Private Function TestCase2() As Boolean 'Two
'Test Two Code Follows
sum = 0
For i As Integer = 0 To TestData.Length - 1
sum += TestData(i)
Next
'End Test Two Code
Return True
End Function
'
Private Sub _init()
'Code needed to get the Test to run. NOT part of the timing.
'Only called once!!!
TestList.Clear()
For x As Integer = 1 To itms
TestList.Add(Short.MaxValue)
Next
TestData = TestList.ToArray
End Sub
03/28/09 13:12:51.516 CPU - 1.794GHz. Stopwatch(HR) Freq. is 3,579,545
x86 Family 6 Model 13 Stepping 6 Address width - 32 Memory - 2.0GB
One - Procedure
Two - Module
Outer Loops(OL) = 7 Inner Loops(IL) = 262,144
Times given in ticks. 1 ms. = 10,000 ticks; 1,000 ms. = 1 second.
Ticks / Loop Fastest? One
0.0194 1.2242 1.7381 -0.5139
OL Base IL One IL Two IL Difference (One - Two)
1 5,055 320,265 454,974 -134,709
2 5,086 320,411 454,639 -134,228
3 5,058 320,113 455,677 -135,564
4 5,093 320,022 455,077 -135,055
5 5,057 324,892 459,133 -134,241
6 5,247 319,998 455,082 -135,084
7 5,057 320,722 454,889 -134,167
Average
5,093 320,917 455,638 -134,721 (-13.472 ms./IL)
03/28/09 13:12:53.113 RunMode = CTRL-F5 End Dewayne Relative Speed Test
Source Code Follows
'
Const itms As Integer = 100
Dim TestData() As Integer
Dim TestList As New List(Of Integer)
Dim sum As Integer = 0
'
Private Function TestCase1() As Boolean 'One
'Test One Code Follows
Dim sum As Integer = 0
For i As Integer = 0 To TestData.Length - 1
sum += TestData(i)
Next
'End Test One Code
Return True
End Function
'
Private Function TestCase2() As Boolean 'Two
'Test Two Code Follows
sum = 0
For i As Integer = 0 To TestData.Length - 1
sum += TestData(i)
Next
'End Test Two Code
Return True
End Function
'
Private Sub _init()
'Code needed to get the Test to run. NOT part of the timing.
'Only called once!!!
TestList.Clear()
For x As Integer = 1 To itms
TestList.Add(Short.MaxValue)
Next
TestData = TestList.ToArray
End Sub