2016-03-16 2 views
-1

В случае, если мы должны использовать значение внутри цикла .: напримерпроизводительность Control.Value В.С. х = 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

Будет накладные расходы, потому что вы вызываете функцию 10000 раз. Независимо от того, является ли это значимым или нет, зависит от времени, проведенного в этой функции, относительно всей программы. –

+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

Смежные вопросы