Мне нравится писать действительно читаемый код на Java. Для этого я использую шаблон строителя и много статических методов. Но в какой-то момент я звоню или цепляю много методов, поэтому я придумал этот вопрос: есть ли какие-либо проблемы с производительностью, вызывающие множество методов?
Как вызов метода влияет на производительность Java?
Ответ 1
Что делает метод, имеет гораздо больший эффект, чем сам вызов метода. Это предварительная зрелая оптимизация, которую вам следует избегать.
Вы понятия не имеете, как оптимизация времени выполнения, встроенная в JVM, будет влиять на производительность. Они будут намного умнее ваших попыток.
Напишите свое приложение, просмотрите его и посмотрите, есть ли какие-либо очевидные улучшения, которые вы можете сделать. Повторяйте до тех пор, пока производительность не будет приемлемой.
Ответ 2
Считываемость - это почти всегда путь. Существует влияние на производительность для вызовов функций, но не читаемый код, вероятно, будет страдать от других проблем с реализацией, которые будут иметь более высокую производительность.
Используйте ключевое слово final, где это необходимо, чтобы предлагать inlineing для этих функций.
Ситуация, когда вы не хотите использовать много вызовов функций, - это тесные циклы. Что-то, что происходит сотни тысяч раз. И обычно эти места могут быть оптимизированы в конце, если требуется оптимизация программного обеспечения.
Ответ 3
Вообще говоря: не совсем.
Однако один случай, когда он может обеспечить значительное количество ненужных накладных расходов, - это когда вы делаете большой рекурсивный вызов. Если это так, а производительность - проблема, вы должны изучить подход к динамическому программированию или реализовать свой собственный стек.
В противном случае ваши методы должны быть достаточно сложными в своей логике, чтобы перевесить любой полученный им успех.