- Mesh Instancing (http://creators.xna.com/Headlines/developmentaspx/archive/2007/01/01/Mesh-Instancing.aspx)
ローポリモデルを大量に書くときの最適化手法。まさしく今私が使いたいものなのだが……サンプルコードが難しくてよく分からん。VFetchInstancingVertexShaderはどのタイミングでどのように呼び出されるんだろう……
あとコード内の#if XBOX360と#if !XBOX360の数の多さにもげんなり。この辺の最適化まで行おうとすると、Windowsと360でほとんど別のコードになっちゃうのね。
先日のマルチコアハンドリングの件(id:ABA:20070929#p2)といい、360で性能が出るXNAのコードを書くのは結構大変なのかもしれん。
- 第6回 .NETアプリを軽快にするためのガベージ・コレクション講座 (http://www.atmarkit.co.jp/fdotnet/directxworld/directxworld06/directxworld06_02.html)
この辺にあるパフォーマンスモニタを使う必要があるのかも。
- Optimization Tutorial: Particles and High-Frequency Code (http://tinyurl.com/38u7wh)
This also saves us calling one of the operator overloads. This kind of thing is frequently fixed up by modern C++ compilers. They inline aggressively, and a tremendous amount of work has been done to improve math code using the built in floating-point units in Intel/AMD chips, including keeping things on the floating-point unit stack until we really need to save them off. It is not fixed by managed code compilers for a number of reasons. Probably the simplest is they simply aren’t that mature yet. C++ compilers have been around for decades. Managed code compilers have not.
あとこの辺の話も。とっくの大昔にコンパイラで自動化された最適化を、マネージドコードを使うとまた手動でやらされるはめになるのも難儀なこったね。