# 06 Feb 2012
7 notes
HeapAudit – JVM Memory Profiler for the Real World
HeapAudit is a foursquare open source project designed for understanding JVM heap allocations. It is implemented as a Java agent built on top of ASM.
Neat.
# 25 Jul 2011
24 notes
Callbacks, synchronous and asynchronous
In the end it works, but imagine what happens if callback-based APIs become popular and every jar you use with a callback in its API has to have its own thread pool. Kind of sucks. That’s probably why Netty punts on the issue. Too hard to make policy decisions about this in a low-level networking library.
/cc Waffle, who said some of this before.
# 14 Jun 2011
1 note
Martin Odersky: OSCON 2011
Whut? Odersky is keynoting at “OSCON Java”, right after Twitter: From Ruby on Rails to the JVM. Really shocked they did not bring in somebody to go over Java 7’s support for strings in switch statements.
“The behaviour of those objects is in part defined at object initialization time, so changing the code that is run during initialization will not affect the running application as the objects were alredy initialized. The JRebel Lift plug-in reinstantiates those singleton objects after their classes are reloaded, so changes in initialization code are picked up.”
“Getting at such APIs, randomly and interactively, has been impossible before JSR 292, at least without statically or dynamically spinning bytecoded adapters. Now it works well in a small program. One of JSR 292’s benefits should be much easier access to Java from dynamic languages.”
“And then, to make it more pleasant to use, we write a static function that can take advantage of Java’s half-assed type inference.”
# 28 Apr 2010
1 note
“JSR 292 primarily focuses on the needs of dynamic languages. It introduces two key new concepts - a new method invocation instruction, and method handles with a corresponding type transformer factory. It also extends the grammar for Java identifiers whose spellings can be any sequence of characters (referred to as ‘Exotic Identifiers’).”
— JSR 292 and the Multi-lingual JVM (sounds hot)