Влияет ли возврат в отличие от возврата значения из метода на производительность? - PullRequest
0 голосов
/ 11 апреля 2019

Если, например, есть метод добавления объекта и создания удобства,

Objeckt o = new Objeckt().add(new Element());

стоит ли больше использовать метод

Objeckt add(Element e){
    return this;
}

вместо

void add(Element e){

}

1 Ответ

0 голосов
/ 12 апреля 2019

Благодаря @ventiseis:

Возврат объекта

(аналогично примитиву возвращается ireturn , lreturn , freturn и dreturn )

Если исключение не выдается, значение извлекается из стека операндов текущего кадра (§2.6) и помещается встек операндов фрейма вызывающего.Любые другие значения в стеке операндов текущего метода отбрасываются.

void return

Если не генерируется исключение, любые значения вСтек операндов текущего кадра (§2.6) отбрасывается.

В спецификации указано, что:

Если возвращено значение, оно извлекается из стека операндови помещается в стек операндов вызывающего фрейма.

Если значение не возвращается, ничего нельзя вытолкнуть или вытолкнуть.

Таким образомвозврат значения не должен быть более эффективным.

Конечно, этот ответ не учитывает оптимизацию, если возвращаемое значение не используется в вызывающем фрейме.

...