Я создал метод, который вызывается только в одном месте - от onBindViewHolder()
в RecyclerView. Это была логическая единица кода, и я думаю, что извлечение этого кода в метод улучшило читаемость. Однако во время проверки кода мне было сообщено, что вызов метода был дорогостоящим, поэтому это негативно повлияет на производительность, и я должен вставить код, а не поместить его в отдельный метод.Стоимость вызова метода на Android
Я думал, что JVM или компилятор оптимизирует этот код, введя этот метод, но я не уверен, что это так на Android. Я действительно не смог найти какую-либо конкретную информацию о том, какие оптимизационные возможности нового ART JVM.
Вызывает метод, столь дорогостоящий на Android, что я должен избегать его за счет удобства чтения в местах, где метод может вызываться много раз? Кроме того, создает одноразовые методы, подобные этому, нахмурившись из-за ограничения метода DEX? (это приложение уже использует multidex).
Этот вопрос не является дубликатом других подобных java-вопросов, потому что я спрашиваю конкретно о производительности на Android, у которой есть свои особенности.
Возможный дубликат [java, как дорого - вызов метода) (http://stackoverflow.com/questions/6495030/java-how-expensive-is-a-method-call) – Gauthier
_Is вызывает метод, столь дорогой на Android, что я должен избегать этого за счет удобочитаемости в тех местах, где метод может быть вызван много раз? _ У меня нет номеров, но определенно нет. VM будет выполнять оптимизацию по мере ее запуска, а также компилятор. Напишите поддерживаемый, легко читаемый код. –
Если есть проблема с производительностью, вы должны получить данные перед оптимизацией, если вы не получаете данные (например, бенчмаркинг), тогда вы не оптимизируете, а принимаете догадки о том, что улучшит производительность. – cyroxis