【ダンジョン】 自動生成 2 【地形】
■ このスレッドは過去ログ倉庫に格納されています
0149名前は開発中のものです。
2008/01/29(火) 16:53:20ID:ubNaezabプロファイラでメモリ使用状況見てみたけど(個=インスタンス数)
・全体 - 5.670.000個 - 約117M
・Dictionary<T,U>.Entry - 270,000個 - 41M(34.2%)
・DungeonAutoCreate.Data.arrow - 3,300,000個 - 38M(32.2%)
・Int32 - 1,600,000個 - 18M(15.5%)
・Int32[] - 270,000個 - 13M(10.5%)
・Dictionary<T,U> - 90,000個 - 4.5M(3.8%)
これで全体の96.2%を占めている。
・DungeonAutoCreate.Block - 90,000個 - 1.7M(1.5%)
・DungeonAutoCreate.Block[] - 10,000個 - 1.7M(1.4%)
ここまで入れると99.1%
330万インスタンスあるData.arrowってのも気にはなるけど、何で辞書がこんなに大量に使われてるの?
GCも何度か発生して殆どのインスタンスがGEN2になっている辺りも改善の余地がある(=無駄なGCが発生している)
処理速度に関しては明らかにボトルネックは別なので見ていない。
あと、ReadMeに書いてあるサイズ変更した場合に大量のメモリが消費される問題だけど
「古いフィールドを破棄→新しいフィールドを作成」の間で手動でGCを実行してやるのが効果的だと思う。
■ このスレッドは過去ログ倉庫に格納されています