原创 軟件性能工程(9)-使用置信區間量化應用程序啓動時間

引言指標量化是所有優化工作開展前首要確認的事情,只有當指標量化方法確認之後才能定義優化目標。行業最普遍的做法是通過計算一組響應時間的算數平均值來量化響應時間,這種做法雖然簡單但平均值受異常值的影響非常大。這種結果往往會誤導優化方向因爲偶

原创 軟件性能工程(8)-eBPF on Android

做些鋪墊本文假設讀者已掌握如下內容熟悉 Linux 內核編譯方法閱讀過博文 eBPF 架構優勢及其應用方向上的暢想熟悉 Git 操作熟悉 CMake,LLVM,Clang 等編譯工具在博文 eBPF 架構優勢及其應用方向上的暢想中有提到

原创 軟件性能工程(7)-eBPF 架構優勢及其應用方向上的暢想

eBPF 架構的優勢本文假設讀者已瞭解以下內容:瞭解 BPF/eBPF 是什麼,瞭解 BPF 的演變歷史,可參考引用 7瞭解程序的編譯與執行流程,虛擬機工作原理大致瞭解 Android 系統架構以及開發流程本文是基於嵌入式 Linux

原创 軟件性能工程(6)-TimeSeries 關聯性分析的應用

什麼是 TimeSeries 關聯性分析(Correlation Analysis)假設有基於時間序列採集的兩組同樣大小的數據,關聯性分析是指量化這兩組數據間的關聯程度。再次強調一下,本文中討論的關聯性分析是針對 TimeSeries

原创 軟件性能工程(5)-Android UX performance check list

UX 性能檢查清單Android 設備的用戶體驗性能包括:界面流暢度優化遊戲類應用 如: 王者榮耀,刺激戰場等普通用戶交互類應用 如: 社交 APP, 購物 APP 等界面響應速度Benchmark更多場景待補充本文通過系統化的檢查清單

原创 軟件性能工程(3)-Data science for mobile OS system optimization

做些鋪墊當今嵌入式設備OS系統優化面臨的挑戰難題有:造成發熱,卡頓,待機時間差的主要瓶頸是什麼?當設置內核,JVM,資源管理功能的參數時,到底該怎麼設置才合理?如何全面的評估某個算法的優化效果?想要回答上面幾個問題,目前的做法是根據幾個

原创 軟件性能工程(4)-應用程序界面流暢度的量化方法與應用

指標與現實不匹配應用流暢度是我們最關心的性能優化指標之一,本文主要介紹流暢度指標的理解與實際應用. 流暢度評判的難度在於量化指標並不能完全對應到感官體驗上。這什麼意思呢?舉個簡單例子;假設有一個過場動畫,從 FPS,FrameUpdat

原创 軟件性能工程

軟件性能工程 「Software Performance Engineering」本文使用不到五分鐘的閱讀時間來闡述軟件性能工程裏的關鍵知識點,有助於大家在規劃軟件項目時,通過引入性能工程以提高軟件項目的可用性與市場成功率。簡單來說,軟

原创 性能數據分析時常用的統計方法

基本概念進行性能測試與分析時首先需要確認的是:性能指標 (Performance Metric)性能數據表達 (Perforamcne Data Presentation)假設我們想分析一段時間內CPU使用量的情況,這個過程稱爲數據集中

原创 Android Systrace 基礎知識(12) - Kernel_CPU Info 解讀

本文是 Systrace 系列文章的第十二篇,主要是對 Systrace 中的 CPU 信息區域(Kernel)進行簡單介紹,簡單介紹瞭如何在 Systrace 中查看 Kernel 模塊輸出的 CPU 相關的信息,瞭解 CPU 頻率、

原创 Android Systrace 基礎知識(11) - Triple Buffer 解讀

本文是 Systrace 系列文章的第十一篇,主要是對 Systrace 中的 Triple Buffer 進行簡單介紹,簡單介紹瞭如何在 Systrace 中判斷卡頓情況的發生,進行初步的定位和分析,以及介紹 Triple Bu

原创 Android Systrace 基礎知識(5) - SurfaceFlinger 解讀

本文是 Android Systrace 系列文章的第五篇,主要是對 Android 系統中的 SurfaceFlinger 進行簡單介紹,介紹了 SurfaceFlinger 中幾個比較重要的線程,包括 Vsync 信號的解讀、應用的

原创 Android Systrace 基礎知識(7) - Vsync 解讀

本文是 Systrace 系列文章的第七篇,主要是是介紹 Android 中的 Vsync 機制。文章會從 Systrace 的角度來看 Android 系統如何基於 Vsync 每一幀的展示。Vsync 是 Systrace 中

原创 Android Systrace 基礎知識(10) - Binder 和鎖競爭解讀

本文是 Systrace 系列文章的第十篇,主要是對 Systrace 中的 Binder 和鎖信息進行簡單介紹,簡單介紹了 Binder 的情況,介紹了 Systrace 中 Binder 通信的表現形式,以及 Binder 信

原创 Android Systrace 基礎知識(8) - Vsync-App :基於 Choreographer 的渲染機制詳解

本文是 Systrace 系列文章的第八篇,主要是對 Systrace 中的 Choreographer 進行簡單介紹 本系列的「目的」是通過 Systrace 這個工具,從另外一個角度來看待 Android 系統整體的運行,同時