2007年06月07日
メモリ管理には謎がある
"エースプログラマの uki-uki 日記"
「Second Life そんなネタふりされたら・・・・(LSL最適化) 」
http://blog.g-up.com/hidenori_goto/?s=2&b=11030
イベント内で、llOwnerSay( "Hello Avatar!" ); のような処理をしている場合、
>元の文字列が関数のコードブロックに直接保存されていますが、
>実行時にこれとは別にメモリ領域を確保する必要があるため、
>実質文字列長の倍の領域のメモリを消費していると考えることができます。
だそうで、グローバル変数のほうがメモリを節約できる。という記事。
なるべくローカル変数を使うようにしていた私には驚くような記事でした。
Stack-Heap Collision で悩んでいて、llGetFreeMemory() でいくつか実験して
よく分からなかったので別な手段で解決したのですが、
バイトコードやメモリの内容を調べる方法はあるんでしょうか^^?
「Second Life そんなネタふりされたら・・・・(LSL最適化) 」
http://blog.g-up.com/hidenori_goto/?s=2&b=11030
イベント内で、llOwnerSay( "Hello Avatar!" ); のような処理をしている場合、
>元の文字列が関数のコードブロックに直接保存されていますが、
>実行時にこれとは別にメモリ領域を確保する必要があるため、
>実質文字列長の倍の領域のメモリを消費していると考えることができます。
だそうで、グローバル変数のほうがメモリを節約できる。という記事。
なるべくローカル変数を使うようにしていた私には驚くような記事でした。
Stack-Heap Collision で悩んでいて、llGetFreeMemory() でいくつか実験して
よく分からなかったので別な手段で解決したのですが、
バイトコードやメモリの内容を調べる方法はあるんでしょうか^^?