llGetFreeMemory
integer llGetFreeMemory()
スクリプトが使用可能な残りメモリ容量(単位byte)を返す。
各スクリプトが利用可能なメモリ容量は一律16Kbyteである。
このメモリ容量の中にはスクリプトのバイトコード、スタックメモリ、ヒープメモリが含まれる。
このメモリ容量の中にはスクリプトのバイトコード、スタックメモリ、ヒープメモリが含まれる。
極々簡単に言ってしまうなら、スクリプトのバイトコードとはスクリプト本体のことであり、スタックメモリは関数の呼び出し時に使われる領域、ヒープは変数の格納領域である。
すなわち、以下のような事柄がメモリを消費する要因になる。
すなわち、以下のような事柄がメモリを消費する要因になる。
- 巨大なスクリプト
1スクリプト内に全ての処理を書くには限界がある。
スクリプトで実装する機能が膨大な場合はモジュール化(複数のスクリプトに分けてリンクメッセージ等でやり取りする方法)を考慮する。
スクリプトで実装する機能が膨大な場合はモジュール化(複数のスクリプトに分けてリンクメッセージ等でやり取りする方法)を考慮する。
- 関数のネスト
大量のユーザー関数を用意し、関数の中から関数を呼び出し、さらに別の関数を・・・と次々に呼び出すとスタックメモリが消費される。
- 巨大なリスト
リスト型変数は何でも格納できて便利だが、格納サイズには限界がある。
リストを多用し、いくつもの要素を格納していくとヒープメモリが足りなくなる場合がある。
リストを多用し、いくつもの要素を格納していくとヒープメモリが足りなくなる場合がある。
かなりザックリな説明なので突っ込みどころではある(^^;