为什么 leetcode 上面 Java 跑得比 C/C++ 快?

2016-07-07 15:05:55 +08:00
 xpol

如下图:

最快的居然是 Java ?为什么呢?

我猜想可能是这几个方面:

  1. 由于 GC 机制, Java 没有内存释放的时间消耗
  2. 或者 leetcode 跑 Java 代码的虚拟机一直运行着的,没有启动开销
9479 次点击
所在节点    程序员
26 条回复
Sorrow
2016-07-07 17:11:32 +08:00
至于 Java 为什么是最快的,和楼上几位说的 JVM 优化好之类的是没什么关系的。主要还是因为 Leetcode 对各种语言测试里, Java 最接近真实的速度。不太了解 Leetcode 具体测试方法,我猜测应该是其他语言的测试时间计算存在某些缺陷,而只有 Java 是纯粹的运行时间。
wph95
2016-07-07 17:36:57 +08:00
作为一个天天写 sandbox 维护 oj 的蒟蒻
支持楼上 sorrow 的猜测。
因为 java 在多数 online judge 是特殊对待的。
因为 JVM 启动时间相对来说太慢了。 所以有个补时。

也有可能是 jvm 虚拟机一直运行。
BlueMeow
2016-07-07 17:58:59 +08:00
@Sorrow Java 是后来调整过的,本来(一年前多吧)就数它最慢了(当时好像还没有 JS )。既然经过调整,也许就是因为之前的统计方式不太合理。
chiu
2016-07-07 18:10:25 +08:00
我目前写过的基本是 C 最快
testlc
2016-07-07 18:57:59 +08:00
这个问题在知乎上面有吧
billwsy
2016-07-08 07:00:50 +08:00
看到除和取余…

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/290887

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX