ソラマメブログ
< 2024年04月 >
S M T W T F S
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30        

2009年08月09日

SIM負荷チェッカー(リンデンスクリプト Tips)

久々の更新ですw
本日は、SIMの負荷をチェックするスクリプトを作成しました。
負荷のレベルによって、オブジェクトの色が、緑->黄->赤と変化します。
フローティングテキストで、SIM名、SIMに存在するアバターの人数、FPS、TimeDilation
を表示します。FPS、TimeDilationの意味については、後述を参考下さい。
SIMをこよなく愛するあなたへw

SIM負荷チェッカー(リンデンスクリプト Tips)

「スクリプト内容」
//
//    SHOP ZERO Tips39 SimPerformanceChecker  v1.0
//
//                   Created by Zero2000 Kidd     2009/08/09
//
 
 
float checkRate=5.0;
string title="SIM PERF CHECKER";
vector lime=<0.00,1.00,0.00>;
vector yellow=<1.00,1.00,0.00>;
vector red=<1.00,0.00,0.00>;
vector white=<1.00,1.00,1.00>;
 
ShowPerformance() {
 
    string simname=llGetRegionName();
    float fps=llGetRegionFPS();
    float timdilation=llGetRegionTimeDilation();
    integer avatorcount=llGetRegionAgentCount();
 
    vector color;
    if (fps>35) color=lime;
    else if (fps<20) color=red;
    else color=yellow;
 
    string str=title+"\n";
    str+="Sim Name:"+simname+"\n";
    str+="Avator Count:"+(string)avatorcount+"\n";
    str+="Sim FPS:"+(string)fps+"\n";
    str+="Time Dilation:"+(string)timdilation+"\n";
    llSetText(str,white,1.0);
    llSetColor(color,ALL_SIDES);
}
 
 
default
{
 
    state_entry() {
        llSetText(title,white,1.0);
        llSetColor(white,ALL_SIDES);
        llSetTimerEvent(checkRate);
        llSetPrimitiveParams([PRIM_BUMP_SHINY,ALL_SIDES,PRIM_SHINY_HIGH,PRIM_BUMP_NONE]);
    }
 
    on_rez(integer param){
        llResetScript();
    }
 
    touch_start(integer total_number)
    {
        llSetTimerEvent(0);
        state off;
    }
 
    timer() {
        ShowPerformance();
    }
 
}
 
state off
{
    state_entry() {
        llSetText(title+"\nOFF",white,1.0);
        llSetColor(white,ALL_SIDES);
    }
 
    on_rez(integer param){
        llResetScript();
    }
 
    touch_start(integer total_number)
    {
        state default;
    }
 
}
 
「使用方法」 1. オブジェクトを1つ作成します。(球でもボックスでも何でも構いません。) 2. オブジェクトにスクリプトをドラッグします。 3. 5秒サイクルで、SIMの負荷をチェックします。 4. オブジェクトをタッチするとチェックを停止します。 再度タッチするとチェックを再開します。 * チェックの間隔を変更したい場合は、下記のパラメータを変更して下さい。  float checkRate=5.0; 「スクリプトの説明」 流れとしましては、llSetTimerEventを使用して定期的にSIMのFPS値を取得し、 FPS値の値によって、下記の基準でオブジェクトの色を変化させます。 FPS 35以上    -> 緑 FPS 20以上 35未満-> 黄 FPS 20未満    -> 赤 FPS値の取得には、llGetRegionFPS()を使用します。 FPSとは、フレームレートと呼ばれるのもの値が低いほどSIMの負荷が高い状態といえるようです。 リンデンのサイトでは、以下のように定義されています。
FPS値説明
45最高の状態です。何もする必要はありません。
35 - 44良い状態です。35 FPSを切るようなことがなければ特に調整をする必要はありません。
20 - 35遅い状態です、注意する必要があります。リージョンパフォーマンスを改善するために調整が必要です。
10 - 20悪い状態です、深刻な状況といえます。
0 - 10恐ろしい状態です。サポートチケットを切るべきです。
恐ろしい状態って。。。w TimeDilationは、実行処理の遅延を示す数値で、1.0に近いほど遅延が少なく健全と言えるようです。 詳細を知りたい方は、下記を参考下さい。 Region Performance Improvement Guide [参考] カラーパレット llGetRegionFPS llGetRegionTimeDilation llGetRegionAgentCount llGetRegionName llSetTimerEvent LlSetPrimitiveParams llSetColor llSetText リンデンスクリプト Tips Indexへ



同じカテゴリー(リンデンスクリプトTips)の記事画像
サウンド再生スクリプト(リンデンスクリプト Tips)
カメラコントロール(リンデンスクリプト Tips)
標準時間表示スクリプト(リンデンスクリプト Tips)
プリムカウンター2(リンデンスクリプト Tips)
土地情報チェッカー(リンデンスクリプト Tips)
RSSリーダー(リンデンスクリプト Tips)
同じカテゴリー(リンデンスクリプトTips)の記事
 サウンド再生スクリプト(リンデンスクリプト Tips) (2009-12-16 20:13)
 カメラコントロール(リンデンスクリプト Tips) (2009-11-21 21:26)
 標準時間表示スクリプト(リンデンスクリプト Tips) (2009-11-02 00:34)
 プリムカウンター2(リンデンスクリプト Tips) (2009-10-12 20:40)
 土地情報チェッカー(リンデンスクリプト Tips) (2009-10-11 21:33)
 RSSリーダー(リンデンスクリプト Tips) (2009-02-02 19:38)
この記事へのコメント
お久しぶりです。

なんだか、ソラマメブログの商用利用が10月から有料になるようで、皆さん、引越しされているみたいですよ。

月800円とか900円とからしいです。

ではでは。
Posted by たまちゃん at 2009年08月29日 00:50
 
<ご注意>
書き込まれた内容は公開され、ブログの持ち主だけが削除できます。