SSブログ

RemoteActor を使ってみた [Scala]

きっかけはどう書く?orgの「分散関数呼び出し」というお題 [1] で、そういえば Scala に scala.actors.remote っていうパッケージあったなと思って使ってみた。

使い方はかなり簡単。これがサーバ。

import scala.actors.Actor._
import scala.actors.remote.RemoteActor._

object RemoteServer {
  def main(args: Array[String]) {
    actor {
      alive(9000)
      register('priceString, self)
      loop {
        react {
          case ('priceString, price: Int, discount: Int) =>
            val result = 
              "販売価格" + (price * (100 - discount) / 100) + "円" +
              "(定価" + price + "円から" + discount + "%引き)"
            reply(result)
          case 'shutdown => exit
        }
      }
    }
  }
}

クライアントからはこんな風に使う。

import scala.actors.remote.RemoteActor._
import scala.actors.remote.Node

val c = select(new Node("127.0.0.1", 9000), 'priceString)
c !? ('priceString, 2000, 100)

しかしパフォーマンスについてはCeleron2.8GHz/768MBメモリの同一マシンで10000回呼び出したところ110秒とかそんな感じの結果だった。どうも見劣りするなあ。

[1] http://ja.doukaku.org/45/


nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:パソコン・インターネット

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。