java scala 性能_scala性能测试

主要对比scala 的for, while循环,以及和java for while循环作对比

scala代码

object TestScalaClass {

var maxindex = 100000

def testloopfor(): Unit ={

var beg = System.currentTimeMillis()

var sum = 0

for (i

sum += i

}

println("value " + sum + " 耗时: " + (System.currentTimeMillis() - beg))

}

def testswhile(): Unit ={

var beg = System.currentTimeMillis()

var sum = 0

var i = 0;

while (i < maxindex ){

i+=1

sum += i

}

println("value " + sum + " 耗时: " + (System.currentTimeMillis() - beg))

}

def main (args: Array[String]) {

testswhile()

testloopfor()

运行结果

time1

value 705082704 耗时: 338

value 705082704 耗时: 13

time2

value 705082704 耗时: 271

value 705082704 耗时: 11

time3

value 705082704 耗时: 289

value 705082704 耗时: 10

可以看出在scala 中 for循环比while循环慢接近30倍

java测试代码

long begtime = System.currentTimeMillis();

int i = 0;

int sum = 0;

for (i = 0 ; i < 100000; i++)

sum += i;

long endtime = System.currentTimeMillis();

System.out.println("耗时: " + (endtime - begtime) );

// long begtime = System.currentTimeMillis();

// int i = 0;

// int sum = 0;

//

// while(i <100000){

// i++;

// sum += i;

// }

//

// long endtime = System.currentTimeMillis();

// System.out.println("耗时: " + (endtime - begtime) );

在java中,for循环和while循环两者效率相差不大,运行时间集中在1-10之间,平均3ms左右 ,比scala的while循环也快几倍。

scala 测试hashmap

def testhashmap(): Unit ={

print("\n scala hashmap \n")

var buf = new scala.collection.mutable.HashMap[String, String]()

var beg = System.currentTimeMillis()

var i = 0

while (i <= 100000){

buf += (i.toString -> i.toString)

i +=1

}

// for (i

// buf += (i.toString -> i.toString)

// }

buf += ("11" -> "11")

println(System.currentTimeMillis() - beg)

beg = System.currentTimeMillis()

//buf.foreach(f=>print("key: " + f._1 + "value :" + f._2 + "\t"))

print("\n java hashmap \n")

var javamap = new JavaHashMap[String, String]()

i = 0

while (i <= 100000){

javamap.put(i.toString, i.toString)

i +=1

}

//

// for(i

// javamap.put(i.toString, i.toString)

// }

// for(i

// print("key:= " + i + " value " + javamap.get(i) + "\t")

// }

println(System.currentTimeMillis() - beg)

}

使用while循环

scala hashmap

216

java hashmap

64

使用for循环

scala hashmap

299

java hashmap

89

while效率相对高点。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值