Jove也可以用来将java字节吗编译成本地码
但是只支持wintel平台,
成熟的编译字节吗到本地码的工具好象就是jove和jet了
gcj也可以,但是不成熟,连awt,swing都没有
What is JOVE?
JOVE is the first Optimizing Native Compiler for large-scale Java applications. JOVE delivers the performance, scalability, and deployability needed for Java to successfully enter the mainstream of corporate application development.
What is an Optimizing Native Compiler?
JOVE combines sophisticated whole-program and object-oriented optimization technologies, native compilation, and a scaleable runtime architecture and environment. The runtime system includes state-of-the-art multi-threaded generational garbage collection, native multi-threading, low overhead polymorphism, and a number of other important technology pieces.
As the result of all this technology, JOVE enables the creation of very high performance, robust executable files for the deployment of very large, complex Java applications.
Why is JOVE important to the success of Java?
To reach its full market potential and allow the Java IDE vendors to reach their strategic goals, Java must successfully penetrate the corporate enterprise application market, perhaps the most lucrative software development market on the planet. To do that Java must be proven to be highly productive, robust, scaleable, high performance, and ultimately deployable.
What problem does JOVE solve?
A basic problem with current Java implementations is that they were designed to support very small applet-style programs, yet they are being pushed as a general solution to all enterprise programming problems. As language designers and implementors we see Java having many of the same architectural problems as the original object-oriented language, Smalltalk, for building large complex apps. Scalability, performance, and deployability are not currently areas of strength for Java. JOVE addresses and solves many of these problems, making Java a great choice for building mission-critical systems
What kinds of applications will benefit from JOVE?
Although any Java application may see significant benefit from JOVE, large, complex applications will see especially dramatic benefits in terms of performance and memory footprint. Both server and fat client applications will benefit from the new technology which works with all standard Java IDE’s. Also, applications that have a need for very fast, reliable, precise garbage collection will find that JOVE’s state-of-the-art collection system give them substantial advantages.
How does JOVE work?
Simply put, JOVE takes standard Java class files that are the output of any Java IDE, optimizes the heck out of them, packages them with extremely high performance runtime support, reduces them to native Wintel machine code, and creates an executable file for deployment.
Developers still use their favorite Java IDE’s, still create the write-once run anywhere class file versions of their applications...and when they want to deploy on a Wintel platform they run their code through JOVE before deployment. Other processor/OS combinations are planned.
What's special about the JOVE technology?
JOVE blends classical and leading edge optimizations, native code generation, and a super high performance runtime environment into an unprecedented package.
The heart of JOVE is a totally new optimization framework that incorporates the most recent advances in optimizing compiler technology. Classical global and local optimization techniques are extended with new techniques for eliminating the performance bottlenecks of object-oriented languages such as Java.
JOVE is a "whole program" optimizer. This means that JOVE processes an entire Java program as a single unit. Because JOVE operates upon class files it is capable of optimizing all parts of a program including third-party class libraries for which source code is not available.
JOVE generates highly optimized, native code for a specific target processor. The initial release of JOVE produces code for Intel's IA-32 architecture (Pentium, Pentium II, Pentium II, etc.). The output of the JOVE optimizer is, for non-gui applications a single, self contained .exe file, or for gui applications an executable with minimal references to awt native code, that is capable of executing under either Windows/98, Windows/NT or Windows 2000.
JOVE is designed to support the deployment of very large programs. This requires a runtime environment that is scaled to support such programs. The JOVE runtime is structured around a high-performance, multi-generational garbage collector. The JOVE collector is capable of dealing with very high object creation and destruction rates and very large equilibrium levels. It is a precise collector and does not suffer from the memory leaks that are characteristic of "conservative" garbage collectors. The JOVE runtime environment is also optimized to support multi-threaded programs. The JOVE runtime architecture is particularly suitable for SMP environments.
How fast will JOVE make Java programs run?
A major goal of JOVE is to take Java to FORTRAN-like levels of performance (C++ performance simply isn’t good enough) for programs that have thousands of classes and use millions of objects.
Why do you think JOVE will be able to achieve Fortran-like performance?
For the last 30 years, the best optimizing compilers have been written for FORTRAN. One reason for this is that the constructs of the FORTRAN language are quite amenable to optimization while languages like C and C++ have heavily used constructs (unconstrained pointers, array/pointer semantics, etc.) that are very difficult to optimize. While Java has a C-like syntax it lacks most of the constructs that make C and C++ difficult to optimize. Implementors who set their sights on C++ level performance are shooting too low. The application of JOVE's object-oriented optimizations result in a program that internally is very similar in structure to a FORTRAN program and which can be optimized in a similar manner.
Which Java IDEs does JOVE work with?
JOVE works with any Java environment that produces standard Java class files.
Is JOVE a JIT?
Absolutely not! JIT technologies, which must do their work in real time, rely on having small applications to process. When applications get huge (thousands of classes/millions of objects) the performance of JIT technology breaks down.
What is Instantiations’ perspective on performance, scalability, and deployability?
These are absolutely critical issues for corporate developers who are attempting to build large complex programs.
Performance = speed + memory footprint + robustness
Scalability = large size + expandability
Deployability = stability + performance + completeness (everything you need to run the program comes with it)
Success =( (performance + scalability + deployability) x usefulness) / cost
Do you support the dynamic features of Java?
The Java language includes many dynamic features such as dynamic object creation, garbage collection, reflection, Beans, and RMI. JOVE supports all of these features. The only dynamic feature of Java that JOVE does not currently support is the dynamic loading of class files. (See our Flash Compiler section if dynamic class loading is critical to your system). JOVE is designed to support "sealed" programs. A sealed program is one that does not require dynamic loading of classes. Its structure is completely determined at deployment time and a single sealed executable is produced.
Our experience is that most very large, complex corporate applications are sealed programs by nature and necessity. Corporate developers usually must know what their programs are prior to deployment. Even today, most corporate developers use COBOL which is totally static. Large mission-critical systems often must have the very reliable, predictable performance that is delivered by static compilation
How does Instantiations make the JOVE technology available?
The JOVE Optimizing Native Compiler for Java Technology product is available for purchase directly from our web site. Instantiations also licenses JOVE technology to OEMs who incorporate the technology into their own products and services.
What does the future hold in store for Java? Has it reached maturity yet?
Java will ultimately be the programming language that enables wide-spread adoption of object-oriented programming technology. Analysts are predicting large sustained growth in Java revenues. Java could become the successor to COBOL, the most popular language of all time for building serious corporate applications.
What is the background that let Instantiations create JOVE?
Instantiations, Inc. is an extremely experienced object technology company. The team that Instantiations, Inc. has assembled to create JOVE is uniquely qualified for this task. It is composed of key individuals who have proven industry track records in both the implementation of virtual machines for object-oriented languages and the creation of classic optimizing compilers. Our Chief Technical Officer is Allen Wirfs-Brock. Allen and the core of his team have worked together for over 15 years developing high performance virtual machines and deployment technologies for Smalltalk and are now applying their experience to helping Java mature into a serious enterprise development platform.