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,速度相比更快性能压力 ...
随机推荐
- [转]EntityFramework中常用的数据修改方式
本文转自:http://blog.csdn.net/itmaxin/article/details/47662151 上一篇文章里提到了 EntityFramework中常用的数据删除方式,那么修改对 ...
- C# 自定义属性Attribute
自定义属性 /// <summary> /// 脱敏属性 /// </summary> public class SensitiveAttribute:Attribute { ...
- C#中TransactionScope的使用方法和原理(摘)
出自51CTO博客:http://cnn237111.blog.51cto.com/2359144/1271600 在.net 1.1的时代,还没有TransactionScope类,因此很多关于事务 ...
- 线程的Interrupt方法与InterruptedException解析
线程阻塞状态与等待状态(当一个线程处于被阻塞或等待状态时,它暂时不活动,不允许任何代码且消耗最少的资源) 当一个线程试图获得一个内部的对象锁(而不是java.util.concurrent库中的锁), ...
- 《Unity Shader入门精要》读书笔记(1)
主要是对第二章的整理 渲染流水线:由一个三维场景出发,生成(渲染)一张二维图像. 渲染流程:应用阶段.几何阶段.光栅化阶段. 应用阶段: 1. 把数据加载到显存中 渲染所需数据从硬盘,到内存,再到显存 ...
- spring boot 2.0.0 + mybatis 报:Property 'sqlSessionFactory' or 'sqlSessionTemplate' are required
spring boot 2.0.0 + mybatis 报:Property 'sqlSessionFactory' or 'sqlSessionTemplate' are required 无法启动 ...
- Oracle JDBC 连接卡死后 Connection Reset
坑 这绝对是我碰计算机以来遇到的第一大坑! 症状: 在Linux主机上远程登录,执行一个简单的Oracle的JDBC连接程序(jar包),结果硬生生的卡在了连接建立验证阶段,然后等上几分钟后因为连接超 ...
- java 判断图片的类型
// 这种方法如果遇到不是图片类型的文件会reader抛异常! public static void main(String[] args) throws IOException { // get i ...
- cf1072D. Minimum path(BFS)
题意 题目链接 给出一个\(n \times n\)的矩阵,允许修改\(k\)次,求一条从\((1, 1)\)到\((n, n)\)的路径.要求字典序最小 Sol 很显然的一个思路是对于每个点,预处理 ...
- 【基础笔记】《html&CSS设计与构造网站》一书导读
◉HTML 1.结构网页使用HTML HyperText Markup Language 来描述页面结构超文本标记语言允许对文本建立链接,允许对文本进行标记网页开头都有一个DOCTYPE 文档类型 声 ...