2010年3月8日月曜日

1.38サーバーで遊んできたっす

ビューワ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 件のコメント:

コメントを投稿

Free Avatar