The primary design tenets of Java are based on a cross-platform ‘write once run anywhere’ language that is agnostic of the underlying Operating System and Server that the Java applications run on. As a Java architect/developer you don’t have to worry about ultimately which underlying OS/Server your application is going to execute on, as long as it is compatible. Java developers and architects however would be interested in features of the underlying OS/Server architecture which can make their Java applications execute faster, be more secure and reliable.
Let us start the discussion at a very basic level - Application developers can develop the application code on any of the various OS that are available in the market today. Java language is agnostic at this stage to the OS. The brilliant source code written by the Java Application developer now gets compiled to Java Byte code which in the Java terminology is referred to as Client Side compilation. This compilation to Java Byte code is what enables Java developers to ‘write once’. Java Byte code can run on any compatible OS and server, hence making the source code agnostic of OS/Server. Post Java Byte code creation, the interaction between the Java application and the underlying OS/Server is more intimate. The journey continues - The enterprise applications framework executes these Java Byte codes in a run time environment which is known as Java Virtual Machine (JVM) or Java Runtime Environment (JRE). The JVM has close ties to the underlying OS and Hardware because it leverages resources offered by the OS and the Server. Java Byte code is now compiled to a machine language executable code which is platform specific. This is referred to as Server side compilation. Various optimization techniques built into JVM, for example Just in time (JIT) compilation now works on the various OS and Server resources to ensure most optimal execution of the Java Byte codes. The latter half of the Java application creation to execution journey is where Enterprises should pay close attention to which server platform they choose for running their Java Enterprise Applications. We can summarize this application development journey with the help of the picture below:
Let us continue this conversation to developments in Java today. Oracle released Java SE 8 in March 2014 - A Java release that developers and the Java community had been awaiting anxiously to experience the joy of running their applications faster and in a highly parallel fashion. Few months later, we see an extremely high adoption rate for Java8 in the industry. Lambda expressions and Streams have equipped Java Application developers with features in Java that allow them to write Enterprise Applications which are simpler to understand, faster and require lesser lines of code. If we focus on the ‘faster’ part of the previous statement the key point that stands out is: New Java 8 Lambdas allow developers to leverage multi-core capabilities of the underlying platform through more concise coding techniques. This is great news for Java Application Developers! They can spend more time designing business logic and have their applications execute in a faster, highly parallel fashion without having to worry about the behind the scenes implementation. Learn more at:
http://www.oracle.com/events/us/en/java8/index.html
Oracle SPARC Servers are the ideal platform that provide a fast, multi-core and highly threaded environment for Java8 applications to execute fastest. One example of the SPARC Servers offering is a single socket T5 server which provides 16 cores, 128 threads and up to 512GB for Java8 applications to execute in the most optimized parallel manner. Great example of these resources being leveraged by multi-core capability of Java8 on SPARC T5 servers is the specjbb2013 benchmark. We ran the specjbb2013 benchmark on a SPARC T5-2 server, once with JDK7 and the other time with JDK8. Result - We observed 40% improvement when we ran the benchmark using JDK8 implementation over JDK7. The benchmark leveraged the combination of parallel features on Java8 and Multi-core capabilities of SPARC T5 server to provide an outstanding result. These benchmark results can be found at:
http://www.spec.org/jbb2013/results/jbb2013multijvm.html
Here is a video link about why Java8 runs fastest on SPARC Servers:
http://medianetwork.oracle.com/video/player/3657939184001
So, whether you are trying to develop new applications based on Java8 or looking to boost your existing application performance by migrating them to Java8, you will observe most optimal performance when running them on Oracle SPARC servers. Netbeans IDE already supports easy and smart migration to Java8 allowing developers to start relishing the benefits of Lambda Expressions, Parallel Streams and similar in an easy manner. This Oracle eco-system of Java, SPARC and Netbeans IDE solution allows us to meet the daily mission critical business needs of our customers in the most optimal and cost effective way. You can learn more about Smart Migration to Java8 using IDE here:
www.oraclejavamagazine-digital.com/javamagazine_twitter/20140506#pg43