Scala Ring Benchmark

简介:
  Scala实现的ring benchmark:

import  scala.actors.Actor
import  scala.actors.Actor._
import  java.util.concurrent.CountDownLatch
case   class  Message()
class  Process(m:Int,p:Actor,latch:CountDownLatch)  extends  Actor{
  var next
= p
  def act{
   loop{
     recvAndSend(m)
   }
  }
  def recvAndSend(count:Int){
     
if (count == 0 ){
        latch.countDown()
        exit
     }
else {
       react{
         
case  Message() =>
           next
!  Message()
           recvAndSend(count
- 1 )
         }
       }
     }
}
object RingBenchmark{
  def main(args:Array[String]){
    start(args(
0 ).toInt,args( 1 ).toInt) 
  }
  def start(n:Int,m:Int){
     val latch
= new  CountDownLatch(n)
     val first
= new  Process(m, null ,latch)
     val p
= createProcess(first,n - 1 ,m,latch)
     first.next
= p
     val start:Long
= System.currentTimeMillis
     first.start
     first
! Message()
     latch.await()
     println(System.currentTimeMillis
- start)       
  }
  def createProcess(p:Actor,n:Int,m:Int,latch:CountDownLatch):Actor
= {
    
if (n == 0 )
      p
    
else {
     val next
= new  Process(m,p,latch)
     next.start
     createProcess(next,n
- 1 ,m,latch)
    }
  }
}
  
    与Erlang版本的比较(单位毫秒),scala版本2.7.4-final,erlang是R13B, windows xp

 N  M  Scala  Erlang
 1000  100  297  62
 1000  500  1328  343
 1000  1000  2469  671
 10000  100  2812  781
 10000  1000  28796
 7797
文章转自庄周梦蝶  ,原文发布时间2009-06-09
目录
相关文章
|
SQL 消息中间件 分布式计算
如何查看spark与hadoop、kafka、Scala、flume、hive等兼容版本【适用于任何版本】
如何查看spark与hadoop、kafka、Scala、flume、hive等兼容版本【适用于任何版本】
671 0
如何查看spark与hadoop、kafka、Scala、flume、hive等兼容版本【适用于任何版本】
|
2月前
|
分布式计算 Java Scala
spark 与 scala 的对应版本查看、在idea中maven版本不要选择17,弄了好久,换成11就可以啦
spark 与 scala 的对应版本查看、.在idea中maven版本不要选择17,弄了好久,换成11就可以啦
107 2
|
2月前
|
分布式计算 数据处理 Scala
Spark 集群和 Scala 编程语言的关系
Spark 集群和 Scala 编程语言的关系
29 0
|
3月前
|
分布式计算 Java Scala
Spark编程语言选择:Scala、Java和Python
Spark编程语言选择:Scala、Java和Python
Spark编程语言选择:Scala、Java和Python
|
11月前
|
存储 分布式计算 Scala
Spark-RDD 键值对的操作(Scala版)
Spark-RDD 键值对的操作(Scala版)
|
11月前
|
SQL 存储 JSON
人人都懂Spark-SQL基础操作(Scala版)
人人都懂Spark-SQL基础操作(Scala版)
|
11月前
|
JSON 分布式计算 算法
Spark-编程进阶(Scala版)
Spark-编程进阶(Scala版)
|
11月前
|
JSON 分布式计算 Hadoop
Spark-数据读取与保存(Scala版)
Spark-数据读取与保存(Scala版)
|
11月前
|
存储 缓存 分布式计算
Spark RDD编程基础(Scala版)
Spark RDD编程基础(Scala版)