ビューワ2.0だとスクリプトのメモリ消費量も見えるみたいっすね。
1.23で行ったもんっすから見れなかったっす。
楽しみは後まで取っておくっす。
どうもぺんぎんっす( ◎v◎ )
Server 1.38 Beta Now Open
https://blogs.secondlife.com/community/technology/blog/2010/03/05/server-138-beta-now-open
1.38では新関数が来たっす。
llSetLinkPrimitiveParamsFast(以下SLPPF)の威力を試してみたっす。
実験してみると、十分SLPPから入れ替えるに値する結果が得られたっす。
リサイズ・スクリプトは1本の時代になるっすね。
以下のコードで試したっす。
llSetLinkPrimitiveParamsFastの文字は黒字のままだと思うんっすけど、
コンパイルは通るので気にしないでくださいっす。
あと、例のごとく半角スペース2個→全角スペースに置き換えてあるっす。
default
{
touch_start(integer total_number)
{
integer i;
llResetTime();
for(i = 0; i < 100; i++)
{
llSetPrimitiveParams(
[
PRIM_TYPE,
PRIM_TYPE_BOX,
PRIM_HOLE_DEFAULT,
<0.000000, 1.000000, 0.000000>, // cut
0.000000, // hollow
<0.000000, 0.000000, 0.000000>, // twist
<1.000000, 1.000000, 0.000000>, // top_size
<0.000000, 0.000000, 0.000000> // top_shear
]);
}
llOwnerSay("SPP time:" + (string)llGetTime());
llResetTime();
for(i = 0; i < 100; i++)
{
llSetLinkPrimitiveParams(LINK_ROOT,
[
PRIM_TYPE,
PRIM_TYPE_BOX,
PRIM_HOLE_DEFAULT,
<0.000000, 1.000000, 0.000000>, // cut
0.000000, // hollow
<0.000000, 0.000000, 0.000000>, // twist
<1.000000, 1.000000, 0.000000>, // top_size
<0.000000, 0.000000, 0.000000> // top_shear
]);
}
llOwnerSay("SLPP time:" + (string)llGetTime());
llResetTime();
for(i = 0; i < 100; i++)
{
llSetLinkPrimitiveParamsFast(LINK_ROOT,
[
PRIM_TYPE,
PRIM_TYPE_BOX,
PRIM_HOLE_DEFAULT,
<0.000000, 1.000000, 0.000000>, // cut
0.000000, // hollow
<0.000000, 0.000000, 0.000000>, // twist
<1.000000, 1.000000, 0.000000>, // top_size
<0.000000, 0.000000, 0.000000> // top_shear
]);
}
llOwnerSay("SLPPF time:" + (string)llGetTime());
}
}
分かりやすく言うと、100プリムの髪とかのリサイズとかを
1本のスクリプトで行った場合にかかる時間の比較っす。
SPPはオマケなので、別に良いっす。
注目するポイントはSLPPとSLPPFの差っす。
SPPとSLPPには元々0.2秒のディレイが設定されてるっす。
なので100回だと、それが×100っす。
つまりは少なくとも20秒かかるわけっす。
で、SLPPFにはディレイがないっすから、その分だけ速いっす。
でも、SLPPから20秒引いても、まだSLPPFの方が速いっす。
何回かTouchして動かしてみると
SLPP: 22.6秒(ディレイ分20.0秒を引くと2.6秒)
SLPPF: 0.205秒
何なんっすかね?この差は・・・
SLPPFネタだけで1本分の記事の長さになっちゃったっす。
GLPPとかは、また今度っすね。
0 件のコメント:
コメントを投稿