« 最適化された最適化手法について | メイン | Q4M バージョン 0.8 をリリースしました »

2008年08月04日

実行時間を抑制するモジュール Sub::Throttle を書いた

 Sub::Throttle という、実行時間を指定した割合に抑制するモジュールを作りました。実装としては、関数の実行後に適切な時間の sleep を挿入する形になっているので、下のようにループの実行中に挿む形で使うことになります。

# 使用前
for (...) {
  ...
}

# 使用後 (負荷を 0.1=10% に抑制)
use Sub::Throttle qw/throttle/;

for (...) {
  throttle(
      0.1,
      sub {
          ...
      },
  );
}

 Pathtraq の場合は、Disk I/O を引き起こすようなタスクについて、その負荷を抑えるために使用しています。

投稿者 kazuho : 2008年08月04日 10:22 このエントリーを含むはてなブックマーク このエントリーを含むはてなブックマーク

トラックバック

このエントリーのトラックバックURL:
http://labs.cybozu.co.jp/cgi-bin/mt-admin/mt-tbp.cgi/1975