Java performance
In software development, the programming language Java was historically considered slower than the fastest 3rd generation typed languages such as C and C++. The main reason being a different language design, where after compiling, Java programs run on a Java virtual machine (JVM) rather than directly on the computer's processor as native code, as do C and C++ programs. Performance was a matter of concern because much business software has been written in Java after the language quickly became popular in the late 1990s and early 2000s.
- Comment
- enIn software development, the programming language Java was historically considered slower than the fastest 3rd generation typed languages such as C and C++. The main reason being a different language design, where after compiling, Java programs run on a Java virtual machine (JVM) rather than directly on the computer's processor as native code, as do C and C++ programs. Performance was a matter of concern because much business software has been written in Java after the language quickly became popular in the late 1990s and early 2000s.
- Date
- enApril 2022
- Has abstract
- enIn software development, the programming language Java was historically considered slower than the fastest 3rd generation typed languages such as C and C++. The main reason being a different language design, where after compiling, Java programs run on a Java virtual machine (JVM) rather than directly on the computer's processor as native code, as do C and C++ programs. Performance was a matter of concern because much business software has been written in Java after the language quickly became popular in the late 1990s and early 2000s. Since the late 1990s, the execution speed of Java programs improved significantly via introduction of just-in-time compilation (JIT) (in 1997 for Java 1.1), the addition of language features supporting better code analysis, and optimizations in the JVM (such as HotSpot becoming the default for Sun's JVM in 2000). Hardware execution of Java bytecode, such as that offered by ARM's Jazelle, was also explored to offer significant performance improvements. The performance of a Java bytecode compiled Java program depends on how optimally its given tasks are managed by the host Java virtual machine (JVM), and how well the JVM exploits the features of the computer hardware and operating system (OS) in doing so. Thus, any Java performance test or comparison has to always report the version, vendor, OS and hardware architecture of the used JVM. In a similar manner, the performance of the equivalent natively compiled program will depend on the quality of its generated machine code, so the test or comparison also has to report the name, version and vendor of the used compiler, and its activated compiler optimization directives.
- Is primary topic of
- Java performance
- Label
- enJava performance
- Link from a Wikipage to an external page
- prefetch.net/presentations/DebuggingJavaPerformance.pdf
- java.sun.com/docs/performance/
- javaperformancetuning.com/
- github.com/raydac/Java-performance-mind-map
- java.sun.com/j2se/1.4.2/performance.guide.html
- Link from a Wikipage to another Wikipage
- .NET Framework
- Ahead-of-time compilation
- API
- Application programming interface
- Array data type
- Benchmark (computing)
- Block (programming)
- Bytecode
- C (programming language)
- C++
- Category:Computing platforms
- Category:Java platform
- Category:Software optimization
- Central processor unit
- Class (computer science)
- Common Language Runtime
- Comparison of Java and C++
- Compiler optimization
- Computer hardware
- Computer performance
- Computer system
- Concurrency control
- CPU design
- Criticism of Java
- C Sharp (programming language)
- Daemon (computing)
- Da Vinci Machine
- Deoptimization
- Direct3D
- Dynamic compilation
- Dynamic-link library
- Dynamic memory allocation
- Dynamic programming language
- Dynamic recompilation
- Excelsior JET
- Exception handling
- Fortran
- Garbage collection (computer science)
- GPL
- Graph coloring
- Graphics processing unit
- Grid computing
- Hadoop
- High performance computing
- HotSpot (virtual machine)
- Inline expansion
- Jake2
- JAR (file format)
- Java (programming language)
- Java (software platform)
- Java 2D
- Java 6
- Java bytecode
- Java Class Library
- Java ConcurrentMap
- JavaFX
- Java Native Access
- Java Native Interface
- Java platform
- Java Platform
- Java Platform, Micro Edition
- Java processor
- Java Runtime Environment
- Java version history
- Java virtual machine
- Jazelle
- JStik
- Just-in-time compilation
- Lock (computer science)
- Memory footprint
- Memory-mapped file
- Metadata
- Method (computer science)
- Microsoft Windows
- Mono (software)
- Multi-core
- Multi-user
- Nailgun (software)
- Native code
- NortonLifeLock
- Object (computer science)
- OpenGL
- Operating system
- Optimization (computer science)
- Order of magnitude
- output
- Page cache
- Parallel computing
- Perl
- PHP
- Platform (computing)
- Pointer (computer programming)
- Processor register
- Profiling (computer programming)
- Programming language generations
- Project Valhalla (Java language)
- Python (programming language)
- Quake II
- Register allocation
- Register spilling
- Ruby (programming language)
- Runtime verification
- Script (computing)
- Shader
- Shared library
- Software development
- Standard Widget Toolkit
- Sun Microsystems
- Swing (Java)
- The Computer Language Benchmarks Game
- Thread (computer science)
- Tracing garbage collection
- Trigonometric functions
- Type system
- Virtual function
- Virtual machine
- Widget toolkit
- X86
- X87
- XOR linked list
- Reason
- enIs missing the many improvements in Java 8, 11, 17...
- SameAs
- 4nwWi
- Java performance
- Javaの性能
- m.027jq7n
- Q6165051
- Subject
- Category:Computing platforms
- Category:Java platform
- Category:Software optimization
- WasDerivedFrom
- Java performance?oldid=1106074979&ns=0
- WikiPageLength
- 52248
- Wikipage page ID
- 8786357
- Wikipage revision ID
- 1106074979
- WikiPageUsesTemplate
- Template:Citation needed
- Template:Clarify
- Template:Code
- Template:Dablink
- Template:Disputed section
- Template:Further
- Template:Java (Sun)
- Template:Portal
- Template:Reflist
- Template:Short description
- Template:Update
- Template:Use mdy dates