gpt4 book ai didi

java - 与 Java 相比,Javascript 的速度有多快?

转载 作者:IT老高 更新时间:2023-10-28 11:50:08 30 4
gpt4 key购买 nike

关闭。这个问题是opinion-based .它目前不接受答案。












想改善这个问题吗?更新问题,以便可以通过 editing this post 用事实和引文回答问题.

7年前关闭。




Improve this question




是否有任何测试可以将 Javascript 的性能与 Java 的性能进行比较?

更新:既然每个人都在问为什么这个问题,这里有一些背景:)

众所周知 - 我希望 - 现在的 Javascript 不仅驻留在 Web 客户端中,而且还驻留在带有 node.js 的 Web 服务器中。

它也可以在带有 appcelerator 和 phonegap 的移动电话和桌面上运行。

它还可以在 Web 浏览器中大量使用,以使用户体验一流,就像使用桌面应用程序一样。

但是 Java 也可以做这些事情,在 Web 客户端和手机上运行小程序。它也是一种后端语言,有许多框架可供选择。

由于它们中的每一个都可以在上述区域几乎/完全相互替换,因此对于我描述的每种情况,我想知道它们之间的性能差异:

  • 客户端:Java Applet 与 Javascript
  • 服务器:Java EE 与 Javascript 与 Node.js + Express
  • 手机:Java ME vs Javascript with Phonegap/Appcelerator
  • 桌面:Java SE 与带有 Phonegap/Appcelerator 的 Javascript

  • 我希望上下文现在更清楚了。

    最佳答案

    Java 和 JavaScript 都是编程语言。编程语言只是一堆抽象的数学规则。编程语言并不快。或者慢。他们只是。

    应用程序的性能与语言无关。最重要的因素是应用程序架构。然后是算法效率。然后是微优化。然后是编译器/解释器的质量。然后是CPU。也许中间还有其他几个步骤。然而,语言并没有直接发挥作用。 (当然,如果您在谈论基准测试,那么特定基准测试也会发挥作用,以及基准测试的实现情况,运行情况,执行基准测试的人是否真的了解基准测试,甚至更重要的是统计数据。此外,“快速”的实际含义的精确定义非常重要,因为它也会对基准产生重大影响。)

    然而,该语言可能会间接发挥作用:在 10 行高度表达、清晰、简洁、可读、分解良好、隔离的高级 Lisp 代码中,比在 100 行代码中更容易找到并修复性能瓶颈。纠结的低级 C。(请注意,这两种语言只是示例。我并不是要单独使用任何一种语言。)例如,Twitter 曾说过,如果使用一种表达能力不如 Ruby 的语言,他们就不会能够在如此短的时间内对其架构进行如此彻底的更改,以解决其可扩展性问题。 Node.js 之所以能够提供如此出色的事件 I/O 性能,是因为 JavaScript 的标准库太烂了。 (这样,Node.js 必须自己提供所有 I/O,因此他们可以从头开始针对事件 I/O 对其进行优化。例如,Ruby 和 Python 的事件 I/O 库与Node.js 并且更加成熟……但是,Ruby 和 Python 已经拥有大型标准库,包括 I/O 库,所有这些库都是同步的并且不能很好地与事件库配合使用。JavaScript 没有这个问题不能很好地与事件 I/O 配合使用的 I/O 库,因为 JavaScript 根本没有 I/O 库。)

    但是,如果你真的想比较两者,这里有一个有趣的数据点:HotSpot,它是一种更流行、性能更高的 JVM 实现,是由一个团队创建的,其中包括其他人,一个叫拉尔斯·巴克的人。但实际上,HotSpot 并不是凭空出现的,它基于 Anamorphic Smalltalk VM 的源代码,该 VM 是由一个团队创建的,其中包括一个名叫 Lars Bak 的人。

    V8 是一种更流行、性能也更高的 JavaScript 实现,它是由一个团队创建的,其中包括一个名叫 Lars Bak 的人。但实际上,V8 并不是凭空出现的,它基于 Anamorphic Smalltalk VM 的源代码,它是由一个团队创建的,其中包括一个名叫 Lars Bak 的人。

    鉴于两者或多或少相同,我们可以期待类似的性能。唯一的区别是 HotSpot 有一百多名工程师在它上面工作了 15 年,而 V8 有十几名工程师工作了不到 5 年。这是性能上的唯一区别。这不是静态类型与动态类型(Java 是静态类型,但大多数 JVM 和 HotSpot 都没有进行任何静态优化,所有优化都是纯动态的)、编译与解释(HotSpot 实际上是用额外的 JIT 编译器解释的,而 V8纯粹编译),高级与低级。这纯粹是关于钱。

    但是我敢打赌,对于 Java 实现更快的每一对 Java 和 JavaScript 实现,我可以找到另一对 JavaScript 实现更快的对。此外,我可能可以保留这对并使用不同的基准。将计算机语言基准游戏称为“游戏”是有原因的:他们甚至鼓励您在他们自己的页面上玩基准测试,以使任何任意语言上升到顶部。

    关于java - 与 Java 相比,Javascript 的速度有多快?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3723374/

    30 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com