jPOS Performance

/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