Это быстрее пройти (float, float, float)
в качестве параметров методы против (float[])
где массив имеет три члена?
Это зависит.Если у вас уже есть массив поплавков, это не должно иметь никакого значения. Если вы каждый раз создаете массив, это займет некоторое время для назначений массиву и, возможно, некоторое время для построения массива.
Имеет ли это значение? Если вы делаете это в жесткой петле, которая выполняется несколько миллионов раз подряд, и это много раз в течение жизни вашего приложения, это, безусловно, может быть сделано.
Является ли это быстрее метод, чтобы вернуть поплавок [] против установки содержимого поплавка [], который передается методу в качестве аргумента?
Если вам нужно построить массив поплавка каждый раз для возвращаемого значения, то это, конечно, не будет быстрее, чем задание значений в ранее существовавшем массиве. Просто потому, что обе опции включают значения настроек, и одна из них имеет дополнительную задачу создания нового массива. Но создание нового массива может быть действительно, очень быстрым.
Тем не менее, если вы делаете это много миллионов раз в своем приложении быстро, сравните его, это может сэкономить вам некоторое время.
ли быстрее заменить вызовы метода фактических расчетов т.е. вместо является A=sum(B,C)
медленнее, чем A=B+C
? при условии, sum(x,y){return x+y}
Почти невозможно сказать. Встроенный оптимизатор кода HotSpot довольно хорошо разбирается в таких вещах и оптимизирует это для вашего.
Если тест, попробуйте делаете sum
метод private
, что сделает его более легким для HotSpot, чтобы решить, что это может быть встраиваемым (хотя это будет также обнаружить это сам по себе, если у вас нет каких-либо перегруженных реализаций sum
метод)
Единственное, о бенчмаркинг здесь:
это может помочь приложение прямо сейчас, с текущей версией виртуальной машины, которую вы используете (и текущего кодовую). Если вы решите перейти на новую версию виртуальной машины, вы можете обнаружить, что характеристики производительности меняются, и вам может потребоваться оптимизация снова.
Так что сделайте это, только если это действительно важно для вашего приложения, иначе это может быть потрачено впустую.
Лучше сначала сосредоточиться на своем алгоритме и его пространственных и временных сложностях; любые выигрыши есть навсегда.
Эти микрооптимизации не будут иметь значения в ЛЮБОЙ шкале. – Kon
@ Kon, но он говорит о мобильном телефоне и множестве вычислений. Я бы не стал беспокоиться об этом на ПК JVM, но не уверен в adroid. – ZhongYu
@KevinXu хороший вопрос. Мне также интересно знать эти вещи. Посмотрим, что говорят эксперты. –