Приблизительно оценить время выполнения той или иной операции можно следующим образом:
Причем, если операция выполняется быстро, имеет смысл поместить ее в цикл. В качестве примера, оценим разницу в быстродействии вариантов проверки пустой строки. Для пущего интересу, пусть строковая переменная будет пустая и непустая.
А вот и результаты испытаний, выведенные в консоль:
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.







Древняя логическая мини-игрушка про посещение одной известной шахматной фигурой полей игральной доски. Целью игры может быть: посещение всех полей игровой доски или посещение минимально-возможного количества полей. Передвигаться по игровой доске следует только определенным образом и до тех пор, пока существует такая возможность. Начать игру можно с произвольного поля, но побывать в любом из полей можно только один раз. Максимальный результат — 100%, т.е. посещение всех полей, а минимальный — не более 12% (меньше мне набрать не удалось). Текущая позиция, возможные ходы, посещенные поля отличаются друг от друга цветами. Цвета эти можно поменять в настройках программы. Если включить режим «автопилот», программа попробует поиграть в себя сама. И хотя руководствуется при выборе очередного хода она отнюдь не логикой, а исключительно генератором случайных чисел, тем не менее иногда ей все же удается показывать неплохие результаты, которые тут же бережно записываются в таблицу рекордов.