Java performance (original) (raw)
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.
Property | Value |
---|---|
dbo:abstract | 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. 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. (en) Javaの性能(ジャバのせいのう)では、Javaプラットフォームの性能について説明する。プログラミング言語としてのJavaに対する批判や、Javaプラットフォームの性能に対する批判は「Javaに対する批判」の記事を参照のこと。この記事ではJavaプラットフォームの性能について批判以外の説明をする。 プログラミング言語Javaは、その「ネットワークから送り込まれるプログラムの安全な実行」や「write once, run anywhere」というスローガンを、業界にありがちなスローガンだけのスローガンではなく可能な限り達成するべく、Javaバイトコードにコンパイルするコンパイラと、Javaバイトコードを解釈実行するインタプリタであるJava仮想マシン (Java VM, JVM)、という構成の実装を、公式の実装として伴って発表された。 コンピュータ科学的には特に目新しいものではない。しかし、従来のC言語あるいはC++といったネイティブコードにコンパイルする言語で書かれたアプリケーションソフトウェアとの性能比較や、当初はJVMのチューニングや高速化手法が進んでいなかったことによる性能の制限、また、当時の一般ユーザーが使っていたMicrosoft Internet Explorerにおいて、Javaアプレットが埋込まれたウェブページを表示しようとすると、JVMを起動するために数十秒から最悪の場合は数分も待たされたことから(起動してしまえば実は高性能なVMだったのだが)、「Javaは遅い」などと言われるようになったため、「Javaの性能」が議論されるようになった。 Javaプログラムの実行速度はJITコンパイルの導入(1997年 / 1998年のJava 1.1以降)や、コードの解析の機能が言語に追加されたこと、Java仮想マシン自体の最適化(2000年からサン・マイクロシステムズのVMで標準的に動作するようになったHotSpot技術など)によって大きく向上した。 (ja) |
dbo:wikiPageExternalLink | http://javaperformancetuning.com/ http://prefetch.net/presentations/DebuggingJavaPerformance.pdf https://github.com/raydac/Java-performance-mind-map http://java.sun.com/docs/performance/ http://java.sun.com/j2se/1.4.2/performance.guide.html |
dbo:wikiPageID | 8786357 (xsd:integer) |
dbo:wikiPageLength | 52248 (xsd:nonNegativeInteger) |
dbo:wikiPageRevisionID | 1106074979 (xsd:integer) |
dbo:wikiPageWikiLink | dbr:Processor_register dbr:Python_(programming_language) dbr:Quake_II dbr:Ruby_(programming_language) dbr:X87 dbr:Benchmark_(computing) dbc:Software_optimization dbr:HotSpot_(virtual_machine) dbr:Perl dbr:Register_spilling dbr:Dynamic-link_library dbr:Dynamic_compilation dbr:Inline_expansion dbr:Input/output dbr:JAR_(file_format) dbr:Jake2 dbr:Register_allocation dbr:Java_Runtime_Environment dbr:.NET_Framework dbr:Common_Language_Runtime dbr:Comparison_of_Java_and_C++ dbr:Computer_system dbr:Object_(computer_science) dbr:Optimization_(computer_science) dbr:GPL dbr:Graph_coloring dbr:Mono_(software) dbr:Concurrency_control dbr:Criticism_of_Java dbr:Application_programming_interface dbr:Standard_Widget_Toolkit dbr:Computer_hardware dbr:Computer_performance dbr:Parallel_computing dbr:Pointer_(computer_programming) dbr:Swing_(Java) dbr:C++ dbr:C_(programming_language) dbr:C_Sharp_(programming_language) dbc:Computing_platforms dbr:Ahead-of-time_compilation dbr:Trigonometric_functions dbr:Type_system dbr:Garbage_collection_(computer_science) dbr:Just-in-time_compilation dbr:Lock_(computer_science) dbc:Java_platform dbr:Da_Vinci_Machine dbr:Daemon_(computing) dbr:Dynamic_memory_allocation dbr:Dynamic_programming_language dbr:Dynamic_recompilation dbr:Excelsior_JET dbr:Exception_handling dbr:Fortran dbr:NortonLifeLock dbr:PHP dbr:Page_cache dbr:Graphics_processing_unit dbr:Memory_footprint dbr:Programming_language_generations dbr:Profiling_(computer_programming) dbr:Project_Valhalla_(Java_language) dbr:Hadoop dbr:JavaFX dbr:Java_(programming_language) dbr:Java_(software_platform) dbr:Java_6 dbr:Java_Native_Access dbr:Java_Native_Interface dbr:Java_version_history dbr:XOR_linked_list dbr:Array_data_type dbr:API dbr:Block_(programming) dbr:Sun_Microsystems dbr:JStik dbr:Java_2D dbr:Java_Class_Library dbr:Java_ConcurrentMap dbr:Java_Platform,_Micro_Edition dbr:Java_bytecode dbr:Java_processor dbr:Java_virtual_machine dbr:Jazelle dbr:Widget_toolkit dbr:Direct3D dbr:Bytecode dbr:Software_development dbr:Grid_computing dbr:Metadata dbr:Method_(computer_science) dbr:Microsoft_Windows dbr:Native_code dbr:OpenGL dbr:Operating_system dbr:Shader dbr:CPU_design dbr:X86 dbr:Memory-mapped_file dbr:Order_of_magnitude dbr:Virtual_machine dbr:Shared_library dbr:Runtime_verification dbr:Virtual_function dbr:Tracing_garbage_collection dbr:Multi-core dbr:Multi-user dbr:The_Computer_Language_Benchmarks_Game dbr:Class_(computer_science) dbr:High_performance_computing dbr:Java_platform dbr:Central_processor_unit dbr:Java_Platform dbr:Platform_(computing) dbr:Thread_(computer_science) dbr:Compiler_optimization dbr:Script_(computing) dbr:Deoptimization dbr:Nailgun_(software) |
dbp:date | April 2022 (en) |
dbp:reason | Is missing the many improvements in Java 8, 11, 17... (en) |
dbp:wikiPageUsesTemplate | dbt:Citation_needed dbt:Clarify dbt:Code dbt:Dablink dbt:Disputed_section dbt:Further dbt:Portal dbt:Reflist dbt:Short_description dbt:Update dbt:Use_mdy_dates dbt:Java_(Sun) |
dcterms:subject | dbc:Software_optimization dbc:Computing_platforms dbc:Java_platform |
rdf:type | yago:WikicatComputingPlatforms yago:Artifact100021939 yago:HorizontalSurface103536348 yago:Object100002684 yago:PhysicalEntity100001930 yago:Platform103961939 yago:Surface104362025 yago:Whole100003553 |
rdfs:comment | 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. (en) Javaの性能(ジャバのせいのう)では、Javaプラットフォームの性能について説明する。プログラミング言語としてのJavaに対する批判や、Javaプラットフォームの性能に対する批判は「Javaに対する批判」の記事を参照のこと。この記事ではJavaプラットフォームの性能について批判以外の説明をする。 プログラミング言語Javaは、その「ネットワークから送り込まれるプログラムの安全な実行」や「write once, run anywhere」というスローガンを、業界にありがちなスローガンだけのスローガンではなく可能な限り達成するべく、Javaバイトコードにコンパイルするコンパイラと、Javaバイトコードを解釈実行するインタプリタであるJava仮想マシン (Java VM, JVM)、という構成の実装を、公式の実装として伴って発表された。 Javaプログラムの実行速度はJITコンパイルの導入(1997年 / 1998年のJava 1.1以降)や、コードの解析の機能が言語に追加されたこと、Java仮想マシン自体の最適化(2000年からサン・マイクロシステムズのVMで標準的に動作するようになったHotSpot技術など)によって大きく向上した。 (ja) |
rdfs:label | Java performance (en) Javaの性能 (ja) |
owl:sameAs | freebase:Java performance yago-res:Java performance wikidata:Java performance dbpedia-ja:Java performance https://global.dbpedia.org/id/4nwWi |
prov:wasDerivedFrom | wikipedia-en:Java_performance?oldid=1106074979&ns=0 |
foaf:isPrimaryTopicOf | wikipedia-en:Java_performance |
is dbo:wikiPageWikiLink of | dbr:HotSpot_(virtual_machine) dbr:Upload_components dbr:Escape_analysis dbr:Criticism_of_Java dbr:Performance_engineering dbr:Profiling_(computer_programming) dbr:Java_(software_platform) dbr:Java_applet dbr:Java_virtual_machine |
is foaf:primaryTopic of | wikipedia-en:Java_performance |