2010年7月22日木曜日

プリム数は減らさないっす

Viewer 2.0.1からベータが外れてたっすね。
ビューワについてはあんまり書く気はないっす。
たぶん他の方が書いてるっすからね。
どうもぺんぎんっす( ◎v◎ )


リバーシのAIを書いてるっす。
大体想像できると思うっすけど、一般的なスクリプトに比べて、
とんでもなく容量を食ってるっす。
合計すると全体で100KBを余裕で超えるっす。
もちろんMonoコンパイルでの話っす。
数値計算が主なので重い処理はほとんど無いんっすけどね。
でも、これだけ容量を食ってると何か対策が必要かもっすね。

メモリ消費量について話が出てたので紹介するっす。

ポイントを書き出してみるっす。
・1つのFull Regionには800MBが割り当てられている
・Regeion内のアバターもオブジェクトも、このリソースを使う
・アバターのメモリ使用量の99パーセント点(※)は10MB
 (※ パーセント点(percentile)は百分位数のことで、
  パーセンテージとは別物なので注意っすよ。
  ざっくり言えば上位1%は10MB以上使っていて、
  その他の99%の使用量は10MB以下ってことっす)

公平にリソースが分配されたとき、その範囲内であれば文句無いっすよね?
ということで、「プリム数あたりのメモリ消費量」を指標としてみるっす。
リバーシは装着型じゃないっすから、これを使うっす。
装着型のオブジェクトには別の指標が必要っすね。

先のリンクの内容から許容範囲を出してみるっす。
Full Regeionの場合、まず、800MBのうち400MBをアバターに、
残りの400MBを土地のオブジェクトに割り当てるっす。
400MBは99パーセント点上のアバター40人分になるっす。
その残った400MBを平等に分配するっす。
つまり15,000で割れば良いっすね。
400MB / 15,000prims ≒ 27KB/prim
っていう値が出るっす。
HomesteadはFull Regionの1/4のプリム数っすから、
メモリリソースを4つのHomesteadで共有してると仮定すると
Full Regionと同じ27KB/primっていう値が出るっす。
(800MB / 4 = 200MB
200MB / 2 = 100MB
100MB / 3,500prims ≒ 27KB/prim)

これはギリギリの値なので、もっと下げないといけないっす。
どのくらいからパフォーマンスに影響するのか分かんないんっすけど、
とりあえず半分くらいにして、キリの良い値を指標には使いたいっす。

というわけで、自分の指標は
上限は16KB/primで、可能な限り8KB/primに抑える
にしたっす。


プリム数を増やして、割合としてのメモリ使用量を下げるっす。
リバーシが全体で130KBとすると65primsで2KB/primっすね。
これくらいなら大丈夫…なんっすかねぇ?

0 件のコメント:

コメントを投稿

Free Avatar