2016-03-16 16 views
-1

在我們使用循環例如爲:Control.Value VS X = Control.Value性能

for n=0 to 10000 
    if Datagridview1(0,n).value = datagridview1(1,0).value then ... 
next 

內的值的情況下是沒有任何性能問題,而不是使用

dim x=datagridview1(1,0).value 
for n=0 to 10000 
    if Datagridview1(0,n)=x then ... 
next 

+1

來衡量性能您能提供編譯代碼嗎?一般來說,如果你有兩匹馬,並且你想知道哪一匹馬更快,就可以比賽你的馬匹。 (E.Lippert) –

+1

會有一些開銷,因爲你正在調用一個函數10,000次。無論它是否顯着取決於在該功能中花費的時間_相對於整個程序_。 –

+1

但是你問我們是否存在性能問題,我問你:你有性能問題嗎? –

回答

0

是的,一般來說,如果你只需要做一次10000次而不是隻做一次,那麼它的工作量會更大。所以當然這是更高效的:

Dim x As Object = datagridview1(2,2).Value 
For n As Int32 = 0 to 10000 
    If a = x Then 
     ' ... ' 
    End If 
Next 

,因爲它只需要查找一次值而不是10000次。

但正如評論所說,「是否重要取決於在該功能相對於整個程序花費的時間」。通常更重要的是保持代碼的可讀性。在這種情況下,如果您使用了有意義的變量名稱,您甚至可以通過使用變量而不是始終使用datagridview1(2,2).Value來提高可讀性。

通常,您可以使用System.DiagnosticsStopWatch