2012年12月16日日曜日

3364バイトっす

ブログは久しぶりになるっすね。
他のところでいろいろ書いてたっす。
これまで通り、何か作ってるっすよ。
どうもぺんぎんっす( ◎v◎ )


誰も来ない「いつもの会」っすけど、活動はしてるっす。
今日はllGetSPMaxMemoryとかllGetUsedMemoryをいじったっす。
メモリ消費量を取得する関数っすね。

予想はしてたっすけど、きっちりした値を返すわけではないっす。
ほとんどは12バイト刻みの値を返してくるっす。
急に飛んだりして一律12バイト刻みではなかったっすね。
他にもいろいろ検証してみたっす。

一番簡単なコードを書いておくっす。
default
{
    state_entry()
    {
        llOwnerSay((string)llGetUsedMemory());
    }
}
やってもらえば分かるっすけど3364って出るっす。
ここから最小のスクリプトにおけるメモリ消費量を出すっす。
default stateにイベント1個が最小っすよ。

やり方は上のスクリプトが3364を返してきてるので、
 llOwnerSay((string)llGetUsedMemory());
の分を引いてやるっす。
 llOwnerSay((string)llGetUsedMemory());
 llOwnerSay((string)llGetUsedMemory());
っていう風に何個か重ねて、3364との差を見て行くっす。
OwnerSayで出てきた値は全部出しておくっすね。

1個: 3364
2個: 3364, 3364
3個: 3364, 3364, 3388
4個: 3364, 3364, 3388, 3388
5個: 3876, 3876, 3900, 3900, 3900

6-10個: 3876, 3876, 3900, 3900, …
20個: 4900, 4900, 4924, 4924, …


意味ありげに512バイトすっ飛んでたりするので、
この方法だと全然分からないっす。
4つで24バイト増えたから6バイト!ってやるのは危ないっす。
とりあえず、今日の結論っす。
最小のスクリプトは3364バイトくらいなんじゃないっすかね?
Free Avatar