Pool

手動ガベージコレクション

ソースコード

http://www.libspark.org/svn/as3/Pool/trunk/

samples以下に使い方の例が入っています(要FlashDevelop)。

背景

http://d.hatena.ne.jp/heriet/20080510

現状

  • 実装しかけです。
  • フールプルーフ不足です。
  • Flash Player 9以上で使えます。

特徴

  • ActionScript3のガベージコレクタが頼りないと思った時に気軽に導入できます。
  • 使い終わったオブジェクトをfree()すると、後でalloc()した時にそれが再利用されます。
  • 特に弾幕シューティングを作るような場合に便利だと思います。

内容

これは使い終わったオブジェクトを後で再利用するためのライブラリです。
newのコストやガベージコレクションを最小限に抑える効果があると思われます。が、作った本人は確かめてません。
大量のオブジェクトを使い捨て、かつ実行速度が問題になるようなケースで使う事が想定されています。
そのため、入力値チェックなどは必要最小限です。使う人が自分でチェックして下さい。

よくありそうな質問

  • 似たようなクラスが多くて、どれを使えばいいのか分かりません。
    • とりあえず試してみるならサンプルを見てPoolFromClassを使ってみるのが簡単です。
  • 実行速度が問題なので、自分で書いたコードしか信用できません。
    • そうですね。
  • Astroの機能は使わないんですか?
    • 自分のマシンで動かない機能は使っていません。

ライセンス

MITライセンスでお願いします

クレジット

  • 様々な方のソース及び事例を参考に致しました。特にHeriet
  • ご意見や修正などはご自由にどうぞ。