http://managedruntime.org/ è piuttosto scarso su cosa sono esattamente i tarball e perché gli utenti vorrebbero. http://lwn.net/Articles/392307/ ha alcuni dettagli in più, ma l'autore non è sicuro di cosa facciano effettivamente i moduli di gestione della memoria. Apparentemente l'obiettivo di alto livello è quello di ridurre le pause GC, ma sarei interessato a (suggerimenti per) un riassunto di ciò che fa il modulo, e perché/come ciò migliora le cose. Particolarmente impressionante sarebbe un puntatore a qualcosa su quanto impatto hanno queste patch (una valutazione).Cosa contengono effettivamente le patch del kernel di Managed Runtime Initiative e JVM?
risposta
Il GC Pauseless di Azul si basa sul sistema di gestione della memoria del sistema operativo sottostante. sull'hardware Azul, questo è stato eseguito dal kernel personalizzato di Azul (Aztec). Su Linux, il sistema di gestione della memoria deve essere in grado di supportare un numero sufficiente di operazioni di gestione della memoria al secondo al fine di tenere il passo con la quantità di spazzatura creata al secondo. Quando gli Azul portarono la Azul JVM su Linux, stabilirono che le sue API di gestione della memoria erano relativamente lente rispetto a quelle di Aztec, se non altro perché le API MM di Linux non erano mai state pensate per supportare qualcosa come PGC. le patch MRT migliorano il numero di operazioni al secondo che il kernel Linux può gestire, e quindi supportano PGC.
Un'analogia sarebbe l'aggiunta di poll/select a Berkeley Sockets e in seguito, nel 2001, quando epoll è stato aggiunto al kernel linux (http://www.xmailserver.org/linux-patches/nio-improve.html).
[disclaimer: anche se io sono una tecnologia esecutiva e attuale consulente tecnico ex ad Azul, non parlo per loro]
- 1. Cosa JVM bandiera CMSClassUnloadingEnabled effettivamente fare?
- 2. XNA sostituisce effettivamente Managed Directx?
- 3. Il comando patch del kernel si blocca
- 4. Cosa significano le affermazioni "#pragma managed (push, off)" e "#pragma managed (pop)"?
- 5. differenze di patch tra kernel di Android e kernel di vanilla linux
- 6. Cosa fa effettivamente addChildViewController?
- 7. Cosa contengono le intestazioni precompilate di Visual Studio?
- 8. Cosa fa effettivamente "__COMPAT_LAYER"?
- 9. Cosa contengono effettivamente i pacchetti * -dev nei repository di pacchetti Linux?
- 10. Managed C++ e AnyCPU
- 11. Cosa fa effettivamente Process.Dispose()?
- 12. Cosa fa effettivamente session_register_shutdown?
- 13. Cosa restituisce effettivamente jquery $?
- 14. Cosa fa mysqli_store_result() Effettivamente?
- 15. Reload classi durante il runtime JVM
- 16. cosa significa "kernel contaminato"?
- 17. Qual è la differenza tra JVM Spec, JVM Attuazione, JVM Runtime
- 18. Che cosa misura effettivamente GetTickCount()?
- 19. Cosa fa effettivamente il controllo del gestore di script?
- 20. linguaggio basato su JVM senza runtime lingua
- 21. Creazione di elenchi e set in Scala: cosa ottengo effettivamente?
- 22. Cosa fa effettivamente XCode 'Clean'?
- 23. Cosa causa effettivamente la chiamata di Session_Start?
- 24. Nome metodo vuoto, cosa fa effettivamente?
- 25. qualcuno può spiegarmi cosa fanno effettivamente le chiavi primarie?
- 26. Ottenere le informazioni di debug del kernel di Linux dopo l'arresto del kernel
- 27. Che cosa significa "EXPORT_SYMBOL" nel codice del kernel di Linux?
- 28. Cosa significa __init nel codice del kernel di Linux?
- 29. cosa fa effettivamente l'istruzione di assemblaggio 'db'?
- 30. Come scegliere le giuste funzioni del kernel
sarebbe piaciuto di più (LWN-style) spessore tecnico, ma grazie per il rispondi comunque. – Yang