360上のXNAで性能を出すのは難しいのか

ローポリモデルを大量に書くときの最適化手法。まさしく今私が使いたいものなのだが……サンプルコードが難しくてよく分からん。VFetchInstancingVertexShaderはどのタイミングでどのように呼び出されるんだろう……

あとコード内の#if XBOX360と#if !XBOX360の数の多さにもげんなり。この辺の最適化まで行おうとすると、Windowsと360でほとんど別のコードになっちゃうのね。

先日のマルチコアハンドリングの件(id:ABA:20070929#p2)といい、360で性能が出るXNAのコードを書くのは結構大変なのかもしれん。

この辺にあるパフォーマンスモニタを使う必要があるのかも。

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.

あとこの辺の話も。とっくの大昔にコンパイラで自動化された最適化を、マネージドコードを使うとまた手動でやらされるはめになるのも難儀なこったね。