The PL seminar will have a guest speaker this coming Monday, October
27. Please note that this presents an opportunity to eat cookies
before lunchtime. Details and abstract are below.
~S
Efficient Memory Usage in Java: Current Practices and Challenges
Gary Sevitsky, Intelligent Application Analysis Group, IBM TJ Watson
Research Center
Time: 11:00 am, Room 2310 CS
Cookies: 10:45 am, Room 2310 CS
Abstract:
It is easy these days to build Java applications with large memory
requirements -- in fact it takes significant effort not to. It is
common to see multi-gigabyte heaps with tens of millions of objects,
where as much as 60-80% of the memory is the overhead of data
representation. These systemic space inefficiencies are the combined
result of local decisions made at many layers of application and
framework code, along with limitations of the Java language and
runtime. Poor use of memory has a significant impact on scalability,
power consumption, reliability, and even application performance.
In this talk we aim to raise awareness of the patterns and practices
that lead to excessive memory consumption in Java. We present a
sampling of patterns drawn from dozens of industrial applications in
which our group has helped diagnose memory problems over the past
eight years. The patterns are organized around common design problems
such as modeling data types, representing relationships, and managing
object lifetime. Mitigating memory problems will require a
multifaceted approach, and may require new kinds of metrics, tools,
optimizations, and language features. We sketch out some possible
strategies for improving the state of memory usage, and give an
overview of our memory analysis tool and design health methodology.
|