2012 · 22 citations · 22 references
ComputingComputer ScienceMemoryOperating SystemsProgramming LanguagesMemory HierarchyMemory ManagementRuntime EnvironmentsRuntime SystemsSoftware MetricsVirtual MemoryAutomatic Memory ManagementDynamic Memory ManagementLifetimesMemory Access PatternsMemory OverheadObject Lifetime AnalysisObject PersistenceSurvival Rates
While often designed with a single language in mind, managed runtimes like the Java virtual machine (JVM) have become the target of not one but many languages, all of which benefit from the runtime's services. One of these services is automatic memory management. In this paper, we compare and contrast the memory behaviour of programs written in Java and Scala, respectively, two languages which both target the same platform: the JVM. We both analyze core object demographics like object lifetimes as well as secondary properties of objects like their associated monitors and identity hash-codes. We find that objects in Scala programs have lower survival rates and higher rates of immutability, which is only partly explained by the memory behaviour of objects representing closures or boxed primitives. Other metrics vary more by benchmark than language.
22
Stephen M. Blackburn, Robin Garner, Chris Hoffmann et al. · 2006 · 1.6K citations · Full text
David F. Bacon, Ravi Konuru, Chet Murthy et al. · 1998 · 228 citations · Full text
Proceedings of the European Conference on Object-oriented Programming (ECOOP'99)
Ulrik Pagh Schultz, Julia Lawall, Charles Consel et al. · Springer US · 1999 · 204 citations
Bruno Dufour, Karel Driesen, Laurie Hendren et al. · 2003 · 159 citations
Lukáš Marek, Alex Villazón, Yudi Zheng et al. · 2012 · 115 citations