ios效能測試Instruments
Instruments 使用者指南
Instruments使用者指南介紹
Instruments 是應用程式用來動態跟蹤和分析 Mac OS X 和 iOS 程式碼的實用工具。這是一個靈活而強大的工具,它讓你可以跟蹤一個或多個程序,並檢查收集的資料。這樣,Instruments 可以幫你更好的理解應用程式和作業系統的行為。
使用 Instruments 應用,你可以使用特殊的工具(即 instruments 工具)來跟蹤同一程序不同方面的行為。你也可以使用該應用來記錄一系列使用者介面的動作並響應它們,同時也可以使用一個或多個 instruments 工具來收集資料。
Instruments 應用包含以下功能:
-
分析一個或多個程序的行為
-
記錄一系列使用者的動作並響應它們,可靠的再現這些事件並收集多次執行的
資料
-
建立你自己自定義的 DTrace instruments 來分析系統和應用程式的行為
-
儲存使用者介面記錄和instruments的配置為模板,並從Xcode裡面訪問使用 Instruments,你可以:
追查程式碼中難以重現的問題
對你的程式進行效能分析
自動化測試你的程式碼
對你程式進行壓力測試
進行一般的系統級故障診斷
對你的程式碼如何工作有更深入的瞭解
Instruments 在 Xcode 3.0 和 Mac OS X 10.5 及其之後可用。
本文件描述了 Instruments 的使用者介面,給出了一個如何使用 Instruments 來跟蹤程序和檢視資料的預留。目的是讓開發人員和系統管理員使用 Instruments 能更好的瞭解他們程式或系統作為一個整體的行為。
本文件組織結構以下章節描述瞭如何使用 Instruments 應用:
“Instruments快速入門”給出了Instruments的概要預覽,並介紹了主體窗2011-12-07|©2011YouMiMobileCo.Ltd.AllRightsReserved.[2]
Instruments User Guide
口。
-
“新增和配置Instruments”描述瞭如何新增和配置instruments工具,以及
在一個或多個程序裡面執行它們收集資料。本章還介紹如何對程式進行選擇
行跟蹤。
-
“記錄跟蹤資料”描述瞭如何初始化跟蹤並收集跟蹤資料的方法。
-
“記錄使用者介面軌跡”描述如何記錄和重放一系列有順的使用者操作。
-
“檢視和分析跟蹤資料”描述了用來檢視Instruments返回資料的工具。
-
“儲存和匯入跟蹤資料”描述瞭如何儲存跟蹤文件和資料,以及如何從其他
來源匯入資料。
-
“使用DTrace建立自定義工具”顯示瞭如何建立和配置基於DTrace的自定義
工具。
-
“內建的instruments工具”詳細介紹了Instruments內建的工具。
2011-12-07|©2011YouMiMobileCo.Ltd.AllRightsReserved.[3]
Instruments User Guide
第一章 Instruments快速入門
Instruments 是一個很強大的工具,你可以用它來收集關於一個或多個系統程序的效能和行為的資料,並跟蹤隨著時間產生的資料。不像其他大部分效能和除錯工具那樣,Instruments 讓你可以廣泛收集不同型別的資料,並且可以一邊檢視它們。這樣你可以發現變化趨勢,這在其他工具裡面是很難做到的。比如,你之前需要取樣程式的樣本,並分析它們在兩個獨立的執行檔案裡面執行的記憶體行為。在 Instruments裡面,你可以同時完成這些工作。你可以用這些結果資料來發現你程式碼中正在執行部分的變化趨勢和它們的記憶體使用情況。
Instruments 應用使用 instruments 工具來收集關於程序隨時間推移產生的資料。每個 instruments 收集和顯示不同型別的資料,比如檔案訪問、記憶體使用等等。Instruments 包括一個標準 instruments 工具庫,你可以使用它分析你程式碼的很多方面。你可以配置 instruments 來收集關於同一個或者不同系統程序的資料。你可以使用自定義的 instruments 工具新建介面來建立新的自定義 instruments 工具,它使用DTrace 程式來收集你想要的資料。
注意:不少應用程式(iTunes、DVD Player 和 Front Row,還有使用 QuickTime 的應用)為了保護敏感資料,不允許使用 DTrace 來收集資料(無論暫時的還是永久的)。
所有 Instruments 的工作都在一個跟蹤文件(trace documents)裡面完成。一個跟蹤文件收集那些被 instruments 聚集的與該文件有關的資料。每個跟蹤文件通常包含一個會話的價值資料,這也是作為一個單一的跟蹤。你可以儲存跟蹤文件到你已經收集的跟蹤資料備份裡面,然後可以在以後再次開啟並檢視它們。
儘管大部分的 instruments 工具旨在收集資料,但是其中最精密的 instruments工具可以幫助自動化收集資料。使用 Instruments User Interface 工具,你可以在收集資料的過程中記錄使用者事件。你可以使用這些資料來可靠的重複重現這一系列有序的事件。每次你通過這序列執行,你的跟蹤文件在其他 instruments 工具裡面收集新的跟蹤資料,並且和之前一樣邊收集邊顯示這些資料。這些特性讓你比較跟蹤的資料來提高你的程式碼,並驗證你的改動獲得預期的結果。
2011-12-07|©2011YouMiMobileCo.Ltd.AllRightsReserved.[4]
Instruments User Guide
1.1 啟動Instruments
Instruments 作為 Xcode 工具安裝的一部分。有幾個啟動 Instruments 的方法:
-
你可以在Finder裡面雙擊Instruments應用的圖示來啟動它。Instruments應用
位於<Xcode>/Applications 目錄下面,<Xcode>代表你 Xcode 安裝的根路徑。
(Xcode 預設的安裝根路徑時 /Developer 目錄。)
-
你可以通過Xcode來啟動Instruments,並把你工程下的可執行檔案作為它的目
標。在 Xcode 的選單裡面選擇 Run > Start with Performance Tool 來選擇Instruments 模板(注:在 Xcode 4.0 以上已經無此方法,你需要通過 Profile來啟動,更多請 Google 一下)。Instruments 以特定的模板啟動,並且準備好執行 Xcode 配置的當前可執行檔案。
注意:當你以這種方式來啟動一個 Instruments 模板的時候,在完成跟蹤之後,你必須顯示的停止你當前的執行檔案(無論是從程式裡面還是從 Instruments 裡面)。這不會關閉Instruments 的跟蹤文件。相反,你可以重啟可執行檔案,Instruments 顯示舊的對話方塊旁邊顯示新的對話方塊,就如圖 4-2 顯示那樣。這樣可以讓你在 Xcode 裡面修改你的程式碼,重新編譯,執行和比較新的改變產生的跟蹤資料。
-
你可以通過雙擊一個Instruments的模板檔案或者跟蹤文件來啟動它。檢視”儲存和匯入跟蹤資料”部分來掌握如何儲存一個 Instruments 的配置檔案或者使用使用者介面記錄作為一個模板檔案。
1.2 建立一個跟蹤文件
當你啟動 Instruments 後,應用會自動為你建立一個文件。你同樣可以通過選擇File > New 來建立一個新的文件。
你每建立一個新的文件,Instruments 都會提示你選擇一個開始模板。這些模板定義了一些你將要在你的跟蹤文件裡面使用的 instruments 工具集。Instruments 提供了幾種不同的模板,在表 1-1 裡面列舉出來,每個模板都有不同的使用目的。如果你手工的給你的跟蹤文件新增一個指定的 instruments 工具的話,你可以使用空白模板。
2011-12-07|©2011YouMiMobileCo.Ltd.AllRightsReserved.[5]
Instruments User Guide
Table 1-1 Instruments starting templates
Template
Type
Description
Creates an empty trace document to which you can add your owncombination of instruments. To learn how to select and add instruments,see “Adding and Configuring Instruments.” For descriptions of the individual
Blank
Mac OS X,iOS, iOS
Simulator,
User
built-in instruments, see “Built-in Instruments.”
Mac OS X,iOS, iOS
Activity |
Monitor |
Simulator
Adds the Activity Monitor instrument to your document. Use this template if
you want to correlate the system workload with the virtual memory size.
Mac OS X,iOS, iOS
Adds the Allocations and VM Tracker instruments to your document. Use thistemplate to monitor memory and object-allocation patterns in your program.
Allocations
Simulator
(To use this template, you must launch your process from Instruments.)
iOS, iOS
Adds the Automation instrument to your document. Use this template to
Automation
Simulator
automate user interface tests of your iOS application.
Core
Adds the Core Animation and Sampler instruments to your document. Usethis template to measure the number of Core Animation frames per secondin a process running on an iOS device, and to see visual hints that help you
iOS
Animation
understand how content is rendered on the screen.
Adds the Core Data Fetches, Core Data Cache Misses, and Core DataSaves instruments to your document. Use this template to monitor data store
Core Data
Mac OS X
interactions in a Core Data application.
CPU
Mac OS X,iOS, iOS
Adds the Sampler and CPU Monitor instruments to your document. Use thistemplate if you want to correlate the overall system workload with the work
Sampler
Simulator
being done specifically by your application.
Adds the Dispatch instrument to your document. Use this template if youwant to capture information about GCD queues created by your application
Dispatch
Mac OS X
and about the block objects executing on these queues.
Adds the Energy Diagnostics, CPU Activity, Display Brightness, Sleep/Wake,Bluetooth, WiFi, and GPS instruments to your document. Use this template
Energy
iOS
Diagnostics
to get diagnostic information regarding energy usage in iOS devices.
Adds the File Activity, Reads/Writes, File Attributes, and Directory I/Oinstruments to your document. Use this template if you want to examine fileusage patterns in the system. This combination of instruments monitorsopen, close, read, and write operations on files and also monitors changes in
Mac OS X, |
iOS Simulator |
File Activity
the file system itself, including permission and owner changes.
Adds the ObjectGraph, Allocations, and Garbage Collection instruments toyour document. Use this template to measure the data reclaimed in the
GC Monitor
Mac OS X
scavenge phase of the garbage collector.
Adds the Allocations and Leaks instruments to your document. Use thistemplate to monitor memory usage in your application and to detect memoryleaks. (To use this template, you must launch your process from
Mac OS X,iOS, iOS
Leaks
Simulator
Instruments.)
Adds the Thread States and Dispatch instruments to your document. Usethis template to analyze multicore performance, including thread state,
Multicore
Mac OS X
dispatch queues, and block usage.
OpenGL ES
Adds the OpenGL ES Analyzer and OpenGL ES Driver instruments to yourdocument. Use this template to measure OpenGL ES activity and get
iOS
Analysis
2011-12-07|©2011YouMiMobileCo.Ltd.AllRightsReserved.[6]
Instruments User Guide
recommendations for addressing problems. |
||||
OpenGL ES Driver |
iOS |
Adds the OpenGL ES Driver and Sampler instruments to your document.Use this template to determine how efficiently you’re using OpenGL and the GPU on iOS devices. |
||
Sudden Termination |
Mac OS X |
Adds the Sudden Termination and Activity Monitor instruments to yourdocument. Use this template to analyze sudden termination support. Itreports unprotected file-system access the target process should be, but isnot, guarding with calls to disable sudden termination. It also providesactivity monitoring across all processes, including sudden termination status for each. |
||
System Usage |
iOS |
Adds the I/O Activity instrument to your document. Use this template torecord calls to functions that operate on files in a process running on an iOS device. |
||
Threads |
|
Adds the Thread States instrument to your document. Use this template toanalyze thread state transitions within a process, including running and terminated threads, thread state, and associated backtraces. |
||
Time Profiler |
Mac OS X,iOS, iOS Simulator |
Adds the Time Profiler instrument to your document. Use this template to perform low-overhead time-based sampling of one or all processes. |
||
UI Recorder |
Mac OS X |
Adds the User Interface instrument to your document. Use this template as astarting point for recording a series of user interactions with your application.You can use this feature to reproduce a series of events multiple times,gathering a new set of data during each successive run. You can thencompare the sets of data knowing that the behavior that generated them wasidentical. Typically, you would start with this template and add additional instruments to your document to gather data. |
||
Zombies |
|
Adds the Allocations instrument to your document. Use this template tomeasure general memory usage while focusing on the detection of over-released "zombie" objects. |
如果你不想讓 Instruments 在你新建一個文件的時候詢問你使用那個模板,你可以在 Instruments 的偏好設定裡面勾選 Suppress template chooser 選項來禁止模板選擇。關於更多在 Instruments 文件裡面新增和配置 instrumtns 工具的的資訊,參閱“新增和配置 Instruments”部分。
1.3 瀏覽跟蹤文件視窗
跟蹤文件自己包含一個收集和分析資料的空間。你使用這些文件來組織和配置你需要用來收集資料的 instruments 工具,並且可以使用這些文件來檢視你已經收集的高階和低階的資料。
圖 1-1 顯示了典型的跟蹤文件。一個跟蹤文件視窗顯示很多資訊,所以需要很好的組織。正如你使用跟蹤文件來工作一樣,資訊流從左到右。在你的文件窗口裡面,
2011-12-07|©2011YouMiMobileCo.Ltd.AllRightsReserved.[7]
Instruments User Guide
越右邊的視窗資料越詳細。表 1-2 提供了該視窗關鍵區域的介紹。
Figure 1-1 The Instruments window while tracing
表 1-2 列出了圖 1-1 中顯示的關鍵特性,並提供了一個更深入使用這些特性的討論。
Table 1-2 Trace document key features
Feature
Description
This pane holds the instruments you want to run. You can drag instruments into this pane ordelete them. You can click the inspector button in an instrument to configure its data displayand gathering parameters. To learn more about instruments, see“Adding and Configuring
Instruments
pane
Instruments.”
The track pane displays a graphical summary of the data returned by the current instruments.Each instrument has its own “track,” which provides a chart of the data collected by thatinstrument. The information in this pane is read-only. You do use this pane to select specificdata points you want to examine more closely, however. The track pane is described in more
Track pane
detail in “The Track Pane.”
The Detail pane shows the details of the data collected by each instrument. Typically, thispane displays the explicit set of “events” that were gathered and used to create the graphicalview in the track pane. If the current instrument allows you to customize the way detailed datais displayed, those options are also listed in this pane. For more information about this pane,
Detail pane
see “The Detail Pane.”
The Extended Detail pane shows even more detailed information about the item currentlyselected in the Detail pane. Most commonly, this pane displays the complete stack trace,timestamp, and other instrument-specific data gathered for the given event. The Extended
Extended
Detail pane
Detail pane is described in “The Extended Detail Pane.”
Navigation
The navigation bar shows you where you are and how you got there. It includes two
2011-12-07|©2011YouMiMobileCo.Ltd.AllRightsReserved.[8]
Instruments User Guide
bar |
menus—the active instrument menu and the detail view menu. You can click entries in thenavigation bar to select the active instrument and the level and type of information in the detail view. |
跟蹤文件的工具欄(toolbar)可以讓你增加和控制 instruments 工具,開啟視
圖,並配置跟蹤面板。圖 1-2 標示了這些工具欄中不同的控制元件,在表 1-3 裡面提供了
如何使用這些控制元件的詳細說明。
Figure 1-2 The Instrumentstoolbar
Table 1-3 Trace document toolbar controls
Control
Description
Pauses the gathering of data during a recording. This button does not actually stoprecording, it simply stops Instruments from gathering data while a recording is under way.
Pause/Resume
button
In the track pane, pauses show up as a gap in the trace data.
Record/Stop
button
Starts and stops the recording process. You use this button to begin gathering trace data.
For more information, see “Collecting Data.”
Loop button
Sets whether the user interface recorder should loop during play back to repeat therecorded steps continuously. Use this to gather multiple runs of a given set of steps. For
information about playing tracks, see “Replaying a User Interface Track.”
Target menu
Selects the trace target for the document. The trace target is the process (or processes)for which data is gathered. For more information on choosing a trace target,
see “Choosing Which Process to Trace.”
Selects a time range in the track pane. When set, Instruments displays only datacollected within the specified time period. Use the buttons of this control to set the startand end points of the inspection range and to clear the inspection range. For more
Inspection Range
control
information, see “Viewing Data for a Range of Time.”
Shows the elapsed time of the current trace. If your trace document has multiple dataruns associated with it, you can use the arrow controls to choose the run whose data youwant to display in the track pane. For information about trace runs, see “Viewing Trace
Time/Run control
Runs.”
Hides or shows the Instruments pane, Detail pane, and Extended Detail pane. This
View control
control makes it easier to focus on the area of interest.
Hides or shows the instrument library. For information on using the Library window,
Library button
see “Using the Instrument Library.”
Search field
Filters information in the Detail pane based on a search term that you provide. Use thesearch field’s menu to select search options. For more information, see“Searching in the
Detail Pane.”
2011-12-07|©2011YouMiMobileCo.Ltd.AllRightsReserved.[9]
Instruments User Guide
1.4 示例:快速使用一個跟蹤
為了記錄跟蹤的資料,你需要指定需要收集資料的目標,然後點選 Record 按鈕。大部分 instruments 工具允許你指定一個系統程序作為目標,而另外一些instruments 工具允許你收集多個程序的資訊。
以下步驟描述瞭如何新建一個跟蹤文件,配置它,並記錄一些資料。Instruments應用不能在執行之前執行這些步驟。
-
啟動Instruments。應用會自動新建一個跟蹤文件,並提示你選擇一個模板。
-
選擇 Activity Monitor 模板,然後單擊選擇按鈕。Instruments 會把 Activity
Monitor instruments 工具新增到跟蹤文件裡面。
-
在跟蹤文件的預設目標選單裡面,選擇 All Process。
-
點選Record按鈕。
-
等待幾秒以便Instruments來收集一些資料。
-
點選Stop按鈕。
恭喜你,你已經使用 Instruments 來收集了一些跟蹤資料。Instruments 在跟蹤
面板(track pane)裡面顯示了幾個和系統載入、虛擬記憶體大小相關的圖形。在詳細面板(detail pane)顯示了在資料收集期間執行的程序列表。你可以在詳細面板裡面選擇不同的檢視模型來檢視資料以不同方式組織的形式。
1.5 下一步是什麼?
現在已經介紹了和 Instruments 相關的基本概念,你可以開始更詳細的探索Instruments 應用了。剩下的章節提供了一個 Instruments 特性的深入覆蓋,包括如何新增和配置 instruments 工具,如何記錄使用者介面軌跡,如何分析你收集的資料,和如何把你收集的資料儲存為以後使用。
記住程式分析是一門藝術也是門科學。在科學方面,也有一些可以遵循的指南來發現問題。比如,如果你的應用程式佔用記憶體過大,那麼有可能是應用程式在某些地方分頁,導致效能表現不佳。藝術方面,因為每個應用程式如何減少記憶體佔用的方案四不同的。是否應用程式收集的資料過多?是否它載入太多而又沒有使用的的庫?是否記憶體洩露?這些都是你需要問你自己的問題,而 Instruments 只是一個你可以用來早點答案的工具。
2011-12-07|©2011YouMiMobileCo.Ltd.AllRightsReserved.[10]
Instruments User Guide
第二章 新增和配置Instruments工具
Instruments 應用使用 instruments 工具來收集資料,並顯示資料給使用者。儘管目前理論上沒有限制你在一個文件裡面包含的 instruments 工具的個數,但是大部分文件出於效能原因一般包含少於 10 個工具。你甚至可以多次包含同一個 instument工具,配置每個 instrument 工具來收集來自不同系統程序的資料。
Instruments 應用內建了廣泛的 instruments 工具,可以使用它們來收集一個或多個程序的特定資料。大部分這些 instruments 工具都需要少量甚至不需要任何的配置就可以使用。你只要簡單的把它們新增到你的跟蹤文件,即可開始收集跟蹤資料。然而你也可以建立自定義的 instruments 工具,它們給你提供了廣泛選擇來收集資料。
本章重點是介紹如何新增已有的 instruments 工具到你的跟蹤文件裡面,並配置使用它們。關於如何建立自定義 instruments 工具的更多資訊,參閱“使用 DTrace建立自定義的 Instruments 工具”部分。
2.1 使用Instrument庫
Instrument 庫(如圖 2-1 顯示)顯示了所有 instruments 工具,你可以把它們新增到你的跟蹤文件裡面。該庫包含了所有內建的 instruments 工具和你已經定義好的自定義 instruments 工具。為了開啟庫的視窗,點選你的跟蹤文件下面的 Library 按鈕,或者選擇 Window > Library。
2011-12-07|©2011YouMiMobileCo.Ltd.AllRightsReserved.[11]
Instruments User Guide
Figure 2-1 The instrument library
因為庫窗口裡面的 instruments 工具太多,尤其是在你加入了你的自定義instruments 工具之後,所以 Instruments 庫視窗提供了幾個組織和查詢 instruments工具的辦法。以下部分就是討論這些方法,並顯示如何使用它們來組織可用的instruments 工具。
2.1.1 修改庫試圖模式
庫提供了不同的檢視模式來幫你組織可用的 instruments 工具。檢視模式允許你選擇你要在每個 instrument 工具顯示的資訊數量,和你想要 instrument 工具佔據的空間。Instruments 應用支援以下檢視模式:
View Icons(檢視圖示).只顯示每個 Instrument 工具代表的圖示。
View Icons 和 Labels(檢視圖示和標籤).顯示每個 instrument 工具的圖示和名稱。
2011-12-07|©2011YouMiMobileCo.Ltd.AllRightsReserved.[12]
Instruments User Guide
-
View Icons 和 Descriptions(檢視圖示和描述).顯示每個 instrument 工具的圖示、名稱和詳細描述。
-
View Small Icons 和 Labels(檢視小圖示和標籤).顯示每個 instrument 工具的名稱和它小版本的圖示。注意:不管你選擇了那種檢視模式,庫視窗總是在詳細面板部分顯示選擇了的 instrument工具的詳細資訊。
為了切換庫的檢視模式,你需要選擇庫視窗底部的 Action Menu 的所需模式。
除了切換庫的檢視模式,你也可以通過選擇 Action Menu 裡面的 Show GroupBanners 來顯示一組 instruments 工具的父組。庫視窗為了方便以分組的方式組織instruments 工具,幫助你縮小查詢想要 instrument 工具的範圍。預設情況下,組資訊沒有顯示在庫視窗的主頁上面。要以分組顯示則需要新增 Show Group Banners的選項,讓它更容易識別 instruments 工具在某些視圖裡面的一般行為。
2.1.2 查詢庫裡面的某個instrument工具
預設情況下,庫視窗顯示全部可用的 instruments 工具。然而每個 instrument工具屬於一個大的分組,它標示了一個 Instrument 工具的目的和它收集資料的型別。在庫視窗的頂部,你可以使用組選項控制器來選擇一個或多個分組來限制庫視窗顯示instruments 工具的數量。當庫裡面包含很多 instruments 工具時,該方法可以讓你更好的找到你想要的 instrument 工具。
組選項控制器包含兩個不同的配置。其中一個配置是庫視窗顯示一個彈出選單,你可以從中選擇單一分組。然而如果你拖動一個分割欄位於彈出選單和 instrument面板下面,那麼彈出選單會變為一個大綱檢視。在此配置下,你可以通過按下 Command鍵和 Shift 鍵來選擇多個你想要的分組。
圖 2-2 顯示了庫視窗的標準模式和大綱模式。左邊的是標準模式,你可以通過使用彈出選單來選擇一個分組。視窗右邊顯示的是大綱檢視,你可以選擇多個分組和管理你自定義分組。
2011-12-07|©2011YouMiMobileCo.Ltd.AllRightsReserved.[13]
Instruments User Guide
Figure 2-2 Viewing an instrument group
另外一個在庫視窗過濾內容的辦法是使用視窗底部的搜尋區域。使用搜索,你可以快速的縮小需要查詢的 instrument 工具的範圍,你可以搜尋它的名稱、描述、分類,結果是一列匹配關鍵字的工具。比如圖 2-3 顯示了匹配 file 關鍵字的instruments 工具。
2011-12-07|©2011YouMiMobileCo.Ltd.AllRightsReserved.[14]
Instruments User Guide
Figure 2-3 Searching for an instrument
當庫視窗是彈出框顯示的時候,搜尋過濾器的內容基於當前所選擇的 instrument組。如果是大綱檢視顯示時,不論那個分組被選中,搜尋過濾器的內容是基於整個庫的 instruments。
2.1.3 新建一個自定義的instrument分組
除了可以使用內建的 instrument 分組,你還可以建立自定義分組來按照自己的方式組織 instruments 工具。Instruments 支援兩種自定義分組:靜態分組(staticgroups)和智慧分組(smart groups)。靜態分組就是簡單的靜態。Instruments 不會改變它們的內容,讓你自由的配置你想要的分組。另一方面,智慧分組會根據指定的條件動態的改變分組內容。你可以使用智慧分組來顯示一個最近使用的列表,或者instruments 名稱、描述包含特定關鍵字的分組。
2011-12-07|©2011YouMiMobileCo.Ltd.AllRightsReserved.[15]
Instruments User Guide
建立靜態分組
為了建立一個靜態分組,選擇庫視窗的 action menu 的 New Group,如圖 2-4 所
示。
Figure 2-4 Creating a group
Instruments 建立了一個新的分組並把它新增到庫視窗。為了檢視新的分組和編輯它的名稱和內容,拖動分割欄到彈出選單的下面來開啟一個頂部面板顯示分組的結構,如圖 2-5 所示。點選分組並填寫一個新的名稱。
2011-12-07|©2011YouMiMobileCo.Ltd.AllRightsReserved.[16]
Instruments User Guide
Figure 2-5 Editing the name of a group
為了新增一個 instrument 工具到靜態分組,點選 Library 來顯示 instruments工具列表,選擇 instrument 並拖動它到上面的分組面板,如圖 2-6 所示。
2011-12-07|©2011YouMiMobileCo.Ltd.AllRightsReserved.[17]
Instruments User Guide
Figure 2-6 Adding an instrument to a custom group
你可以使用靜態分組來建立層級的 instruments 組織。靜態分組可以包含其他靜態分組,而且它還可以包含智慧分組。然而智慧分組不能包含其他分組。為了建立分組的層級結構,你可以通過以下其中任何一種方式達到:
拖動一個分組到父靜態分組
選擇一個靜態分組,然後選擇 New Group 或 New Smart Group 來建立一個新的專案作為所選擇的靜態分組的子分組。
一個包含有其他分組的分組顯示它自己的 instruments 工具和它所有子分組的
instruments 工具。如果同一個 instrument 出現在多個分組,並且 Show Group Banners選擇勾選了,那麼同一個 instrument 工具會在每個包含它的分組下面列出。如果 ShowGroup Banners 選擇沒被勾選,那麼庫視窗合併相同的 instrument 副本到同一個主體裡面。
為了把一個 instrument 從靜態分組刪除,你需要完成以下的事情:
2011-12-07|©2011YouMiMobileCo.Ltd.AllRightsReserved.[18]
Instruments User Guide
-
選擇一個分組。
-
在分組裡面選擇一個你想要刪除的instrument。
-
選擇 action menu 的 Remove From Group,或簡單的點選刪除鍵。
為了從庫裡面刪除一個靜態分組,選擇分組,然後選擇 action menu 裡面的 Remove
Group。如果你當前正在使用大綱檢視檢視分組,你也可以選擇對應的分組,然後按刪除鍵。刪除一個靜態分組會刪除該分組和它所包含的所有巢狀分組。然而該操作並沒有從庫裡面刪除它包含的 instruments 工具。你可以在庫分組裡面看到這些instruments 工具。
建立一個智慧分組
為了建立一個智慧分組,選擇在庫視窗的 action menu 裡面的 New Smart Group。
圖 2-7 顯示了編輯規則。標籤域標示了分組在庫窗口裡面出現的名稱。其餘的部分是專門的配置規則,確定那些 instruments 留在分組裡面。
Figure 2-7 The smart group rule editor
每個智慧分組都必須包含至少一個規則。你可以跟蹤需要新增額外的規則,使用規則編輯的控制器和配置分組來應用所有或者部分規則。表 2-1 列舉了你可以用來匹配 instuments 的標準。
Table 2-1 Smart group criteria
Criteria
Description
Label
Matches instruments based on their title. This criterion supports the Starts With, Ends
With, and Contains comparison operators.
Matches instruments based on when they were used. You can use this criterion to match
Used Within
only instruments that were used within the last few minutes, hours, days, or weeks.
Search Criteria
Matches instruments whose title, description, category, or keywords include the specified
Matches
string.
2011-12-07|©2011YouMiMobileCo.Ltd.AllRightsReserved.[19]
Instruments User Guide
Category |
Matches instruments whose library group name matches the specified string. This criterion does not match against custom groups. |
為了編輯一個已有的智慧分組,選擇庫視窗的分組,然後選擇編輯 action menu的<Group Name>,其中<Group Name>是你對應智慧分組的名稱。Instruments 應用會再次顯示規則編輯器,以便你可以修改已有的規則。
為了從庫窗口裡面刪除一個智慧分組,選擇分組,然後選擇 action menu 的 RemoveGroup 選項。如果你當前正使用大綱檢視來檢視分組,你也可以選擇分組然後按刪除鍵。
2.2 新增和刪除Instruments工具
為了新增一個 instrument 到跟蹤文件,從庫窗口裡面拖動到你跟蹤文件的
Instruments 面板或者跟蹤面板,如圖 2-8 所示。
Figure 2-8 Adding an instrument
你可以新增任意多的 instruments 工具到你的跟蹤文件裡面。儘管大部分instruments 可以跟蹤系統程序,但是許多隻能跟蹤一個程序。對於這些 instruments工具,你可以使用多個 instrument 的例項並把它們賦值給你想要的不同程序。通過2011-12-07|©2011YouMiMobileCo.Ltd.AllRightsReserved.[20]
Instruments User Guide
這樣的方法,你可以同時收集多個程式的相同資訊。比如,你可能需要在系統程序的樣本和它相應的客戶端程序上面這麼做,分析整體的互動模式。
為了從一個跟蹤文件刪除一個 instrument 工具,選擇 Instruments 面板中對應的 instrument 工具然後按刪除鍵。
2.3 配置一個instrument工具
一旦你把 instrument 工具新增到 Instruments 面板,那麼大部分 instruments工具即可執行。部分 instruments 工具也可以使用 instrument 檢查器來配置。檢查器的內容因 instrument 工具不同而不同。大部分 instruments 工具包含了配置的可選項來配置跟蹤面板的內容,而少部分包含了額外的控制器來決定 instument 工具自己收集什麼型別的資訊。
為了開啟一個給定的 instrument 工具的檢查器,選擇 instrument 工具,然後做以下任何一種操作:
點選instrument工具名稱右邊的檢查器圖示
選項File > Get Info
單擊Command-I
檢查器會出現在 instrument 工具名稱的旁邊,如圖 2-9 所示。為了隱藏檢查器,你可以單擊關閉按鈕。(你用來開啟檢查器的命令同樣可以用來關閉檢查器)
Figure 2-9 Inspector for the File Activity instrument
2011-12-07|©2011YouMiMobileCo.Ltd.AllRightsReserved.[21]
Instruments User Guide
在跟蹤面板上面和顯示資訊相關的控制器可以在你給跟蹤記錄資料之前、期間、之後配置。Instruments 工具自動為顯示選項收集它需要的資料,無論顯示選項當前是否顯示在跟蹤面板上面。
在跟蹤面板中的檢查控制器裡面的縮放控制器可以用來校驗跟蹤資料的放大率。改變縮放值會改變 instrument 工具在跟蹤面板裡面的高度。View > Decrease DeckSize 和 View > Increase Deck Size 命令做類似的工作來遞減和遞增跟蹤面板裡面的所選 instrument 工具的放大倍率。
關於 instruments 工具的列表,包含配置選項,參閱“內建 instruments 工具”部分。
2011-12-07|©2011YouMiMobileCo.Ltd.AllRightsReserved.[22]
Instruments User Guide
第三章 記錄跟蹤資料
在決定使用什麼 instruments 工具來收集資料之後,下一步就是選擇需要跟蹤的程序,並開始記錄資料。如何選擇程序依賴於你跟蹤文件裡面的 instruments 工具。部分 instruments 工具允許跟蹤所有系統程序,其他要求你只能為一個程序記錄資料。部分 instruments 工具甚至希望你從 Instruments 應用裡面啟動程序以便它們可以在程序執行之前收集資料。
Instruments 應用提供了幾個初始化跟蹤的可選項,它們可以讓你更容易的整合instruments 工具到你的開發週期裡面。在本章裡面,你將會學到如何為一個跟蹤文件選擇一個程序,並開始使用 Instruments 應用裡面可選的選項來記錄資料。
3.1 選擇需要跟蹤的程序
在你開始收集資料之前,你必須告知 Instruments 應用,它處理你想要的跟蹤。你可以通過使用 Instruments 工具欄上面的 Target menu 來指定一個目標程序(或多個程序)來完成。該選單提供了以下的選項:
-
All Processes(所有程序).配置你的文件來跟蹤所有系統程序。
-
Attach to Process(附加到程序).配置你的文件來跟蹤一個已經執行的程序。
-
Choose Target(選擇目標).配置你的文件來啟動並跟蹤一個程序。(如果程序已
經執行,Instruments 應用會啟動一個新的副本並跟蹤它)
-
Instrument Specific(Instrument 指定).選擇該專案來給獨立的 instruments
工具指定不同的跟蹤目標。 以下各部分描述了每個選項更詳細的資訊。
3.1.1 跟蹤所有程序
部分 instruments 工具可以給當前計算機所有執行程序收集資料。你可以使用這些功能來配置文件到整個系統中的事件或活動型別。比如,你可以使用 Disk Activity的 instrument 工具來跟蹤所有在特定週期內發生在你計算機上面的可讀和可寫的操作。為了跟蹤所有執行的程序,選擇 Target menu 裡面的 All Process 選項。
注意:All Processes 專案只有當你 Instruments 面板上面的所有 instruments 工具都支援
2011-12-07|©2011YouMiMobileCo.Ltd.AllRightsReserved.[23]
Instruments User Guide
的時候才可用。
3.1.2 跟蹤一個已有的程序
如果你想要跟蹤的程序已經在計算機上面運行了,那麼大部分 instruments 工具
可以附加到該程序中並開始收集資料。為了跟蹤一個已有的程序,選擇 Target menu
裡面的 Attach to Process 選項並需要跟蹤的程序,如圖 3-1 所示。
Figure 3-1 Tracing an existing process
3.1.3 跟蹤一個新的程序
如果你想要跟蹤的程序還沒在計算機上面執行,或者你想要控制已經啟動的程序的條件,選擇 Target menu 上面的 Choose Target 選項。Instruments 應用會記錄最近啟動過的程序並把它們新增到 Choose Target 的子選單下面提供快速訪問。如果你想要啟動的程序沒有在選單裡面,選擇 Choose Target 來顯示對話方塊,如圖 3-2 所示:
2011-12-07|©2011YouMiMobileCo.Ltd.AllRightsReserved.[24]
Instruments User Guide
Figure 3-2 Choosing a target to launch
Choose Target 對話方塊讓你選擇要啟動的程式,同時讓你指定如何啟動所選的程式。表 3-1 列出了對話方塊中額外的控制並解析如何使用它們。
Table 3-1 Options for launching an executable
Control
Description
Identifies environment variables you want to set before running the process. You might usethis option if your program has debugging options that are enabled using an environment
Environment
Variable
variable. Use the plus (+) and minus (-) buttons to add or remove environment variables.
Arguments
Use this field to specify any launch arguments for the application. The arguments youspecify are the same ones you would use from the command line when launching the
application there.
Use this menu to specify other runtime options. For example, you can direct the application’soutput to the Instruments console or the system console, or discard the output. You can also
Options
specify whether the application is launched in 32-bit or 64-bit mode.
Sets the specified application as the target for all instruments in the trace document. Thisoption is enabled by default. Disabling it lets you assign different targets to differentinstruments in your trace document. You might use this feature when you have two copies ofthe same instrument or when you want to trace the behavior of two processes running side
View All
by side.
Traverse |
Packages |
Displays bundles (such as applications and plug-ins) as a navigable directory structure. Use
this feature if the executable you want to run is inside a bundle.
2011-12-07|©2011YouMiMobileCo.Ltd.AllRightsReserved.[25]
Instruments User Guide
3.1.4 給每個Instrument工具指定不同的目標
當你在 Target menu 裡面選擇了 All Processes、Attach to Process 或 ChooseTarget 選項,Instruments 應用給你選擇的程式的所有 instruments 工具設定預設的目標。然而無論何時你都可以給每個 instrument 工具設定不同的目標。你可能想要在同一個時間取樣兩個不同的程式,比如使用 instrument 示例。如果你已經有一些instruments 工具可以跟蹤所有程序,你可能想讓它們在單程序 instruments 樣本的時候僅是一個程序。
為了給每個 instrument 工具設定基礎的跟蹤目標,你可以做以下這些:
-
在 Target menu 裡面,選擇 Instrument Specific 的選項。
-
選擇你的instruments工具裡面的其中一個。
-
單擊i圖示來開啟instrument工具的檢查器。
-
在檢查器的視窗,使用目標區域的彈出選單來給 instrument 工具設定目標,如
圖 3-3 所示。
Figure 3-3 Choosing per-instrument trace targets
-
重複第2步到第4步來給每個instrument工具設定目標。
3.2 收集資料
在你已經選擇了一個要跟蹤的程序之後,你就可以開始收集資料了。你可以使用兩個不同的記錄模式之一來收集資料:
Immediatedisplay(立即顯示)。在測量的期間,Instruments應用在跟蹤面板和
2011-12-07|©2011YouMiMobileCo.Ltd.AllRightsReserved.[26]
Instruments User Guide
詳細面板立即顯示收集的資料。Instruments 工具欄上面的時間控制器同樣顯示了你開始記錄資料多長時間了。在這個模式下,Instruments 影響系統性能,因為 UI 要持續的更新。這個模式是 Instruments 應用的預設模式。為了選擇立即顯示,選擇 File > Record Options > Immediate Display。
Deferred display(延遲顯示)。Instruments 應用延遲顯示收集的資料直到記錄停止。在測量期間,Instruments 對系統的影響非常小。當你停止記錄的時候,Instruments 應用開始處理並顯示收集的資料。延遲顯示是一個很重要的特性,當應用程式對效能很敏感的時候。為了選擇延遲顯示,選擇 File > RecordOptions > Deferred Display。
記錄模式隨文件永續性的。
點選 Record 按鈕(或選擇 File > Record Trace)來開始收集跟蹤的資料。當你單擊 Record 時,Instruments 啟動指定的可執行檔案或附加到指定程序,並開始收集資料。為了停止收集資料,單擊 Stop 按鈕或者選擇 File > Stop Trace。
注意:當你單擊 Record 按鈕時,Instruments 應用有可能顯示一個或多個認證對話方塊。一些instruments 工具在開始記錄任何資料之前需要驗證你是否是管理員。Instruments 應用是一個很強大的工具,可以讓你檢視正在執行的應用,因此它應該只能被授權的使用者使用。
在記錄期間,如果你想要你的程式繼續執行,但是又不想讓 Instruments 應用收集資料,單擊你的跟蹤文件裡面的 Pause 按鈕。Instruments 應用暫時停止收集資料,但是並沒有停止當前正在執行的記錄。單擊 Resume 按鈕會讓 Instruments 應用繼續在當前記錄時間裡面收集資料。所以暫停和繼續會在你的跟蹤面板上面產生一個數據空白區域。
3.3 使用快速啟動鍵啟動Instruments
快速啟動鍵是全域性組合鍵,它可以讓你啟動 Instruments 應用程式並使用指定的文件模板立即開始收集跟蹤資料。你可以使用這一特性,如果你當前正在執行一個應用程式或者檢視一些你需要立即捕獲的事情(比如除錯或反應遲鈍的行為)。你可以關聯不同的組合鍵到不同的 instruments 模式上來捕獲不同的行為。
為了賦值一個快速啟動鍵,開啟 Instruments 應用的偏好設定,並導航到快速啟動面板。該面板顯示了你可以賦值組合鍵的 instruments 模板的列表。所有的模板
2011-12-07|©2011YouMiMobileCo.Ltd.AllRightsReserved.[27]
Instruments User Guide
沒有快捷鍵啟動。要賦值一個的話,找到包含設計模板的行,雙擊它的 Key 列來建立一個可編輯的單元。當該單元處於編輯模式時,選擇你想要的組合鍵並單擊它們。比如,為了賦值一個組合鍵 Command-Option-1,同時按下 Command、Option 和數字 1 的鍵。
為了從模板中刪除一個組合鍵,選擇一行並按刪除鍵。
注意:快速啟動組合鍵起碼要使用至少兩個不同的按鍵(Command、Option、Control、Shift)。你應該避免使用已經被其他應用程式使用的組合鍵。
為了使用快速啟動鍵來給應用程式收集資料,你要做以下步驟:
-
把游標放在屬於你要跟蹤的應用程式的視窗上面。
-
按下合適的組合鍵來開始跟蹤。
-
執行應用程式。
-
當你想停止跟蹤的時候,你有兩種選擇:
把游標放在其中之一的應用程式視窗上面,再次按下組合鍵。
找到已經開啟的跟蹤文件並按下Stop按鈕。因為快速啟動鍵要求你把游標移動到其中一個應用程式視窗之上,你可以使用同
一個快速啟動鍵來給不同的應用程式初始化多個跟蹤對話而無需停止任何之前的跟蹤。你也可以使用不同的組合鍵來給同一個應用程式開始不同型別的跟蹤,並讓它們在同一個時間收集所有的資料。
3.4 以最小模式執行
最小模式(Mini mode)為你提供了一種在收集資料的時候儘量減少 Instruments應用程式視覺化尺寸的方法。當你從特定型別的應用程式收集資料的時候,尤其是面向圖形的應用程式,在你集中於你應用程式的時候,很多時候你需要收集你的資料。最小模式隱藏很多開啟的跟蹤文件,在它們的地方顯示很多浮動的視窗,你可以使用它們來開始和停止跟蹤。最小模式的一個優點是 Instruments 應用程式本身需要很少的繪畫,所以對系統性能影響很少。
圖 3-4 顯示了開啟幾個跟蹤文件的最小化 Instruments 應用視窗。Instruments應用在最小模式的時候同一時間只顯示三個跟蹤文件,但是你可以使用向上和向下箭頭來找你想要的跟蹤文件。
2011-12-07|©2011YouMiMobileCo.Ltd.AllRightsReserved.[28]
Instruments User Guide
Figure 3-4 The Mini Instruments window
單擊跟蹤文件附近的 Record 按鈕開始為文件記錄資料。文件在跟蹤之前必須配置好它的 instrument 工具和目標程序。在跟蹤期間,Instruments 應用顯示跟蹤開始後所用的時間,但是不顯示其他 instruments 工具、控制器或資料。
為了啟用最小模式,選擇 View > Mini Instruments。為了禁用最小模式,單擊最小模式的 Instruments 視窗的關閉框。你也可以在標準和最小模式之間切換,通過選擇 View > Mini Instruments。
3.5 從Xcode執行Instruments應用
在開發期間,你可以從 Xcode 3 的使用者介面直接載入你的應用程式到 Instruments應用裡面。這個整合功能可以讓你同時快速的載入 Instruments 應用和收集跟蹤資料,那會啟動你的程式並使用 GDB 除錯它。
Xcode 3 裡面的 Run > Run with Performance Tool 子選單提供了幾種使用可用效能工具來載入你程式的方法,包括 Instruments。當載入你的應用程式到Instruments 應用的時候,你可以通過選擇合適的選單專案告訴 Xcode 你想要使用的Instruments 模板。Xcode 載入 Instruments,使用特定的模板新建跟蹤文件,為你的程式設定目標,並告訴 Instruments 來載入你的程式和開始記錄資料。
除了在 Run with Performance Tool 子選單已有的模板,Xcode 同樣允許你新增自定義的跟蹤模板到選單欄。關於更多如何儲存一個跟蹤模板並把它新增到選單的資訊,參閱“儲存 Instruments 跟蹤模板”部分。
3.6 無線連線iOS裝置
為了使用擴充套件訪問給 iOS 應用程式收集資料,你可以在 Instruments 應用和你的
裝置之間建立一個無線連線。當一個無線裝置不切實際或不方便的時候你也可以使無
2011-12-07|©2011YouMiMobileCo.Ltd.AllRightsReserved.[29]
Instruments User Guide
線連線。
軟體要求:該特性在 iOS SDK 3.1 及其之後可用。
通常來說,如果你不需要附加一個擴充套件訪問到你的裝置,你需要使用一個有線連線。無線連線比有線連線慢,並且要耗更多裝置的電來適應來自 Instruments 的繁忙資訊流。結果,使用無線連線比有線連線耗費更多的電池。
重要:為了讓 Instruments 應用可以無線連線你的裝置,你的 Mac 裝置和 iOS 裝置都必須擁有開啟的無線網路,並且必須連線到同一個無線接入點。該接入點必須被配置提供 Bonjour 服務。
為了建立一個 Instruments 應用和你裝置自己的無線連線:
-
把你的裝置通過USB線連線到你的電腦。
-
在Xcode裡面,把你的應用程式載入你的裝置。
-
在Instruments裡面,開啟或新建一個跟蹤文件。
-
按下 Option 鍵,並選擇 Target menu 裡面的“Enable <device_name> -
Wireless”選項,如圖 3-5 所示。
Figure 3-5 Creating a wireless connection between Instruments and an iOS device
一會之後,一個無線的目標出現在 Target menu 上面,名為“<device_name>Wireless”。如果該無線目標不出現,你的 Wi-Fi 接入點可能沒有被配置來提供Bonjour 服務。
這個時候你有兩個 Instruments 伺服器執行在你的裝置上面:一個使用有線連線,另一個使用無線連線。
2011-12-07|©2011YouMiMobileCo.Ltd.AllRightsReserved.[30]
Instruments User Guide
5. 從你的裝置上面斷開USB線,然後連線擴充套件訪問。
現在你可以使用 Instruments 應用來收集關於你應用程式效能的資料,就如“選擇要跟蹤的程序”部分介紹的一樣。
無線連線即使在 Instruments 退出或鎖定你的裝置之後,它依然起作用。在網路
連線條件如之前提到的一樣,你可以繼續使用無線連線。
為了中斷無線連線:
-
在Instruments應用裡面,開啟一個跟蹤文件。
-
按下 Option 鍵,然後選擇 Target menu 下面的“Disable <device_name> -
Wireless”。過了一會之後,該“<device_name> Wireless”的目標變暗,意味無線連線和 Instruments 伺服器已經中斷。
2011-12-07|©2011YouMiMobileCo.Ltd.AllRightsReserved.[31]
Instruments User Guide
第四章 記錄使用者介面軌跡
使用者介面軌跡記錄執行程式的一系列事件和操作。在事件被記錄之後,你可以多次回放跟蹤來反覆生成相同的一系列事件。每次你回放使用者介面軌跡時,你可以在你的跟蹤文件裡面使用其他 instruments 工具來收集資料。這樣做的好處是每次成功執行後你都可以比較你收集的資料,並且使用它來改變你程式的效能或行為。
4.1 記錄使用者介面軌跡
你可以使用 User Interface 的 instrument 工具來記錄使用者介面軌跡。你把該instrument 工具新增到跟蹤文件,就像新增其他 instrument 工具那樣。當你單擊你文件裡面的 Record 按鈕時,User Interface instrument 工具開始收集和使用者輸入相關的事件,例如滑鼠和鍵盤事件等。它收集這些事件並在跟蹤面板上面顯示它們給你檢視和檢查。
注意:如果你使用 UI Recorder 模板來新建一個新的跟蹤文件,Instruments 應用會自動為你新增 User Interface 的 instrument 工具到文件裡面。
在你為使用者介面軌跡收集了一系列事件後,Record 按鈕的標題會改為Drive&Record。再次點選這個按鈕會讓 Instruments 應用來驅動使用者介面,重放你之前記錄的一系列有序的事件。當做這些的時候,在你跟蹤文件裡面的其他instruments 工具通常會收集資料。在事件流完成後,你應該檢查執行資料。圖 4-1顯示了一個使用使用者介面軌跡和其他 instruments 工具的跟蹤文件。這裡使用者介面軌跡已經包含了一系列待重放的有序的事件。
2011-12-07|©2011YouMiMobileCo.Ltd.AllRightsReserved.[32]
Instruments User Guide
Figure 4-1 Recording a user interface track
重要:錄製使用者介面通常使用螢幕閱讀器和其他為殘疾人使用的輔助裝置的訪問特性。為了保證你的計算機支援該特性,開啟系統偏好設定的全域性訪問(Universal Access)面板,確保“允許訪問輔助裝置(Enable access for assistive devices)”的設定被啟用。
User Interface instruments 工具的詳細面板列出了被記錄的事件,事件的定位,和被任何按下的鍵。該 instrument 工具同樣可以捕獲螢幕被使用者操作的部分割槽域。縮圖版本的螢幕截圖被同時顯示在跟蹤面板和詳細面板上面。每個事件都根據它的不同型別進行著色:
滑鼠事件為藍色 鍵盤事件為綠色 系統事件為黃色
4.2 重複記錄使用者介面軌跡
如何在捕獲一系列事件後,你決定沒有獲得正確的事件序列,你可以回頭並重新捕獲需要的事件直到獲得正確的。在你重新捕獲事件之前,你必須告知 Instruments應用不要使用老的事件序列來驅動使用者介面。User Interface 檢查器的 Action 區域包含了一個彈出選單,它可以讓你指定讓 instrument 工具如何執行。通常在你捕獲
2011-12-07|©2011YouMiMobileCo.Ltd.AllRightsReserved.[33]
Instruments User Guide
事件序列後,Action 設定會被找到設定為 Drive。為了重新捕獲,你必須修改設定為Capture。完成這些之後,你可以開始記錄新的事件序列了。因為每次捕獲完成後Action 設定會切換回 Drive,所以多次重新捕獲一個事件序列的時候要求你每次記錄之前把 Action 設定修改為 Capture。
4.3 回放使用者介面軌跡
在你記錄了使用者介面軌跡之後,你可以回放這些軌跡來重新生成一系列你記錄的使用者事件。在記錄了一系列事件之後,Instruments 應用會自動把它的 Record 按鈕的標題改為 Drive&Record。單擊該按鈕來啟動選擇的應用程式,並執行在使用者介面軌跡裡面每個記錄的動作。與此同時,Instruments 應用開始在 Instruments 面板上面其他活動的 instruments 工具收集相關的資料。
每次成功執行使用者介面軌跡後,Instruments 應用都會在跟蹤面板顯示執行的結果。為了修改跟蹤面板中活動的結果,你可以使用事件控制器的箭頭。單擊這些箭頭切換於改可用的資料集,會沒每個可以的 instruments 工具更新顯示結果。
你也可以同時檢視同一個 instrument 工具所有執行的結果。每個 instrument 工
具在它的左側都會有一個下拉的三角形。點選該控制元件可以擴充套件 instrument 工具並對
齊的顯示之前執行的所有結果資料,如圖 4-2 所示。
Figure 4-2 Viewing multiple runs
當收集跟蹤資料時,你可以點選文件工具欄的 Loop 按鈕來讓 Instruments 應用多次重複使用者介面軌跡的事件。該按鈕是黏性的,所以單擊它啟動迴圈而再次單擊則禁用迴圈。當迴圈啟用是,Instruments 應用在連續迴圈裡面執行一系列有序的事件,
2011-12-07|©2011YouMiMobileCo.Ltd.AllRightsReserved.[34]
Instruments User Guide
在迴圈過程中每次收集新的跟蹤資料。你可以使用該特性來重複一系列事件,這些事件是多次嘗試後展示的不良行為。你也可以使用迴圈來讓你的應用程式持續工作來對它進行壓力測試。
2011-12-07|©2011YouMiMobileCo.Ltd.AllRightsReserved.[35]
Instruments User Guide
第五章 檢視和分析跟蹤資料
因為 Instruments 應用可以讓你同時收集多個 instruments 工具的資料,因此你可能獲得的資料量在短時間是大量而且壓倒性的。幸運的是,Instruments 提供了很好的介面來幫助你組織和顯示你收集的資料以便你分析和導航這些資料。弄懂你跟蹤文件窗口裡面不同區代表的資訊對於你檢視趨勢和查詢潛在問題非常重要。
每個跟蹤文件都包含了以下介面元素: 跟蹤面板(Track pane)
詳細面板(Detail pane)
展詳細面板(Extended Detail pane) 執行瀏覽器(Run Browser)
這裡的每個控制元件顯示的都是你跟蹤文件裡面相同的資料。它們只是以不同的方式顯示而已,關於每個資料點從高階的預覽到詳細的資訊等。這樣可以讓你以不同的方式來檢視你的資料。你可以通過檢視高階的資料來分析變化趨勢,然後檢視詳細的資料來確定在你的程式碼中將要發生的事情和制定關於如何解決潛在問題的思路。
除了使用者介面的可選項,許多 instruments 工具可以通過配置來以不同的方式呈現資料。你可以使用這些配置選項在分析過程中獲取對收集的資料新的透視。
本章中你可以學習如何使用這些 Instruments 應用給你提供的資料,和如何按照你的工作流需求修改這些資訊資料的呈現方式。
5.1 檢視資料的工具
以下部分描述了 Instruments 使用者介面裡面關鍵的元素和如何使用這些元素來查
看跟蹤資料。
5.1.1 跟蹤面板
跟蹤面板是跟蹤文件窗口裡面最突出的部分。跟蹤面板緊接於 instruments 面板的右邊。該面板為每個 instrument 工具提供了收集資料的一個高階圖形檢視。你可以使用該面板來核查你從每個 instrument 工具收集到的資料,並可以選擇你想進一步研究的區域。
2011-12-07|©2011YouMiMobileCo.Ltd.AllRightsReserved.[36]
Instruments User Guide
跟蹤面板中的自然圖形可以讓你更容易的發現你程式的趨勢和潛在的問題。比如,圖形中一個記憶體使用的尖峰資訊意味著在該地方你的程式分配的記憶體比平時更多。該尖峰資訊可能是正常的,也可能是意味你的程式碼比你預計在此地方建立了更多的物件或記憶體緩衝區。一個 instrument 工具(例如 Spin Monitor instrument)也同樣可以指出你程式反應遲鈍的地方。如果 Spin Monitor 的圖形相對是空白的,你就知道你的程式是正常響應,但如