Competition is GOOD
So some of you may remember an old comparison test I did a while back where I ran Java3D, Xith3D and jMonkeyEngine all against the same benchmark fly through of a Quake 3 level and recorded memory and frame rate. No? That's ok, it's been awhile and was already a bit hazy to me too. :) The short version is that jME came out ahead by a good margin.
Today however I was pointed over to a thread on the xith forums talking about how they were now the undisputed fastest java engine. Curious, I pulled down the xith source from svn and a copy of the old test from my blog post. Lo and behold, they were indeed running that particular test quite a bit faster (220fps - Xith and 180fps - jME... almost 20% slower!) Now, mind you, this test is of a completely static scene with a lot of shared textures, not really a living breathing Q3 level, but still... Was a very pleasant surprise to me. Kudos to the guy actually doing things over at Xith, Marvin Fröhlich!
Now as the title suggests, I feel competition is good because it helps you see where you can shave off the rough edges. After about an hour or so of playing with glIntercept the reason for the difference became clear (we were still sending several unneeded JNI calls in this particular test setup) and I happily brought the jME end of the test up to 235fps with some non-test specific upgrades to the jME core.
Actually, I was afterwards able bring that up to over 250fps (~15% increase over xith) by adding two lines to the test, letting the core know that it can ignore checks for new light states or cull states for this particular test.
Thanks for the push, Marvin, and nice work!
Labels: jMonkeyEngine


3 Comments:
Are these changes applied in 1.0 branch or will show up in 2.0 branch?
They are in CVS right now and they've been applied to the 2.0 code as well.
That's really nice improvement! I'll update my libraries soon to check if it helps my project.
Post a Comment
<< Home