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 <- 0 to maxindex) {
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 <- 0 to 100000){
// 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 <- 0 to 100000){
// javamap.put(i.toString, i.toString)
// }
// for(i <- javamap.keySet().toArray()){
// 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效率相对高点。
scala性能测试的更多相关文章
- scala单元测试,包括功能测试和性能测试
十分简单的scala单元测试 在编写性能要求高的模块的时候,单元测试是有必要的,通过搜索,我找到了一套提供单元功能测试和性能测试的可行方案,该方案简单好用,推荐给大家. 测试工具 首先找到适用于sca ...
- Scala 的确棒
我的确认为计算机学院应该开一门 Scala 的语言课程. 在这篇文章中,我会讲述为什么我会有这样的想法,在此之前,有几点我想要先声明一下: 本文无意对编程语言进行评比,我要讲述的主体是为什么你应该学习 ...
- 学习Scala第一篇-从hello World开始
最近开始系统性的学习scala.其实之前使用过scala的,比如我在用Gatling这款性能测试工具的时候就接触到了scala了.Gatling本身就是用Scala写的,而且Gatling的性能测试配 ...
- Gatling->次时代性能测试利器
Gatling作为一款开源免费的性能测试工具越来越受到广大程序员的欢迎.免费当然是好的,最缺钱的就是程序员了;开源更好啊,缺啥功能.想做定制化的可以自己动手,丰衣足食.其实我最喜欢的原因是其提供了简洁 ...
- 如何利用gatling创建一个性能测试例
[原创博文,转载请声明出处] 基于上一篇博文介绍如何源码编译创建自己的gatling可执行工具,今天介绍一下如何基于gatling做性能测试! 由于gatling的测试例脚本是基于scala写的,所以 ...
- 性能测试工具之Gatling
转载:http://ningandjiao.iteye.com/blog/2004579 Gatling一直是久闻其名但是未得机会运用,正好最近有需求做性能测试,于是趁此机会熟悉了一下,可以说,这是目 ...
- Web Service 性能测试工具比较
背景 希望选择一款Web Service性能测试工具,能真实模拟大量用户访问网站时的请求,从而获取服务器当前的请求处理能力(请求数/秒).以微信服务器为例,每个用户用独立的登录token,做各种操作, ...
- 快速了解Scala技术栈
http://www.infoq.com/cn/articles/scala-technology/ 我无可救药地成为了Scala的超级粉丝.在我使用Scala开发项目以及编写框架后,它就仿佛凝聚成为 ...
- 两个不同于LR和jmeter的性能测试工具
LR图形界面,更利于使用 jmeter采用java,也能够扩展 相对于上两款工具,下面两款性能测试工具都采用了异步IO模型,扩展性都更强速度也更快 gatling:基于scala,速度相比更快性能压力 ...
随机推荐
- Java实现Ip代理池
设置Ip代理很多时候都会有用到,尤其是在写爬虫相关项目的时候.虽然自己目前没有接触这种需求,但由于最近比较闲,就写着当作练习吧 爬取代理IP 爬取 关于爬取代理IP,国内首先想到的网站当然是 西刺代理 ...
- [转]微信小程序,开发大起底
本文转自:http://blog.csdn.net/baiyuzhong2012/article/details/54378497 作者简介:张智超,北京微函工坊开发工程师,CSDN微信开发知识库特邀 ...
- 理解JavaScript作用域
这是一篇译文,这里贴上译文地址:http://www.zcfy.cc/article/understanding-scope-in-javascript-8213-scotch-4075.html 这 ...
- angular2-响应式表单
响应式表单是同步的.模板驱动表单是异步的.这个不同点很重要 使用响应式表单,我们会在代码中创建整个表单控件树. 我们可以立即更新一个值或者深入到表单中的任意节点,因为所有的控件都始终是可用的. 模板驱 ...
- 关于easyui 窗口位置的调整
(一)easyui 默认的窗口位置 浏览器中间 (二)可直接在style里进行更改 <div id="news_dialog" class="easyui-wind ...
- Android 仿iPhone的日期时间选择器
可选只选择日期,也可以同时选择时间 只选择日期的情况 同时选择日期和时间的情况 关键代码: findViewById(R.id.selectDateButton).setOnClickListener ...
- C#多线程和异步(二)——Task和async/await详解(转载)
一.什么是异步 同步和异步主要用于修饰方法.当一个方法被调用时,调用者需要等待该方法执行完毕并返回才能继续执行,我们称这个方法是同步方法:当一个方法被调用时立即返回,并获取一个线程执行该方法内部的业务 ...
- IntelliJ IDEA搭建SpringBoot的小Demo
首先简单介绍下Spring Boot,来自度娘百科:Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来进 ...
- idea 新建文件夹目录问题解决
选中工程,设置,去掉选项“Compact Empty Middle Packages” .
- geth访问公有链
同步以太坊,配置rpc地址 mkdir /opt/blockchain nohup geth --syncmode "fast" --cache=1024 --maxpeers 3 ...