リモートパフォーマンスモニタで見る限り描画系はあんまり重くなさげだったので、素直にUpdateの方をMonitorを駆使して3コアに分散、コリジョン判定でいちいちクラスをキャストするのをやめたりしてちょっとだけチューニング、まあまあ性能が出るようになってきた。作ってるのはAPEを移植した簡単な2D物理シミュレータ。
- Performance Counters in the XNA Framework (http://msdn2.microsoft.com/en-us/library/bb203913.aspx)
パフォーマンスカウンタで得られる数値はそこそこ有用なのだが、それぞれの数値がどの程度だとパフォーマンスに悪影響があるのか、その簡単な指標が欲しくもある。今作っているものだと、数回に一回GC Latency TimeのDeltaに3msほど出ているのだが、これは妥当な値なのだろうか。まあ一意にこれ以上だとダメ、っていう具合には決められないのだろうが。
あとはCompact CLRにおける基本的な最適化手法に関するドキュメントも欲しいな。とりあえずキャストを減らしてみたりしているが、それが本当に最適化になっているか確信が持てん。IEnumerable