Domanda

Voglio conoscere gli interni della JVM, come si comporta e i dettagli che contano. Puoi suggerire qualche risorsa o il miglior libro disponibile per questo ??

È stato utile?

Soluzione

La maggior parte di ciò che so della JVM proviene dai documenti Sun. Hanno alcuni fantastici white paper sulla VM HotSpot: http://java.sun.com/javase/technologies/hotspot/index.jsp

Hai menzionato le prestazioni, quindi potresti essere interessato ai documenti sulle prestazioni di Sun: http://java.sun.com/docs/performance/

Per un approccio più pratico, prova a guardare Kaffe . Questo ti mostrerà cosa fa una macchina virtuale, ma non necessariamente come funziona il codice Java nella JVM di Sun:

  

Kaffe è un'implementazione in camera bianca della macchina virtuale Java, oltre alle librerie di classi associate necessarie per fornire un ambiente di runtime Java.

E OpenJDK è un ottimo posto per conoscere come viene implementata la piattaforma Java: http://openjdk.java.net/

Altri suggerimenti

Capitoli da " Inside the Java 2 Virtual Machine " ;:

http://www.artima.com/insidejvm/ed2/index.html

" Under the Hood " articoli di Bill Venners

http://www.artima.com/underthehood/index.html

C'è anche " Jasmin " ;, un'assemblea per JVM, se vuoi sporcarti le mani e provare a programmare a basso livello con JVM.

http://jasmin.sourceforge.net/

L'ovvia prima scelta è Le specifiche della macchina virtuale Java . C'è anche La pagina Wikipedia , che collega a risorse aggiuntive.

Se la tua motivazione è scoprire come scrivere codice che funzioni più velocemente o utilizza meno memoria, le specifiche della VM non saranno di grande aiuto.

Le specifiche della VM non sono progettate per darti informazioni al riguardo, ma sono progettate per far sapere agli sviluppatori VM, in modo approssimativo, come implementare la VM.

Detto questo, non può far male leggerlo.

Il modo migliore per scoprire i problemi di velocità / memoria è a un livello molto più alto, ci sono un numero qualsiasi di libri che ti aiuteranno a codice più veloce / più snello.

Un profiler è uno strumento prezioso per testare il tuo codice per vedere cosa è più veloce / usa meno memoria. Profilo, vedi cosa è lento / utilizza molta memoria, modificalo, profilo, vedi cosa hanno fatto le modifiche.

Ecco una buona e breve spiegazione dell'heap, dell'allocazione degli oggetti e della garbage collection, Comprensione della gestione della memoria . Puoi esplorare di più a partire da lì.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top