We're sorry but this page doesn't work properly without JavaScript enabled. Please enable it to continue.
Feedback

Taming Metaspace: a look at the machinery, and a proposal for a better one

Formale Metadaten

Titel
Taming Metaspace: a look at the machinery, and a proposal for a better one
Serientitel
Anzahl der Teile
490
Autor
Lizenz
CC-Namensnennung 2.0 Belgien:
Sie dürfen das Werk bzw. den Inhalt zu jedem legalen Zweck nutzen, verändern und in unveränderter oder veränderter Form vervielfältigen, verbreiten und öffentlich zugänglich machen, sofern Sie den Namen des Autors/Rechteinhabers in der von ihm festgelegten Weise nennen.
Identifikatoren
Herausgeber
Erscheinungsjahr
Sprache

Inhaltliche Metadaten

Fachgebiet
Genre
Abstract
When examining memory footprint of a JVM process, the delta between Java heap usage and actual working set size can be surprisingly large. The JVM uses off-heap memory for a lot of things: thread stacks, compiler arenas, code heap, byte buffers, GC control... however, one of the largest consumers of off-heap memory can be class metadata. Class metadata are stored in Metaspace, which includes the Compressed Class Space. The talk will explore what Metaspace actually is and what is stored there; describe the architecture of the Metaspace allocator and the Compressed Class Space; how it interacts with the GC; how it is sized. We will highlight waste areas and demonstrate how to use jcmd to examine Metaspace internals. The current implementation of the Metaspace allocator suffers from a number of shortcomings. They can manifest in excessive waste and a certain "clinginess" - an unwillingness to let go of unused memory. At SAP, we developed an improved version which is more frugal with memory and provides a much improved elasticity. So the second part of this talk will concentrate on our new implementation. We will highlight the differences to the old architecture, demonstrate advantages and examine how it works.