Re: Java execution acceleration
Stephen Cheng <[email protected]> Thu, 19 Jun 2008 22:24:14 +1200
| Newsgroups | gmane.comp.java.sun.kvm |
|---|---|
| Organization | Innaworks |
| Message-ID | <005001c8d1f6$a186b8a0$6501010a@STEPHENDELL> |
Software-based optimization works very well. Hotspot etc can makes use of run-time context, and can perform some optimizations that cannot be easily achieved by hardware or ahead-of-time optimization. On the other hand, ahead-of-time software optimization can perform CPU-expensive optimizations that could not be performed by Hotspot or hardware accelerometer. A high quality optimizer that specialises in whole program optimization can generate significant size reduction and/or performance boost. The three techniques are complementary - however Terrance has a good point regarding the economics. The economy of scale favours hotspot and ahead-of-time software based optimization, unless you happen to be ARM :-) Our alcheMo product family automates porting of J2ME applications/games to native platforms. Our mBooster is the de-facto standard for J2ME app optimization. They are both widely used, and therefore we are in a unique position to be able to compare performance and other aspects with hard data. Terrance is right - performance bottlenecks are typically not in bytecode level. A good run-time library implementation or a better game/app design are more likely to yield performance improvement, although without a doubt native apps does generally run faster than J2ME apps. (I am not knocking J2ME/JVM - any bytecode approach etc will have a performance penalty if however slight in a typical mobile environment and there are significant upsides to a bytecode approach too) - Stephen > -----Original Message----- > From: A mailing list for KVM discussion [mailto:[email protected]] > On Behalf Of [email protected] > Sent: Friday, 13 June 2008 8:33 p.m. > To: [email protected] > Subject: Re: Java execution acceleration > > Ah, difficult question ;-) > > I don't have hard numbers but I believe the majority of mobile games are > actually written in Java. Sometimes it's hard to tell as they look like > native apps - especially the built-in games. I've found performance on > most of these satisfactory or even excellent. It depends a lot on how the > game is designed, There a still quite a few mobile developers out there > who just don't fully understand the limitations they are working under and > make poor design choices. > > Native games sometimes are necessary if you want to use platform features > that aren't accessible through Java APIs ... this is probably the majority > of cases why one would go native. No doubt, there *are* situations where > just need to squeeze every ounce of performance out of the device and/or > the Java stack is not optimized well and that's the reason you go native. > > Porting is another story. Yes, fundamentally, moving Java apps from one > platform to another should be easy - it depends a lot on the range of > devices you target and the features your require your app to have. Best > case is it just runs. Worst case is you have to modify a significant part > of your app. There is just too much variation in the mobile space to have > a "one-size-fits-all" approach - which, at the same time, is also a > strenght. > > Of course, porting from say, Symbian to Windows Mobile, is another story > altogether ;-) > > -- Terrence > [Message sent by forum member 'terrencebarr' (terrencebarr)] > > http://forums.java.net/jive/thread.jspa?messageID=280120 > > ========================================================================== > = > To unsubscribe, send email to [email protected] and include in the > body > of the message "signoff KVM-INTEREST". For general help, send email to > [email protected] and include in the body of the message "help". =========================================================================== To unsubscribe, send email to [email protected] and include in the body of the message "signoff KVM-INTEREST". For general help, send email to [email protected] and include in the body of the message "help".