Mi pregunta es sobre la optimización en Java utilizando el compilador de Android. Will map.values () en lo sucesivo se llamará en cada iteración, o el compilador de Android lo optimizará.métodos en foreach y para bucles en java
LinkedHashMap<String, Object> map;
for (Object object : map.values())
{
//do something with object
}
Igual que aquí hay otro ejemplo. se llamará aList.size() a cada iteración?
List<Object> aList;
for (int i = 0; i < aList.size(); i++)
{
object = aList.get(i);
//do something with i
}
Y después de todo esto, ¿realmente importa si llama a los métodos cada iteración? ¿Map.values () y List.size() hacen gran cosa?
Esta es una pregunta de Java que realmente no tiene nada que ver específicamente con Android. –
Entiendo el interés en esta pregunta, pero para cualquier propósito del mundo real, recomiendo encarecidamente el código de perfil antes de optimizarlo. –
@PhilippReichart - Tiene mucho sentido preguntar si un estilo de codificación tiene una ventaja de rendimiento inherente sobre otro. Además, la creación de perfiles tiene sus límites. Si está codificando para Android, es probable que su código se ejecute en una amplia variedad de plataformas, algunas de las cuales pueden tener un compilador JIT, algunas de las cuales no, y algunas de las cuales ni siquiera existen todavía. –