Overcoming Full Code Caches
AMD have blogged about their new solution for overcoming the problem of the code cache of compiled Java methods becoming full. This solution was developed in coordination with the Sun/Oracle Hotspot team.
Previously, the only solution was to shut off the JIT compiler, meaning that nothing more would get compiled.
AMD’s solution allows the code cache to be selectively cleaned, based on application behaviour. When the code cache becomes full, the oldest compiled Java methods are unloaded first, which should allow the newest redeployment version to run faster. If any methods marked for removal are not called within a set period following cleanup, they will be removed using existing mechanisms in the Java Virtual Machine.
This new feature is available in OpenJDK 7 build83, but is set off by default.