processing unit (GPU) to accelerate complex Java 2D operations. Java 7 Several performance improvements have been released for Java 7: Future performance improvements are planned for an update of Java 6 or Java 7: Provide JVM support for dynamic programming languages, following the prototyping work currently done on the Da Vinci Machine (Multi Language Virtual Machine), Enhance the existing concurrency library by managing parallel computing on multi-core processors, Allow the JVM to use both the client and server JIT compilers in the same session with a method called tiered compiling: The client would be used at startup (because it is good at startup and for small applications), The server would be used for long-term running of the application (because it outperforms the client compiler for this). Replace the existing concurrent low-pause garbage collector (also called concurrent mark-sweep (CMS) collector) by a new collector called Garbage First (G1) to ensure consistent pauses over time. Comparison to other languages Objectively comparing the performance of a Java program and an equivalent one written in another language such as C++ needs a carefully and thoughtfully constructed benchmark which compares programs completing identical tasks. The target platform of Java's bytecode compiler is the Java platform, and the bytecode is either interpreted or compiled into machine code by the JVM. Other compilers almost always target a specific hardware and software platform, producing machine code that will stay virtually unchanged during execution. Very different and hard-to-compare scenarios arise from these two different approaches: static vs. dynamic compilations and recompilations, the availability of precise information about the runtime environment and others. Java is often compiled just-in-time at runtime by the Java virtual machine, but may also be compiled ahead-of-time, as is C++. When compiled just-in-time, the micro-benchmarks of The Computer Language Benchmarks Game indicate the following about its performance: slower than compiled languages such as C or C++, similar to other just-in-time compiled languages such as C#, much faster than languages without an effective native-code compiler (JIT or AOT), such as Perl, Ruby, PHP and Python. Program speed Benchmarks often measure performance for small numerically intensive programs. In some rare real-life programs, Java out-performs C. One example is the benchmark of Jake2 (a clone of Quake II written in Java by translating the original GPL C code). The Java 5.0 version performs better in some hardware configurations than its C counterpart. While it is not specified how the