Java 和 Erlang 的列表元素添加测试

maillist上面对 “VM & BEAM Specs : idea for improving, the lists support”的争论很有意思,我也随手测一把看看

JDK 1.5.0_11
Erlang/OTP R11B-5

$ javac ListAppend.java
$ /home/jdk/bin/java -server ListAppend
Total time:3439ms
$ erlc list_append.erl
$ erl -noshell -noinput -s list_append main -s init stop
Total time:4408ms
$ erlc +native list_append.erl
$ erl -noshell -noinput -s list_append main -s init stop
Total time:3855ms

Java代码:
[code]import java.util.*;

public class ListAppend {
public static void main(String[] args) {
long begin = System.currentTimeMillis();
LinkedList list = new LinkedList();
for (int i=0; i<10000000; i++) {
list.add("element");
}
System.out.println("Total time:" + (System.currentTimeMillis()-begin) + "ms");
}
}[/code]
这里list里面的引用都是指向同一份String实例的。

Erlang代码:
[code]-module(list_append).

-export([main/0]).

main() ->
test(10000000, []).

test(0, _List) ->
{_, Duration} = statistics(wall_clock),
io:format("Total time:~pms~n", [Duration]);
test(N, List) ->
test(N-1, [element|List]).[/code]
这里使用element而不是"Element",因为Erlang的列表里面保存的是值。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值