Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> лишнее преобразование ToString() для типа string, отражается ли на производительности? 
V
    Опции темы
Rockie
Дата 10.1.2008, 17:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1143
Регистрация: 23.4.2006

Репутация: нет
Всего: 31



К примеру есть строковая переменная 
Код

string s = "abcd";

У меня есть привычка писать
Код

System.Console.WriteLine(s.ToString());

хотя s в данном случае и так строка и можно использовать просто 
Код

System.Console.WriteLine(s);

Будут ли отличаться с точки зрения производительности эти две строчки кода? У меня есть подозрение что копилятор должен пропускать лишние приведения типов и не производить лишних действий. Как происходит на самом деле?

Это сообщение отредактировал(а) Rockie - 10.1.2008, 17:30


--------------------
Чтобы иметь большой гардероб - надо иметь большой гардероб.
PM   Вверх
stab
Дата 10.1.2008, 17:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Экс. модератор
Сообщений: 1839
Регистрация: 1.1.2003

Репутация: 22
Всего: 48



Код

public override string ToString()
{
   return this;
}


не думаю что это инлайнится, т.к. метод виртуальный, следовательно имеем ненужную тройку call/mov/ret - вызов метода.


--------------------
6, 6, 6 - the number of the beast.
PM MAIL WWW   Вверх
fantast
Дата 10.1.2008, 17:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 147
Регистрация: 10.12.2006
Где: минск, столица на шей Родины

Репутация: нет
Всего: 2



а ты собираешься выводить на консоль 'войну и мир' построчно?
--------------------
Эпитафия: Он старался.                                   Неизвестный
PM MAIL   Вверх
stab
Дата 10.1.2008, 17:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Экс. модератор
Сообщений: 1839
Регистрация: 1.1.2003

Репутация: 22
Всего: 48



Код

string text = "text".ToString();

mov        ecx,dword ptr ds:[024C303Ch] 
mov        eax,dword ptr [ecx] 
call         dword ptr [eax+28h] 
mov        esi,eax


что и требовалось доказать.


--------------------
6, 6, 6 - the number of the beast.
PM MAIL WWW   Вверх
Rockie
Дата 11.1.2008, 13:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1143
Регистрация: 23.4.2006

Репутация: нет
Всего: 31



stab, спасибо


--------------------
Чтобы иметь большой гардероб - надо иметь большой гардероб.
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0456 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.