Добавляет присвоение переменной (с целью улучшения процесса отладки) в следующий тип метода замедляет выполнение более чем на одну секунду (1 тыс. Мс) на ~ 1k вызовов?Могу ли я улучшить отладку, назначив значение переменной перед возвратом без ущерба для производительности?
Я исправлю в своем предположении, что переменная выпадет из области видимости и будет собрана мусор, когда метод завершит выполнение?
Рефакторинг этот метод:
public String concatenateOneOrTwo(String input, boolean one){
if(one){
return concatenate(input, "one");
}else{
return concatenate(input, "two");
}
}
Чтобы что-то вроде этого:
public String concatenateOneOrTwo(String input, boolean one){
String returnValue = "";
if(one){
returnValue = concatenate(input, "one");
}else{
returnValue = concatenate(input, "two");
}
return returnValue;
}
Этот второстепенный рефакторинг может улучшить процесс отладки; Это позволит разработчику легко проверить возвращаемое значение и повысить удобство обслуживания кода.
Дополнительных ресурсы
public String concatenate(String one, String two){
return one + two;
}
2-я версия является предпочтительной, для удобства чтения, и я сомневаюсь, что вы могли бы измерить разницу с любыми имеющимися у вас инструментами. – EdgeCase
Какова проблема в оценке значения отладчика всего метода 'concatenateOneOrTwo'? – Andremoniy
Просто компиляция двух версий с javac показывает, что они производят разные байткоды, а второй выглядит немного менее эффективным. Я был бы ошеломлен, если бы у него было какое-то заметное влияние на производительность. – resueman