Slideshare uses cookies to improve functionality and performance, and to provide you with relevant advertising. If you continue browsing the site, you agree to the use of cookies on this website. See our User Agreement and Privacy Policy.

Slideshare uses cookies to improve functionality and performance, and to provide you with relevant advertising. If you continue browsing the site, you agree to the use of cookies on this website. See our Privacy Policy and User Agreement for details.

5.
The Solution: CPU Cache● Core Demands Data, looks at its cache ○ If present (a "hit") then data returned to register ○ If absent (a "miss") then data looked up from memory and stored in the cache● Fast memory is expensive, a small amount is affordable

24.
Temporal Locality Repeatedly referring to same data in a short time spanSpatial Locality Referring to data that is close together in memorySequential Locality Referring to data that is arranged linearly in memory

25.
General Principles● Use smaller data types (-XX:+UseCompressedOops)● Avoid big holes in your data● Make accesses as linear as possible

41.
False Sharing in Your GC● Card Tables ○ Split RAM into cards ○ Table records which parts of RAM are written to ○ Avoid rescanning large blocks of RAM● BUT ... optimise by writing to the byte on every write● -XX:+UseCondCardMark ○ Use With Care: 15-20% sequential slowdown

42.
Too Long, Didnt Listen1. Caching Behaviour has a performance effect2. The effects are measurable3. There are common problems and solutions

46.
Value Types● Assign or pass the object you copy the value and not the reference● Allow control of the memory layout● Control of layout = Control of Caching Behaviour● Idea, initial prototypes in mlvm