今月の日経Linuxの連載のテーマは「アクター」である。
で、サンプルなしに説明できるようなテーマではないので、 今回取りあげる
のそれぞれで同じことをするサンプルプログラムを用意する。 って、実は割とありふれたpingpongプログラムだけど。 ただし、出まわってるのでは、微妙な処理が違うので、 RevactorとErlangについては結局新作になった。 Dramatisはサンプルそのまま。
で、久しぶりにErlangでプログラムを書いたら、 コンマとかセミコロンとかピリオドとかの使い分けが分からず(あとif文)、 エラーが頻発した。もちろん筋の通ったルールがあるのはあるのだが、 Rubyのような言語に馴れた身としては、 「そんなところ使い分けなくてもいいじゃん」と思わないでもない。
あと、Erlang、Revactor、Dramatisそれぞれの仕様の違いが 明確になるのも面白い。一番興味深いのはDramatis。 一番高速なのはErlang(pingpong例題では)。 Revactorは今後に期待。でもMongrelをアクターベースで動かすと スレッドベースよりも高速らしい。
アクターベースのノンブロッキングアクセスでNeverBlock同様の性能改善が 実現できるというならばそれはすばらしい。 ちゃんとベンチマークしなくちゃいけないけど、 今回の原稿にはベンチマーク結果は間に合わないみたい。残念。