È ottimizzato in fase di esecuzione solo dalla JVM o anche in fase di compilazione?
compilatori Java in genere fanno molto poco ottimizzazione (a parte la risoluzione letterali compund), dal momento che bytecode "ottimizzata" può ostacolare la capacità del compilatore JIT per ottimizzare - ed è lì che è veramente importante.
O sono ottimizzazioni JVM potente abbastanza in modo che non mi resta che scrivere codice che è leggibile e facile da mantenere indipendentemente dalla velocità performance?
Non è una questione di fiducia in JVM per ottimizzare meglio di te (anche se questo è sicuramente un fattore), è una questione di ottimizzazione di essere del tutto irrilevante il 95% del tempo, dal momento che il codice non viene eseguito frequentemente. Se un pezzo di codice rappresenta lo 0,1% del tempo di esecuzione della tua app, semplicemente non vale la pena di preoccuparsene. Anche se puoi accelerarlo 100 volte, non ti guadagna nulla. E questo è il caso più comune.
Fintanto che si evitano cose incredibilmente stupide, è necessario dimenticare l'ottimizzazione finché non si verifica un problema prestazionale concreto, quindi solo ottimizzare esattamente le parti di codice che un profiler indica come punti caldi nel codice.
fonte
2009-06-03 10:01:20
Per la profilazione iniziale utilizzando Sun JVM, utilizzare "jvisualvm". È una versione standalone del profiler NetBeans che può essere allegata a un processo in esecuzione. –
(C'è un plugin di avvio VisualVM per Eclipse.) –