× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.




From: Richard Schoen
Some pure Java routines run just fine natively.

I can see why Java AWT wouldn't run well under IBM i. IBM i isn't designed for GUI workstation APIs. And IBM's implementation is a kludge.

Language performance (in general) is relative to what you compare it to. The following scorecard was interesting to me.

http://dada.perl.it/shootout/craps.html

Object instantiation under Java is nearly identical to Borland C, and about 57 times faster than Ruby. But string concatenation under Borland C is 24 times faster than Java. Word count is 5.7 times faster under Borland C than Java. A "Hello World" benchmark is 60 times faster under Borland C than Java.

On average, it appears that Java performs poorly compared to Borland C. But it performs quite a bit better than interpreted runtimes like Ruby and PHP. Java is about 54 times faster than PHP at array access, for example.

PHP and Ruby don't seem to be well suited for developing object oriented frameworks. There's quite a bit of chatter among PHP developers about tools like Zend Framework performing poorly, for example.

But language performance is secondary to runtime architecture. Your point about AWT is a good example - the IBM i implementation is a kludge. IBM i is not for GUI workstation APIs.

Another interesting thing about Java is the correlation between the number of CPUs and JVM instances (or Java Application server instances) you must run, as pointed out in various SPEC benchmarks. A lot of folks have the misunderstanding that you can take advantage of additional CPUs by instantiating additional Java threads. But the benchmarks make it clear that you need additional JVM instances. If you had a 32-way CPU you'd need 32 instances of Websphere to maximize performance, for example. You can't do it by configuring additional WAS threads. Java runtimes are constrained by synchronization bottlenecks.

The downside is that you must deploy your applications across multiple WAS instances - which substantially adds to your TCO, mostly due to manpower.

Distributed architecture has had more of a negative impact on TCO than language performance. The world is beginning to see that as Wintel and Lintel servers have multiplied like rabbits in data centers. A number of years ago it was reported that Google had over 100,000 servers in a California data center, for example - not very green, is it?

How does all this relate to the original topic? The IBM i native runtime environment both performs better than JVM and interpreted environments like PHP and emulated environments like PASE, and most native applications scale automatically as you add more users. You never need to deploy a native application across multiple application server environments, for example. Task dispatching and workload management under the native environment are arguably the best and most stable on the planet.

Nathan.





As an Amazon Associate we earn from qualifying purchases.

This thread ...

Follow-Ups:
Replies:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.