読者です 読者をやめる 読者になる 読者になる

Actorの非同期IOの実験

ScalaのActorを使って非同期で画像ファイルをいくつか同時にダウンロードしてみる実験.「非同期化ではやくなった!」みたいなのを体験するのが目的です.

http://gist.github.com/143000

上のスクリプトを使い同期/非同期でいくつか(15とか)の画像ファイルをダウンロードして,実行時間をおおまかにはかってみた.結果,同期版: 3.423秒/非同期版 3.090秒 とあんまりかわらず.

そんなに「非同期化ではやくなった!」みたいな体験はできなかった…

  • 画像ファイルをおいてあるサーバがローカルネットワークにあったのでIO waitが比較的短くて,同期/非同期の差がでにくかった?
  • Actorのオーバーヘッドがすごい?

あたりがあんまり速くならない原因かなあ.

Perlのスクリプトを使ってローカルじゃないリモートのサーバに対してほぼ同様の実験してみたときは,同期版: 8.506秒/非同期版 2.691秒と結構顕著な差が出てたので,あたりまえだけどIO waitの長さが結果にだいぶ効いてる気がする.

全体的に計測の仕方が適当なので,結果は信用ならないのです.