Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > .NET для новичков > Сравнение эффектисности очистки TextBox


Автор: Azzdorf 13.6.2008, 08:10
Пишу программу, которая включает огромное количество TextBox и которая постоянно требует очистки этих самых TextBox. smile 
Стал вопрос об эффектисности методов очистки, взял пару незамысловатых вариантов smile :

1)  smile 
Код

someTextBox.Text = "";

2)  smile 
Код

someTextBox.Text = String.Empty;


Что эффективнее использовать и в каких случаях? smile 
Как провети показательный тест на скорость? smile 
И есть ли другие варианты? smile 

оффтоп: (знаю что один вопрос - один топик smile  -  уважаю smile , но тут все включено в тему smile )

Автор: QryStaL 13.6.2008, 08:57
А как же TextBox.Clear() ?

Автор: Ram1reS 13.6.2008, 13:43
Код

Text='' : 00:00:00.0001108
Text=String.Empty : 00:00:00.0000907
Clear() : 00:00:00.0000918

Text='' : 00:00:00.0000952
Text=String.Empty : 00:00:00.0001021
Clear() : 00:00:00.0000936

Text='' : 00:00:00.0000944
Text=String.Empty : 00:00:00.0000924
Clear() : 00:00:00.0000975

Text='' : 00:00:00.0000948
Text=String.Empty : 00:00:00.0001046
Clear() : 00:00:00.0000926

Text='' : 00:00:00.0000940
Text=String.Empty : 00:00:00.0000915
Clear() : 00:00:00.0000917


Код

           Stopwatch sw = new Stopwatch();

            textBox1.Text = "abc";

            sw.Start();
            textBox1.Text = "";
            sw.Stop();
            textBox2.Text += "Text='' : " + sw.Elapsed.ToString() + "\r\n";

            sw.Reset();
            textBox1.Text = "abc";

            sw.Start();
            textBox1.Text = String.Empty;
            sw.Stop();
            textBox2.Text += "Text=String.Empty : " + sw.Elapsed.ToString() + "\r\n";
          
            sw.Reset();
            textBox1.Text = "abc";

            sw.Start();
            textBox1.Clear();
            sw.Stop();
            textBox2.Text += "Clear() : " + sw.Elapsed.ToString() + "\r\n";

Автор: PashaPash 13.6.2008, 14:39
Ram1reS, порешность инструмента слишком большая. Это как мерять скорость света секндомером.
Azzdorf, разница между "" и String.Empty зависит от версии JIT, и даже от того, была ли сборка обработана ngen.exe. На практике - ты не можешь предстаказать что будет быстрее. И даже не сможешь измерить.

Автор: QryStaL 13.6.2008, 15:07
По-моему, разница слишком мизерна, чтобы повлиять на производительность. Так что можно не заморачиваться, и использовать TextBox.Clear()  smile 

Автор: Azzdorf 13.6.2008, 20:34
Цитата(QryStaL @ 13.6.2008,  15:07)
По-моему, разница слишком мизерна, чтобы повлиять на производительность. Так что можно не заморачиваться, и использовать TextBox.Clear()  smile

Спасибо QryStaL Ram1reS PashaPash

Последую совета QryStaL что-бы не париться и использовать инструментдл яэтого придуманый
Код

TextBox.Clear()

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)