Приблизительно оценить время выполнения той или иной операции можно следующим образом:
Причем, если операция выполняется быстро, имеет смысл поместить ее в цикл. В качестве примера, оценим разницу в быстродействии вариантов проверки пустой строки. Для пущего интересу, пусть строковая переменная будет пустая и непустая.
А вот и результаты испытаний, выведенные в консоль:
s = "a"
If s = "" Then --> 00:00:02.2656250
If s = String.Empty Then --> 00:00:02.3125000
If s.Length = 0 Then --> 00:00:00.4062500
s = ""
If s = "" Then --> 00:00:00.7968750
If s = String.Empty Then --> 00:00:02.2187500
If s.Length = 0 Then --> 00:00:00.5000000
Как видим, в любом случае, целесообразнее обращаться к свойству Length.
Dim t As DateTime = Now 'некоторая операция Console.WriteLine((Now - t).ToString)
Причем, если операция выполняется быстро, имеет смысл поместить ее в цикл. В качестве примера, оценим разницу в быстродействии вариантов проверки пустой строки. Для пущего интересу, пусть строковая переменная будет пустая и непустая.
Dim s As String = "a" Dim t As DateTime Console.WriteLine("s = ""a""") t = Now For i = 0 To 99999999 If s = "" Then s.ToString() Next Console.WriteLine("If s = """" Then --> " & (Now - t).ToString) t = Now For i = 0 To 99999999 If s = String.Empty Then s.ToString() Next Console.WriteLine("If s = String.Empty Then --> " & (Now - t).ToString) t = Now For i = 0 To 99999999 If s.Length = 0 Then s.ToString() Next Console.WriteLine("If s.Length = 0 Then --> " & (Now - t).ToString) s = "" Console.WriteLine("s = """"") t = Now For i = 0 To 99999999 If s = "" Then s.ToString() Next Console.WriteLine("If s = """" Then --> " & (Now - t).ToString) t = Now For i = 0 To 99999999 If s = String.Empty Then s.ToString() Next Console.WriteLine("If s = String.Empty Then --> " & (Now - t).ToString) t = Now For i = 0 To 99999999 If s.Length = 0 Then s.ToString() Next Console.WriteLine("If s.Length = 0 Then --> " & (Now - t).ToString)
А вот и результаты испытаний, выведенные в консоль:
s = "a"
If s = "" Then --> 00:00:02.2656250
If s = String.Empty Then --> 00:00:02.3125000
If s.Length = 0 Then --> 00:00:00.4062500
s = ""
If s = "" Then --> 00:00:00.7968750
If s = String.Empty Then --> 00:00:02.2187500
If s.Length = 0 Then --> 00:00:00.5000000
Как видим, в любом случае, целесообразнее обращаться к свойству Length.
Комментариев нет:
Отправить комментарий