應用程式的記憶體用量特性是效能的基本要素。您可以透過系統剖析器查看可用的 GPU 計數器資訊,分析這些特徵。
Adreno 裝置
在 Adreno 裝置上,請先醒目顯示與單一 GPU 影格一致的時間範圍,如「估算 CPU 和 GPU 影格處理時間」一文所述。 請使用該頁面所述的技術,包括使用 GPU % Utilization 或類似的計數器追蹤,取得影格時間界限,因為所有計數器追蹤都使用相同的計時技術,因此與使用從 GPU 切片取得的影格時間界限相比,可更準確地估算記憶體用量 (這些資料是獨立於計數器追蹤資料收集)。

讀取/寫入總計
在剖析器中醒目顯示單一影格後,請先查看「Read Total (Bytes/sec)」和「Write Total (Bytes/sec)」計數器。這些計數器可提供單一影格期間,記憶體匯流排傳輸資料量的整體概況。請盡量減少透過匯流排傳送的資料量,因為記憶體頻寬是行動裝置電池耗電的主要原因。

您也可以檢查「Vertex Memory Read (Bytes/Second)」和「Texture Memory Read (Bytes/Second)」計數器,判斷用於頂點和紋理資料的頻寬比例。

您認為這些值「良好」的程度,取決於應用程式中顯示的工作負載類型。舉例來說,2D 應用程式可能會使用相對較大的紋理記憶體讀取頻寬 (約 2 GB/s 以上),但頂點記憶體頻寬可能非常小 (約 50 MB/s)。詳情請參閱「分析頂點記憶體頻寬」和「分析紋理記憶體頻寬用量」說明文件。
擷取攤位
請查看「% Vertex Fetch Stall」、「% Texture Fetch Stall」和「% Stall on System Memory」計數器,因為這些計數器會提供應用程式整體記憶體效能的提示。如果值大約高於 5%,表示應用程式可能未以有效率的方式在記憶體中配置資料,或是未以有效率的方式存取資料來善用快取。如要瞭解如何改善這類資產的記憶體用量,請參閱「分析頂點記憶體頻寬」和「分析紋理記憶體頻寬用量」。
馬利裝置
在 Mali 裝置上,請先醒目顯示與單一 GPU 影格一致的時間範圍,如「估算 CPU 和 GPU 影格處理時間」一文所述。請使用該頁面所述的技術,包括使用 GPU 使用率百分比或類似的計數器追蹤影格時間界限,因為計數器追蹤作業都使用相同的計時技術,因此與使用從 GPU 切片取得的影格時間界限相比,可更準確地估算記憶體使用率 (這些資料是獨立於計數器追蹤資料收集)。

輸出外部總計
在「系統分析器」中醒目顯示單一影格後,請先查看「輸出外部讀取位元組」和「輸出外部寫入位元組」計數器。這些計數器可提供單一影格期間,記憶體匯流排傳輸資料量的整體概況。請盡量減少透過匯流排傳送的資料量,因為記憶體頻寬是行動裝置耗電的主要原因。
輸入內部總計
此外,還有一些計數器可提供快取本身的相關資訊。您感興趣的計數器是「輸入內部 [讀取|寫入] 停滯週期」。這些值越高,表示您成功命中快取,但發出的讀取要求過多,導致著色器程式碼停滯,等待存取記憶體。
擷取攤位
接下來可以查看 Vertex Prefetcher Stall Cycles 和 Texture Fetch Stall 計數器,這些計數器會提供應用程式整體記憶體效能的提示。如果看到的值高於約 5%,表示您可能未以有效率的方式在記憶體中配置資料,或未以有效率的方式存取資料來善用快取。如要瞭解如何改善這類資產的記憶體用量,請參閱「分析 [Vertex|Texture] 記憶體頻寬」一文
