2011年5月11日 星期三

FlashBuilder Performance Profile view (性能概要文件與方法統計使用)

FlashBuilder效能分析工具中,有一項Performance Profile view可以查詢應用程式中每個method被執行的次數,執行的時間花費,以便讓你追查效能狀況得知哪裡需要優化。

使用範例:
Step1.建立如下測試功能的程式碼
//測試程式碼:
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
               xmlns:s="library://ns.adobe.com/flex/spark"
               xmlns:mx="library://ns.adobe.com/flex/mx"
               minWidth="955" minHeight="600"
              >
      <fx:Script>
            <![CDATA[
                  private var _ran:Boolean = true;
                  protected function button1_mouseDownHandler(event:MouseEvent):void
                  {
                     if(_ran)
                     {
                        _ran = false;
                        for (var j:int = 0; j < 100000; j++)
                        {
                          trace(examA4());
                        }
                        _ran = true;
                     }
                  }
                  private var str:String = "http://www.test.yes/index.html";
                  private function examA4():String
                  {
                      var targetIndex:int;
                      targetIndex = str.lastIndexOf("/") + 1;
                      if(targetIndex >= 0 ) {
                          return(str.slice( targetIndex , str.length));
                      }else {
  return null;
                      }
                  }
              ]]>
       </fx:Script>
   <s:Button mouseDown="button1_mouseDownHandler(event)"/>
</s:Application>
Step2.點擊圖示,進入效能分析模式
Step3.點擊正在運行的程式,並點擊捕獲性能概要的圖示







Step4.捕獲文件後,雙擊文件,打開性能概要文件窗口









可以看到窗口內有所有method被執行的訊息,目前Button的mouseDown還未觸發,所以還沒見到examA4()的執行狀況。

Step5.點擊瀏覽器上的Button來觸發執行examA4()
  • examA4()還在跑的時候,可以看見瀏覽器上Button還在被MouseDown的狀態,執行完畢的話Button會回復原狀。
Step6.examA4()執行完成後,再次點擊捕獲性能概要文件
Step7.再次點擊被捕獲的文件,可以看到examA4()被執行狀況的資訊了










如此可以觀察到,examA4()被調用了幾次,占了應用程式中總調用的百分比,發費了多少時間等等。

在這裡只是一個操作範例,一般使用上是拿來追蹤程式中method被調用以及執行效能狀況,以便判斷哪裡需要優化。


沒有留言:

張貼留言