March 31, 2006
Sun Java Developer Days - Day Two
Whilst I didn't get as much out of today's talks as yesterday's I'd still like to share some of my impressions of the final day of this year's Sun Developer Days conference.
Improving Java Application Performance: Threading and Garbage Collection
Simon Ritter started by asking who within the audience had thought Java was slow when they first started working with it. Predictably the response was close to 100%. When he asked who thought Java was still slow he was surprised that many still said yes. Most likely due to poor application code, Simon said. Then he launched into a description of the HotSpot virtual machine heap layout and its use of different spaces - the Eden Space (for new objects), Survivor Spaces (for objects still alive when the Garbage Collector runs), Tenured Space (for objects that are old enough to be moved from Survivor Spaces when the GC runs) and, finally, Permanent Space (used by the virtual machine but not applications).
Simon really seemed to be in his element when he drilled down to discuss different GC algorithms (Thread Local Allocation, Parallel Copy Collector, Mark Sweep Compact, Low Pause Collector or Concurrent Mark Sweep, Incremental Concurrent Mark Sweep, Throughput Collector) and associated virtual machine options.
To illustrate the importance of using the latest JVM, he also mentioned several performance improvements in JRE 5.0_06.
Having discussed how different options can direct the JVM to use different GC algorithms, Simon also described how JVM options can be used to set ergonomic goals such as Maximum Pause Time, Throughput and Footprint. And he also stressed tuning possibilities such as increasing the heap size or increasing the size of young generation. Given that most objects (80 - 98%) are very short lived the last of these would seem very relevant.
There were other aspects of performance improvement discussed but one which he rightly stressed was this: make sure you do profiling before altering one or more of the many JVM options.
Java ME and NetBeans Mobility Pack
Not having had the need to use the Java Micro Edition, I sat in on Angela Caicedo's session out of curiosity. In her Columbian accent (another example of the diversity of the speakers at this conference), Angela certainly conveyed her enthusiasm for mobile applications. I didn't focus closely on most of the detail but I did find her demo impressive. Using NetBeans she was easily able to graphically develop an application that sent a message via Bluetooth to a Sony phone. Perhaps one day I'll have the need or make the time to explore Java ME applications.
Effective (Modern) Database Strategies
Another talk, another accent - this time the dinky di accent of Tom Daly from Adelaide. His talk addressed Sun's increasing focus on supporting open source databases, specifically MySQL, PostgreSQL and Java DB (based on Apache Derby, formerly Cloudscape).
Whilst describing the trend towards and business incentives for using open source databases, Tom was at pains to emphasise that he was not recommending migrating mission critical applications away from well tested enterprise database engines. However, it was interesting to learn about the MySQL benchmark showing more than 2,000 concurrent OLTP users. In the end, it's a judgement call.
And that was it. I almost stayed to learn something more about Ajax but the session looked fairly introductory (given that I've already done some reading) and I had real work to do back at the office... and, if the truth be known, some beverages to consume at beer o'clock.
