Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
谁能量化C和x2B之间的性能差异+;Java呢? java在JIT之前最初很慢,但是今天的性能非常接近C++。我想知道是否有人在这两种语言之间进行了可衡量的性能比较?与C++相比,java在哪里短?Java为开发人员提供了许多生产力提升,因此他们可以更快地编写应用程序,因为存在垃圾学院、缺少指针等问题。例如,Firefox、Webkit和Open Office等应用程序,如果使用100%Java编写,则可以更快、更可靠地开发,速度可能会提高2倍,但是开发人员出于性能原因仍然选择C/C++。有人能证明java不能像C++那样应用到哪里去执行应用程序。 我只需补充一点,C++中的许多应用工作仍然是有原因的。这不仅仅是一个主观问题。具有更高抽象级别的语言通常会付出性能代价。如果不存在这种惩罚,我们都将使用更高级的语言编程。与C++相比,java仍然在哪里付费?具体点。_Java_C++_Performance_Comparison - Fatal编程技术网

谁能量化C和x2B之间的性能差异+;Java呢? java在JIT之前最初很慢,但是今天的性能非常接近C++。我想知道是否有人在这两种语言之间进行了可衡量的性能比较?与C++相比,java在哪里短?Java为开发人员提供了许多生产力提升,因此他们可以更快地编写应用程序,因为存在垃圾学院、缺少指针等问题。例如,Firefox、Webkit和Open Office等应用程序,如果使用100%Java编写,则可以更快、更可靠地开发,速度可能会提高2倍,但是开发人员出于性能原因仍然选择C/C++。有人能证明java不能像C++那样应用到哪里去执行应用程序。 我只需补充一点,C++中的许多应用工作仍然是有原因的。这不仅仅是一个主观问题。具有更高抽象级别的语言通常会付出性能代价。如果不存在这种惩罚,我们都将使用更高级的语言编程。与C++相比,java仍然在哪里付费?具体点。

谁能量化C和x2B之间的性能差异+;Java呢? java在JIT之前最初很慢,但是今天的性能非常接近C++。我想知道是否有人在这两种语言之间进行了可衡量的性能比较?与C++相比,java在哪里短?Java为开发人员提供了许多生产力提升,因此他们可以更快地编写应用程序,因为存在垃圾学院、缺少指针等问题。例如,Firefox、Webkit和Open Office等应用程序,如果使用100%Java编写,则可以更快、更可靠地开发,速度可能会提高2倍,但是开发人员出于性能原因仍然选择C/C++。有人能证明java不能像C++那样应用到哪里去执行应用程序。 我只需补充一点,C++中的许多应用工作仍然是有原因的。这不仅仅是一个主观问题。具有更高抽象级别的语言通常会付出性能代价。如果不存在这种惩罚,我们都将使用更高级的语言编程。与C++相比,java仍然在哪里付费?具体点。,java,c++,performance,comparison,Java,C++,Performance,Comparison,在很多方面,这就像把苹果和桔子比较一样 C++是建立在这样一个概念上的:你不用为任何你不用的东西付费。 如果你自己管理内存,如果你不使用虚拟功能,等等 Java并没有给你这种自由。它为您提供了您甚至不想要的功能。对于您可能希望自己分配内存的所有内容,您将不得不对所有内容使用堆对象,因此您将受到垃圾收集的影响 一旦你开始谈论GUI,比较起来就更加困难了,因为不同的UI框架和工具包有不同的性能问题。例如,Swing/AWT通常比直接为本机操作系统编写的东西要慢。在C++中,你很少能找到真正的便携式工

在很多方面,这就像把苹果和桔子比较一样

C++是建立在这样一个概念上的:你不用为任何你不用的东西付费。 如果你自己管理内存,如果你不使用虚拟功能,等等

Java并没有给你这种自由。它为您提供了您甚至不想要的功能。对于您可能希望自己分配内存的所有内容,您将不得不对所有内容使用堆对象,因此您将受到垃圾收集的影响

一旦你开始谈论GUI,比较起来就更加困难了,因为不同的UI框架和工具包有不同的性能问题。例如,Swing/AWT通常比直接为本机操作系统编写的东西要慢。在C++中,你很少能找到真正的便携式工具包,等等。
我认为,当开发人员开始使用openoffice时,Java的速度要慢得多,UI工具包又慢又难看。Eclipse等工具证明,即使在Java中也可以构建相对不错的UI,尽管不可否认,SWT是一个在本机级别上做很多事情的工具包

>我相信任何人都不能证明,C++总是比java有意义的快,因为简单的事实是,你可以随时回复到JNI,从java获得原生速度。 例如,请参见SWT,它是IBM(我认为)构建的图形化工具,旨在取代Swing并提供本机性能和外观


I,一方面,我希望开发速度比速度更慢,因为我认为最小的开发时间比原始的应用速度更重要,尤其是当我仍然可以获得这个速度时,我可以同时拥有java <强>的开发的容易度和编译语言的速度> > /p> 完成Pax和URI的答案,以下是一些最近的基准:

如前所述,这是两种截然不同的语言,有些人相信,因为:

  • 所有对象的堆分配(即使是像迭代器这样的小对象)
  • 大量的动态铸件
  • 内存使用率增加
[幽默]

“Java是高性能的。高性能意味着充分。充分意味着缓慢。”

正如在注释中提到的,堆分配不是一个好的参数。
该条提到:

“垃圾收集永远不会像直接内存管理那样高效。”而且,在某种程度上,这些说法是正确的--动态内存管理没有直接内存管理那么快--
malloc/free方法一次处理一个内存块,而垃圾收集方法倾向于大批量处理内存管理,从而产生更多的优化机会(代价是一些可预测性损失)


对我来说,这个问题有点像转移视线(也许不是故意的)。这真的是一个错误的问题

首先要问的问题是

  • 是什么让我的程序慢下来的
  • 对于我的新项目,性能设计的主要考虑因素是什么
  • 这里有一些很好的“为什么”问题

    • 是否有太多不必要的I/O
    • 是否占用了太多内存
    • 内存分配器是否被重击(Alloc太多,细粒度对象太多)
    • 我的程序是否在网络I/O上被长时间阻止
    • 你把锁放错地方了吗
    我怀疑你真的需要首先关注你课程的p表现方面(大写“p”),而不是p表现方面(小“p”)。如果你能达到语言的阻碍程度,那么你在这方面的表现确实很好

    对于新代码-重要的是预先规划性能和效率。我总是建议将性能和效率与任何其他功能(它们都是功能)一样对待:就像UI绑定或可靠性一样。当然,这取决于很多事情,但当重要的时候,你需要提前计划:

    • 选择适合数据集和预期缩放的数据结构和算法
    • 适当情况下,基于多线程UI的应用程序(UI线程、后台/处理线程)
    • 计划长网络I/O延迟
    • 计划在前期定期运行回归测试之前设定目标并衡量性能
    • 测量内存使用率-内存占用很慢(让日本人开始:)
    • 存在事件、回调或其他通知机制时不轮询
    我认为这是一个红色的怪圈,很少有人在C++和java之间选择它们——它们是非常非常不同的语言,它们的运行时间非常不同。我怀疑你有其他的限制是比较常见的