Potrebbe influire un po ', ma il compilatore JIT dovrebbe essere in grado di rilevare ed eliminare metodi che non vengono mai utilizzati. E anche se così non fosse, le spese generali (memoria, tempo di caricamento, tempo di compilazione JIT, ecc.) Sono probabilmente ridotte.
Un motivo molto migliore per eliminare i metodi morti è eliminare le "vecchie cose" che rendono più difficile leggere, verificare e mantenere il codice base. Se questo è un codice che potresti aver bisogno di nuovo, puoi sempre recuperarlo dal controllo della versione.
Cosa succede se chiedere all'utente quale metodo si desidera chiamare? , prendi l'input come una stringa e quindi invoca quel metodo usando reflection ?. Il JIT non può dire quale metodo verrà usato in modo che non possa rimuovere alcun metodo :).
Buon punto. Quindi probabilmente non eliminerà i metodi nella pratica. (Ma potrebbe ... se il classloader sapesse dove ricaricare il metodo da ...)
I metodi morti aumentano l'area del metodo in JVM.
Sì, anche se l'aumento della memoria percentuale è probabilmente insignificante. E la conseguente riduzione delle prestazioni è probabilmente ancora meno significativa.
Anche un metodo che non viene mai chiamato non verrà mai compilato JIT, quindi è probabile che non si incorre in un 50% o più di utilizzo della memoria per un tipico metodo live.
Quindi un numero eccessivo di codice morto porta allo scarico di classi dall'area del metodo (heap) che potrebbe influire sulle prestazioni dell'app. ho ragione?.
Ciò è altamente improbabile. Una classe verrà scaricata solo se non vi sono riferimenti e il suo classloader è irraggiungibile. E se dovesse succedere, la classe non verrebbe utilizzata nuovamente, quindi è giusto scaricarla.
fonte
2013-04-29 14:36:44
Se stai facendo qualsiasi tipo di riflessione potrebbe rallentarlo. – Pace
Una domanda interessante sarebbe: i metodi non ordinari portano a importazioni non ordinate –
Risposta breve, sì. Ma la performance è un animale completamente diverso che deve essere attaccato in un modo diverso. – Siddharth