Il titolo cattura la mia domanda abbastanza bene. Mi chiedo se ci sia una buona risorsa o un punto di partenza per domande su come una JVM (non solo HotSpot, ma questo è ovviamente il punto di partenza) implementa o gestisce una funzionalità specifica? Non sto cercando le cose che sono nello JLS o nello JVM Spec - So di andare lì prima.Riferimento canonico su internals JVM per programmatore/sviluppatori
Ad esempio: Quando si cerca di capire i problemi di prestazioni, spesso si entra in conversazioni non su ciò che dice la specifica, ma come le migliori pratiche contemporanee appaiono nelle implementazioni pratiche. Ad esempio, esiste una mitologia urbana che dice "le classi finali hanno prestazioni migliori in Java perché la JVM può inline o altrimenti ottimizzare tali cose". Esiste una risorsa generale a cui possiamo rivolgerci per valutare queste affermazioni che galleggiano?
Offro una risposta alla mia domanda, con riferimenti specifici per HotSpot. E le offerte degli altri venditori? Specifiche per piccole JVM? Specifiche multi-core? Specifiche della piattaforma, se fanno la differenza? Specifiche per altre lingue JVM?
Solo per sfidare un paio di potenziali reclami: 1) Non si tratta di cercare ottimizzazioni premature (e in effetti, una migliore comprensione della piattaforma dovrebbe dissuadere uno sviluppatore più istruito!); e 2) So che i programmatori Java dovrebbero concentrarsi su un codice bello, portatile, run-anywhere, ma per molti di noi le specifiche della piattaforma finiscono per imporsi!
Questo è stato ispirato da alcuni utili commenti su un specific question da Thorbjørn Ravn Andersen. Sono felice di raccogliere altri esempi più utili oltre a quello che cito sopra, per motivare il motivo per cui la gente potrebbe desiderare questo tipo di risorse.
Alcune interessanti domande correlate su SO: Tail-call optimization in JVM, , optimizations that are going to be useless tomorrow, Differences between JVM implementations.
A cura di aggiungere: te lo assegnano la risposta sia per il miglior riferimento individuale accennato, o a qualcuno che fornisce un puntatore ad un sito web (forse costruita in risposta a questa domanda) che meglio concentrati/cataloghi Saggezza dell'implementazione JVM e conseguenze pratiche su linguaggi e sviluppatori client.
Bene, ho dato una settimana, ho intenzione di contrassegnare la mia risposta corretta, in attesa che qualcun altro fornisca qualcosa di meglio. – andersoj