быстрее ли ссылаться на текстовое свойство textbox для теста или назначать строку свойству затем test? - PullRequest
0 голосов
/ 15 июля 2011

Мне было интересно, что быстрее (или если это вообще имеет значение), ссылаясь на свойство Text текстового поля или строку, назначенную этому значению?Ref textbox.Text

if(textbox1.Text == "A")
{ //do a million iterations
}

Или

string aString = textbox1.Text;
if(aString == "A")
{ //do a million iterations
}

Ответы [ 3 ]

2 голосов
/ 15 июля 2011

Я сделал быстрый анализ с использованием секундомера: 10.000.000 итераций.

В первом случае он возвращается ко мне: 00: 00: 21.56

Во втором случае он возвращается ко мне: 00: 00: 42.62

Во втором случае у вас есть Get accessor + новый указатель на строку каждую итерацию, поэтому она медленнее.

Надеюсь, это поможет.

РЕДАКТИРОВАТЬ

Я поместил все код любого случая внутри итерации.Кажется, это очередь.

0 голосов
/ 15 июля 2011

Я думаю, что второй вариант быстрее.Чтение свойства - это выполнение функции, которая читает значение текстового поля.Существует вероятность того, что он будет оптимизирован, с другой стороны, также может быть вероятность того, что значение изменится во время выполнения цикла, поэтому необходимо проверять его каждый раз, когда свойство читается.

0 голосов
/ 15 июля 2011

Не думаю, что будет какая-то разница, если оптимизация компилятора включена, но вы можете это проверить. Просто повторите код пару миллионов раз с классом StopWatch, чтобы измерить время выполнения всей операции.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...