Java真的很慢吗?
Java已经成功了Java真的很慢吗?,java,performance,Java,Performance,Java已经成功了 Java真的很慢吗 若有,原因为何?瓶颈在哪里?这是因为JVM效率低下吗?垃圾收集?纯字节码库而不是JNI包装的C代码?许多其他语言都有这些特性,但它们没有缓慢的名声 java是一种高级语言,它现在的声誉是与其他可比较高级语言的性能相当。 它有语义。与C++相比,非虚拟方法被编译为函数调用,即使是世界上最好的java编译器也必须产生效率较低的代码。但它也是一种更干净、更高级的语义 我不记得细节了,但在Java的早期,我听说每个Java对象都有一个互斥体,每个方法都要获取
- Java真的很慢吗李>
- 若有,原因为何?瓶颈在哪里?这是因为JVM效率低下吗?垃圾收集?纯字节码库而不是JNI包装的C代码?许多其他语言都有这些特性,但它们没有缓慢的名声李>
java是一种高级语言,它现在的声誉是与其他可比较高级语言的性能相当。
malloc
和free
慢。问题是,在没有垃圾收集的语言中,程序员往往只编写一次分配所有所需内存的程序,如果某个任意最大大小常量溢出,程序就会失败。因此,比较是苹果和橙子。当程序员努力用非GC语言动态分配链式结构来编写和调试程序时,他们有时会发现他们的程序不再比GC语言快,因为malloc
和free
不是免费的!他们也有开销。。。另外,没有GC会强制指定谁释放什么,而必须指定谁释放什么又会强制您进行复制-当几个函数需要数据并且不清楚最后使用数据时-而在GC语言中复制是不必要的这是Java早期(20世纪90年代中后期)的过时信息。与以前的版本相比,Java的每个主要版本都引入了显著的速度提升。随着Oracle显然将JRockit与Sun的Java 7 JVM合并,这一趋势似乎将继续下去
与许多其他流行的现代语言(Python、Ruby、PHP)相比,Java在大多数应用中的速度要快得多。它不太匹配C或C++,但是对于很多任务来说它足够接近。真正的性能问题应该是它最终使用了多少内存。最初Java不是特别快,但也不是太慢。现在,Java速度非常快。从我与之交谈的人看来,Java速度缓慢的印象来自两个方面:
简而言之,Java并不慢。“java慢”是基于10多年前java的第一印象。 < P> >在90年代中期,java进入主流时,C++是主流语言,Web仍然相当新。而且,JVM和GC是主流开发中相对较新的概念。早期的JVM有点慢(与在裸机上运行的C++相比),并且也遭受了一些长时间的垃圾收集暂停,这导致java的声誉很慢。 < P>正如Pascal所说,java与其他高级语言是一致的。然而,作为在上使用原始JVM的人,我们可以说,当时Java虚拟机提供的抽象级别是痛苦的
基本上,我们今天在JVM中认为理所当然的是很少或根本没有优化的软件仿真。它已经变得快得多了,因为。据我所知,它通常在C#speed的10%以内——有时快,有时慢 Java小程序的启动仍然很慢,因为您必须启动整个JVM,而JVM必须加载它的所有类。有点像启动另一台计算机。JVM一旦启动,速度相当快,但启动通常是人们记忆中的
还有一些人永远不会相信Java的可行性。现代Java是速度最快的语言之一,尽管它仍然是一种内存消耗型语言。Java以速度慢著称,因为虚拟机启动需要很长时间 如果您仍然认为Java很慢,请参见结果。用提前编译语言(C、Fortran等)编写的经过严格优化的代码可以击败它;然而,Java的速度可以是P的10倍多