2006年12月13日 星期三

程式最佳化

 最近幾天開始玩一些幫助程式最佳化的工具,以前都沒有認真地去使用工具分析程式,不知道世界上原來還有這麼好玩的東西。

 

3D程式的最佳化,分別要從CPU及GPU著手,對我而言也就是去分析我的C++ 程式碼以及HLSL。 ( C# 或是 GLSL 我不會用 ) 

 

CPU的分析工具是  Intel    => VTune(tm) Performance Analyzer

                                    AMD =>  CodeAnalyst

 

GPU則使用              ATI         =>  GPU PerfStudio (V1.0 Beta)  及 GPU Shader Analyzer (V1.0) 

                                   NVIDIA =>  NVPerfHUD

 

 

因為我的coding 工具是 Intel + NVidia 的組合,就找了對應的兩樣工具來用。

內行的看門道,外行的湊熱鬧

因為我是外行的,所以就針對工具介面隨便說說感想。

 

VTune用起來果然不錯,支援Visual Studio 的plug-in,在我的VC裡面可以側錄我的程式,計算出functions classes modules 花掉的時間。

知道每個function 被call 的次數,及每次function佔用的時間,很容易就可以找到 hot spot 了。當然啦,Performance Analizer 不找 Hot Spot 要幹麻,

介面長得帥,像我這樣的外行會用,才是重點。

 

至於 NVPerfHUD,長得更帥,更容易上手!!

每個Mesh ( Call DrawPrimitive() ) 可以 Step By Step 畫出來!!

每個 VS 跟 PS 的佔用時間都算好還不稀奇,連每張 Sampler 都有 Preview!!

真是太神啦

連Render To Texture 都可以 Step By Step 畫給你看,真是七武器之首!!

 

看熱鬧到此為止,拿這些東西去挖自己的程式是最恐怖的事,大概會像挖亂葬崗一樣吧 ,真不想面對。

或許跟同事朋友交換程式來挖會比較簡單一點,揭別人瘡疤才不會痛。