ガベージコレクションに、しきい値となる切迫度を与える。ガベージコレクションの切迫度がしきい値を超えると、収集を1段階終える。値が大きいほど切迫度は高い。負の数値は0.25、1.0以上は1.0に、NaNはデフォルト値の0.75とみなされる。3.0では、要らなくなったオブジェクトなどが占めていたメモリを「ガベージコレクション」という仕組みにより開放します[*1]。ガベージコレクションは負荷の高い処理です。3.0には、ガベージコレクションの実行を促したり抑えたりする静的メソッドSystem.pauseForGCIfCollectionImminent()が備わりました。Playerのルートから順にオブジェクトの参照をたどって印(マーク)をつけていきます。すべてのオブジェクトを確かめた後、印のないオブジェクトが占めていたメモリを開放します[*2]。使われているメモリやオブジェクトの数が多いと、ガベージコレクションが費やす時間も増します。そのため、アプリケーションの実行をできるだけ妨げないように、処理は小分けして行われます。それでも、とくにメモリを開放するときには、アプリケーションを止めてしまうこともあります。すると、アニメーションやサウンドが途切れてしまうかもしれません。System.pauseForGCIfCollectionImminent()メソッドは、ガベージコレクションの実行を促したり抑えたりできます。ゲームの真っ最中は実行を抑えて滑らかなアニメーションに徹し、レベルをクリアしたときつぎに備えてメモリを開放すれば、ユーザーは快適なプレイが楽しめるでしょう。System.pauseForGCIfCollectionImminent()メソッドに渡す引数の切迫度(imminence)はしきい値です。それはガベージコレクションの単なる頻度ではありません。行われる処理がすぐに終わるなら、実行しても差し障りはないでしょう。コレクションに時間がかかりそうなときは、メモリの空き具合によります。空きメモリが少なければ切迫度は高まります。System.pauseForGCIfCollectionImminent()メソッドに低い切迫度を渡すと、ガベージコレクションは比較的活発に実行され、多くのコレクションが行われます。切迫度を高めると、コレクションがすぐに済む場合でないかぎりアプリケーションを止めません。空きメモリが増えるかどうかは、切迫度の値とは別です。問題は参照を失ったオブジェクトがどれくらいあるかだからです。大きなデータや大量のオブジェクトの参照を消した後なら、切迫度を低めることによりガベージコレクションが促され、メモリも開放されやすくなります。collection)とは、オブジェクトへの参照を確かめ、すべての参照がなくなるとメモリを自動的に解放する仕組みです。01「ガベージコレクションと弱い参照」(PDFプレビュー公開)p.024-025およびF-site「DisplayObjectインスタンスの削除とガベージコレクション」をご参照ください。ガベージコレクションの「マーク・アンド・スイープ」と呼ばれる実行方法です。9のガーベジコレクション」をお読みください。