<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    莊周夢蝶

    生活、程序、未來
       :: 首頁 ::  ::  :: 聚合  :: 管理

    Scala Ring Benchmark

    Posted on 2009-06-09 13:42 dennis 閱讀(1603) 評論(3)  編輯  收藏 所屬分類: 動態語言java
        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



    評論

    # re: Scala Ring Benchmark  回復  更多評論   

    2009-06-13 09:40 by metadmin
    語法有些類C的味道。代碼沒有比JAVA簡化多少。 RUBY簡化的很多。

    ---------------------------------
    解開權限與業務耦合,提高開發效率
    細粒度權限管理軟件 試用版下載
    http://www.metadmin.com

    # re: Scala Ring Benchmark  回復  更多評論   

    2009-06-13 10:31 by dennis
    @metadmin
    ruby寫的ring benchmark ,代碼不少的。

    # re: Scala Ring Benchmark  回復  更多評論   

    2009-11-09 18:02 by arbow
    $ scala RingBenchmark 1000 10000
    24332
    $ scala -Dactors.corePoolSize=1 RingBenchmark 1000 10000
    16870
    $ scala -Dactors.corePoolSize=2 RingBenchmark 1000 10000
    20646

    調度器線程數的影響還是比較明顯
    主站蜘蛛池模板: 亚洲日本国产乱码va在线观看| 亚洲综合偷自成人网第页色| 亚洲视频免费观看| 在线观看亚洲AV每日更新无码| 免费a在线观看播放| 四虎国产精品永久免费网址| 亚洲色中文字幕在线播放| 久久久久国产亚洲AV麻豆| 91香蕉国产线观看免费全集| 日韩大片免费观看视频播放| 久久亚洲精品国产精品| 日本免费人成黄页在线观看视频| 91免费福利视频| 亚洲大码熟女在线观看| 亚洲va无码手机在线电影| 国产成人一区二区三区免费视频| 高清一区二区三区免费视频| 性色av极品无码专区亚洲| 久久亚洲sm情趣捆绑调教| 不卡一卡二卡三亚洲| 午夜视频免费观看| 999任你躁在线精品免费不卡| 国产亚洲人成在线影院| 国产精品亚洲片在线va| 亚洲AV午夜福利精品一区二区 | 免费又黄又爽又猛大片午夜| 久久亚洲春色中文字幕久久久| 国产免费久久精品| 成年女人视频网站免费m| 免费国产黄网站在线观看可以下载| 麻豆69堂免费视频| 亚洲区日韩精品中文字幕| 久久精品国产亚洲AV麻豆网站| 国产精品亚洲玖玖玖在线观看| 成人免费视频一区| 性生交片免费无码看人| 久久久久久毛片免费播放| 成全动漫视频在线观看免费高清版下载| 国产精品亚洲综合天堂夜夜| 学生妹亚洲一区二区| 亚洲国产综合人成综合网站00|