Real-time Java

I finished (I think) the talk I'm going to give at the radar conference in Oz. The talk deals with creating the downstream data processing algorithm to assemble adaptively scanned phased array radar data. The talk is online (Powerpoint slides) now.

What I didn't say on the slides (doesn't belong in a scientific presentation) is that the program is written in pure Java. Real-time data processing in Java? Well, the time's here.

A few months ago, I reimplemented one of the simpler severe weather algorithms (the single-radar VIL algorithm if you are interested) in Java just so that we could do a time comparision against the heavily optimized C++ version that is running in real-time. The Java program was (wait for it ...) 5% faster. And this was without any serious effort at performance tuning or optimization. Of course, I knew going in Java's performance bottlenecks, so the program dealt with built-in arrays instead of the Collections classes. The C++ version uses STL's vector. Inspite of having to use built-in arrays, the Java program was significantly easier to write. But you knew that already.

This algorithm is the first real-time one (in WDSS-II) that's been written in Java. The first of many, I hope.

No comments:

Post a Comment