Избыточный/более производительный код против оптимизированного/менее производительного кодаJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Избыточный/более производительный код против оптимизированного/менее производительного кода

Сообщение Anonymous »

В моем случае я использую C#, но суть вопроса применима и к Java. Надеюсь, ответ будет достаточно общим, чтобы охватить оба языка. В противном случае лучше разделить вопрос на два.

Я всегда думал, какой из них лучше.

Заботится ли компилятор об улучшении «второго» кода, чтобы его производительность была такой же хорошей, как и у «первого» кода?

Можно ли это обойти, чтобы получите «более производительный» и «оптимизированный» код на в одно и то же время?

Избыточный код/код повышенной производительности:

Код: Выделить всё

string name = GetName(); // returned string could be empty
List myListOfStrings = GetListOfStrings();
if(string.IsNullOrWhiteSpace(name)
{
foreach(string s in myListOfStrings)
Console.WriteLine(s);
}
else
{
foreach(string s in myListOfStrings)
Console.WriteLine(s + " (Name is: " + name);
}
Код оптимизирован/менее производительный:

Код: Выделить всё

string name = GetName(); // returned string could be empty
List myListOfStrings = GetListOfStrings();

foreach(string s in myListOfStrings)
Console.WriteLine(string.IsNullOrWhiteSpace(name) ? s : s + " (Name is: " + name);
Очевидно, что время выполнения «первого» кода меньше, поскольку он выполняет условие «string.IsNullOrWhiteSpace(name)» только один раз за цикл. В то время как «второй» код (который лучше) выполняет условие на каждой итерации.

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

Подробнее здесь: https://stackoverflow.com/questions/187 ... mance-code
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»