Scalaのreactとreceiveの性能を測定してみた.

既にブームも落ち着いた感もあるけど,ちょっと前からScalaを触っている.Scalaといえば,標準ライブラリのActorクラスによってErlang由来の並列プログラミングが可能なことが一つのウリになっている.

Actorクラスの並列プログラミングの仕組みを簡単に説明する.まず,Actorとよばれる個々の独立なオブジェクトが存在する.これらのオブジェクトは共有のメモリをもたずに,オブジェクト間のメッセージのやりとりによってのみ,処理に必要な情報の伝達を行う.この方法だと,並列に動くオブジェクト間でのリソースの管理がシンプルになるため,並列処理特有の難しさを回避できるらしい.

Actor間のメッセージのやりとりは,Actorにメッセージを送信する方法と,Actor側で受け取ったメッセージに基づいて処理を実行する方法によって規定される.メッセージを送信する方法はこんな感じ.
>|scala| myActor ! "Any Message" |