That's a stupid question, isn't it? Memory is just where you keep things. Nevertheless the majority of of performance problems I have seen were in the end connected to memory issues. In modern computers memory is a complex multi-layered thing affected by the hardware, operating system and the JVM. And considering that it's shared among multiple CPUs we get a lot of classical distributed problems without an actual network anywhere in sight.
You should attend this talk if any of the following questions give you pause:
- How slow is memory?
- How CPU cache behaves on a multi-core chip?
- What's the difference between x86, PowerPC, SPARC and Alpha memory model?
- What does volatile really do?
- What does synchronized really do?
- Why GC doesn't scale well (so far)?
- What can be done to reduce or eliminate GC pauses?
To answer those questions I'll build a simple CPU model in Java to illustrate some of the concepts. As a bonus I'll also talk about some improvements in the modern hardware and what it could mean for the next generation JVM.
Engineer turned PhD and CEO. Raising three kids: @jrebel, @liverebel and @rubykabanova. bio from Twitter
Sign in to add slides, notes or videos to this session