
我现在刷题大概才刷了1/3,然后我看了一下各个语言的Runtime Distribution
不用说,C/C++总是是最靠前,让我好奇的是
我刷了这1/3的题里java的整体分布或者是平均值在js/python前的次数屈指可数|` )
感觉有点不科学,静态编译的语言不是应该比动态语言快么
难道是leetcode的统计系统不够完善么
顺带一提js同一份源码提交上去时快时慢,浮动幅度十分大啊。这又是什么原因Σ( д)
1 df4VW 2015-06-03 09:30:34 +08:00 Cuz its nodejs 0.12.3 |
2 fangjinmin 2015-06-03 09:31:04 +08:00 可能是因为JVM太慢了。 |
3 braineo 2015-06-03 09:33:06 +08:00 虚拟机启动时间? |
4 tabris17 2015-06-03 09:40:28 +08:00 像LeetCode这种平台,Python,Ruby环境支持安装第三方包/组件么? |
5 morethansean 2015-06-03 09:44:03 +08:00 V8也是有点水平的好吗! |
6 Narcissu5 2015-06-03 09:49:26 +08:00 估计是HotSpot的原因,java只有在有一定运行信息之后才开始优化 |
7 oott123 2015-06-03 09:51:39 +08:00 via Android 难道不是本来就比不过…(我是来黑的 |
8 9hills 2015-06-03 10:10:49 +08:00 via iPhone Java热起来,表示可以和C++刚正面 |
9 neilwong 2015-06-03 10:17:26 +08:00 凭什么看不起我大js,来来来,楼主咱俩来撕逼 |
10 fszaer OP |
11 ledzep2 2015-06-03 10:24:36 +08:00 楼上真幽默. v8会把可以编译成native code的代码编译运行, 性能直逼native. java始终还是有个vm. 所以v8某些时候会快些. |
12 wy315700 2015-06-03 10:31:08 +08:00 不知道leetcode怎么统计的 我们以前做OJ的时候, 整个程序的执行时间不仅仅是你写的代码的运行时间,是整个命令的运行时间 也就是说 如果是JAVA的话,是整个 javac Main.java 的时间, 包含了 javac 程序本身加载,编译,运行等时间。 所以除了C/C++是不计算编译的时间,是直接运行二进制的,其他的都要算上编译时间的,所以静态编译并没有什么优势。 一般设置超时的时候,JAVA的时间是C的三倍。 @9hills @fangjinmin @braineo @fszaer |
13 101 2015-06-03 10:47:17 +08:00 说 V8 快的是忘了 Java 还有 JIT 吗?快不快上数据吧 |
14 loryyang 2015-06-03 11:16:33 +08:00 我以前听别人介绍过,这个java运行时间包括启动jvm的时间 正常java不可能会去频繁启动停止jvm的,所以这个时间没有意义 |
15 Cloudee 2015-06-03 11:19:36 +08:00 via iPhone 虚拟机启动慢,预热起来(方法执行一定次数才会jit等等)也需要时间 |
16 nomoon 2015-06-03 11:50:40 +08:00 他们中间改过计算方法,现在java应该是能跑过脚本语言的。但是历史数据原因。。。你懂的。。。 |
17 messyidea 2015-06-03 12:18:40 +08:00 via Android 应该是java读入比较慢吧 |
18 fszaer OP |
19 erichuang1994 2016-05-09 00:01:44 +08:00 然而现在 leetcode 上 JAVA 就比 C 慢了 |