Что производительнее? Открыт

У меня есть 2 варианта проверки по материалу. Есть ли какие-то изменения в производительности, если я создаю переменную типа String хранящую название материала или нет?
1)

if (material.name == "grass (Instance)")
{
}




2) 

public string grass = "grass (Instance)";
if (material.name == grass)
{
}



Воспрос задан "April 27, 2016"

Ответы (2):


Первый вариант лучше с точки зрения оптимизации - меньше используется не нужных переменных и т.д.

Однако, второй будет лучше с точки зрения повторного использования кода, если вынести такие статичные флаги отдельно в таблицу, то не надо будет переписывать в коде каждый раз, где происходит сравнение с этим значением.

 

Об этом стоило бы задуматься, работая на 128 мб оперативной памяти. В наше время такие махинации это трата времени. На начальном этапе излишне оптимизировать проект, которого нет.

 

Об более лучшем проектировании можно почитать в книге Макконнелл совершенный код.


Ответ получен "May 11, 2016"

Разницы абсолютно никакой. Строка и там и там займёт одинаковое колличество места, при компиляции её просто занесут в таблицу данных. А вот переменные, будут занимать очень мало так, как насколько мы знаем string - это ссылочный тип, и соответсвенно перпеменная хранит только ссылку на сами данные. По сути разница будет только в паре байт.  

Но вот с точки зрения повторного использования код да, переменная лучше. 


Ответ получен "May 15, 2016"

чтобы дать ответ на вопрос