С точки зрения производительности, лучше ли каждый раз вызывать длину заданного массива или сохранять длину в переменной и каждый раз вызывать эту переменную? - PullRequest
12 голосов
/ 08 июля 2011

Я часто обращаюсь к длине заданного массива, и мне было интересно, лучше ли продолжать вызывать его много раз (в настоящее время более 50 раз, но он продолжает расти) или лучше просто хранить длину в целое число и используйте это целое число каждый раз.

Если мне неясно, что я говорю, подумайте о следующем:

У меня есть массив строк:

String[] str = new String[500]; //The length is actually dynamic, not static

Конечно, я помещаю в него некоторые значения, но я все время обращаюсь к длине строки в моем приложении:

int a = str.length;
int b = str.length;
int c = str.length;
int d = str.length;
int e = str.length;

и так далее ... так что лучше сделать это: (с точки зрения производительности, не особо заботится о памяти)

int length = str.length;
    int a = length;
    int b = length;
    int c = length;
    int d = length;
    int e = length;

Спасибо.

Ответы [ 3 ]

16 голосов
/ 08 июля 2011

Разницы нет.Вы не вызываете метод при доступе к длине массива.Вы только что прочитали внутреннее поле.Даже если вы вызываете метод, разница будет незначительной с текущими JVM.

3 голосов
/ 08 июля 2011

array.length обращается к полю в массиве, поэтому оно не должно влиять на производительность.

2 голосов
/ 08 июля 2011

Что, по вашему мнению, сделает код более понятным?

JVM, скорее всего, оптимизирует код для того же.Даже если это не так, разница, вероятно, будет меньше 1 наносекунды.

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