Задать вопрос
mixtape774
@mixtape774
Занимаюсь Web, Desktop разработкой и реверсингом

Как влияет на производительность инициализация переменных в цикле на языке C#?

Вечер добрый, знатоки C#. Задался таким вопросом: "Влияет ли на производительность инициализация переменных в цикле? или следует инициализировать переменные вне цикла?". Крайне важна производительность, т.к. приложение многопоточное (около 100 потоков).

Пример 1 (инициализация за пределами цикла):
string response;
            for (int i = 0; i < 4; i++)
            {
                response = Send("DoSomething", "arguments");
            }


Пример 2 (инициализация внутри цикла):
for (int i = 0; i < 4; i++)
            {
                string response = Send("DoSomething", "arguments");
            }


Какой вариант производительней? и есть ли вообще разница в компилируемом IL коде? (reflector'a нет под рукой). Заранее спасибо за ответы.
  • Вопрос задан
  • 2847 просмотров
Подписаться 2 Оценить Комментировать
Решения вопроса 1
EndUser
@EndUser
"Как влияет на производительность инициализация переменных в цикле" - всегда плохо.

С другой стороны, вы могли бы не лениться и прогнать оба варианта на 100e6 циклов.

С третьей стороны, можете почитать "верёвку достаточной длины, чтобы выстрелить себе в ногу", чтобы уровень ваших вопросов, тэ-скэть, стал менее тривиальным.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@mequasar
Конечно первый вариант быстрее.
Вы не тратите времени на создание объекта string.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы