jPOS Performance
Tuesday, April 26th, 2005/by apr/
I recently came across a java based commercial ISO-8583 encoder/decoder kind of application that claimed to perform as much as 2000 encode/decode operations per second on an average machine. Wow! that’s fast!
They even described their benchmark, they were talking about average messages with a 16 field set and a secondary bitmap present. It was not clear to me if they were doing both operations (encode/decode) in each cycle, or just one.
I decided to give jPOS a try on an average machine [*], I created a message with said number of fields, including a secondary bitmap, and a little loop including a pack and an unpack operation. I was pleased with the result: in excess 20000 pack/unpack operations per second.
Then I decided to compare this same test against another commercial product, our own High performance, ISO-8583 C lightweight library. It was fast, but not as fast as I would expect, we get 40000+ pack/unpack operations per second, 2x compared to jPOS, but hey, that’s C, I was expecting a 5x or 10x ratio there…
The conclusions are pretty obvious to me… if you are up to, you can make Java perform slow like a turtle, and you can still charge people for it.
[*] Pentium 4, 1.6 Ghz, aprox 3k bogomips