Java - учет производительности при использовании нескольких методов - PullRequest
1 голос
/ 25 февраля 2012

У меня довольно сложный Java-класс с более чем 60 небольшими вспомогательными методами, используемыми для удобства чтения и понимания. Просто интересно, как вы думаете, наличие такого количества методов в классе может повлиять на производительность?

Ответы [ 5 ]

4 голосов
/ 25 февраля 2012

Нет.Количество методов в методе не имеет большого значения.Только используемые методы действительно загружены.Если у вас есть тысячи методов, это, скорее всего, будет проблемой для вас (разработчика)

Сохранение вашего кода простым и понятным, скорее всего, повысит производительность.

2 голосов
/ 25 февраля 2012

Производительность не сильно пострадает. Просто убедитесь, что вы не применяете анти-паттерн Бога.

С инженерной точки зрения другим разработчикам может быть неудобно перемещаться по сложной иерархии внутренних классов.

1 голос
/ 25 февраля 2012

Может быть, вам нужно использовать Извлечение класса .Это общая методология для решения Зависти к функциям запаха кода (оба взяты из Рефакторинга Мартина Фаулера ).

О множестве методов в одном классе - я отвечаюЯ где-то читал где-то , что JVM дополнительно оптимизирует ваш код, встроит методы и т. Д.

0 голосов
/ 14 марта 2014

Извините, ребята, ответы неправильные или не затрагивают действительно важный момент.

Все методы в классе выше являются частными. Это означает, что полиморфизм не происходит, и JVM может вызывать метод напрямую, а не через динамический вызов. «private» подразумевает «final».

Более того, все крошечные методы встроены в JIT. Так что нет разницы в производительности.

0 голосов
/ 25 февраля 2012

Это зависит !!!

Во-первых, нравится, как сказал Питер Лори, только методы, которые вы используете в своем ответе, займут некоторое время. например:

public void update(){
 if (sth) methodA();
 else if(sth other) methodB();
 else if(sth other) methodC();
}

в приведенном выше примере всегда будет вызываться один метод.

В заключение, это зависит от вашей платформы. Если вы разрабатываете для настольных компьютеров, 60 методов делают глупости, если вы не используете тысячи и тысячи методов. Но если вы разрабатываете на Android, 60 методов для одной update() функции действительно большая проблема. Вот почему многие эксперты говорят, что вы не должны использовать Getter / Setter на мобильной платформе. И, конечно же, эта работа снова не справится Design pattern :)) Именно поэтому, когда вы разрабатываете на Mobile Platform, у вас будет сложный выбор между производительностью и обслуживанием. (Это означает, что ваш код будет понятным и легко читаемым)

Надеюсь, вам понятно :)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...