《高效能iOS應用開發》讀書筆記
效能指標:
- 記憶體 ,應用執行所需的RAM最小值,以及應用小號的記憶體平均值和峰值。
- 電量消耗
- 初始化時間
- 執行速度
- 響應速度
- 本地儲存
- 互操作性
- 網路環境
- 頻寬
- 資料重新整理
- 多使用者支援
- 單點登入
- 安全
- 崩潰
效能的分析(分析的手法)
- 取樣,採取一定的週期內的狀態。
- 埋點,通過程式碼記錄細節資訊,使取樣更加精確。(埋點注入額外程式碼,對效能有一定影,對記憶體或速度(或二者同時)造成傷害。
測量
測量效能指標的引數,並通過不同型別的分析,在測量效能過程中找出真正存在問題的地方。
不要過早的進行優化,提升程式效率的方向和事件浪費太多事件。
設定工程與程式碼
針對配置、安裝和程式碼實現有三類任務:
- 構建與釋出,確保能夠輕鬆構建和釋出應用;
- 可測試性,確保程式碼可以同時在模擬資料和真實資料上工作;
- 可跟蹤性,確保能夠明確問題發生的位置和程式碼行為來處理錯誤。
釋出與構建
改進後的系統和工具可以加速拉去依賴的資訊,加速構建和釋出用於測試或釋出的產品。基於Ruby語言實現的CocoaPods
實際上是Objective-C和Swift工程的依賴管理器
。CocoaPods與Xcode命令列工具相整合,可用於構建與釋出。
可測試性
每個應用都包含多個協同工作的元件。設計良好的系統應遵循低耦合
和高內聚
,允許替換任意或者全部元件的依賴。
可以通過模擬依賴項項對每個元件進行隔離測試。一般來說測試有兩種型別。
單元測試,驗證每個程式碼單元在隔離的環境下的操作。在特定環境中輸入不同的資料反覆除錯一些方法,以評估程式碼表現。
功能測試,驗證元件在最終整合的安裝包中的操作。可以再軟體最終釋出版本中驗證,也可以為某個為測試而構建的參考應用中驗證。
可跟蹤性
開發階段,埋點可以幫助我們確定效能優化的優先順序,提高對問題現場的還原能力,並提供更多的除錯資訊。
崩潰報告專注於從軟體產品版本中收集除錯資訊。
設定崩潰報告
崩潰報告系統收集用於分析應用的除錯日誌。
對應用埋點
對依賴進行抽象化和封裝是個好主意。這樣就可以在最後再進行切換,甚至 可以在作出最終決定之前同時使用多個系統。這在專案處於評估階段且存在 多個備選方案時尤為有用。
埋點不應該取代日誌。日誌可以非常詳細。但因為向伺服器報告時會消耗網 絡資源,所以你應該儘可能少地埋點。埋點和過度埋點之間並沒有清晰的分界線。一開始應僅對少量報告進行埋 點,然後隨著時間的推進逐步增加埋點的覆蓋率。
埋點可以精確的指出哪部分功能使用頻率更高。
日誌
日誌和埋點之間存在著細微的差別。埋點可以看作日誌的子集。被埋點的任何資料都應該 記錄在日誌中。
埋點
承擔了為聚合分析釋出關鍵效能資料的職責。
日誌
提供了用於在不同級別跟蹤應用 的細節資訊。
埋點資料會傳送到伺服器,日誌是記錄在裝置本地。
相關文章
- 讀書筆記:高效能PHP應用開發筆記PHP
- 高效能iOS應用開發iOS
- 《高效能JavaScript》讀書筆記JavaScript筆記
- 【讀書筆記】《高效能JavaScript》筆記JavaScript
- 敏捷開發讀書筆記——隨筆敏捷筆記
- 《高效能 JavaScript》讀書筆記(一)JavaScript筆記
- PHP - 《高效能php應用開發》學習筆記PHP筆記
- 高效能MySQL讀書筆記---索引優化MySql筆記索引優化
- 「構建安全的 PHP 應用」讀書筆記PHP筆記
- 《Node.js開發指南》讀書筆記Node.js筆記
- 【前端效能優化】高效能JavaScript讀書筆記前端優化JavaScript筆記
- 高效能JavaScript 重排與重繪 讀書筆記JavaScript筆記
- <Laravel 開發環境部署>讀書筆記----常用指令Laravel開發環境筆記
- 《深入核心的敏捷開發》讀書筆記(2)敏捷筆記
- 《Flask Web開發》讀書筆記【Windows環境】FlaskWeb筆記Windows
- 《flask Web 開發》讀書筆記 & chapter6FlaskWeb筆記APT
- 《軟體開發本質論》讀書筆記筆記
- 《高效能iOS 應用開發》之影響移動應用效能的因素iOS
- 《高效能JavaScript》讀書筆記①載入和執行JavaScript筆記
- 讀書筆記–高效能網站建站指南(JS篇)筆記網站JS
- 《圖解TCP/IP》讀書筆記八:應用協議圖解TCP筆記協議
- HttpModule學習總結例項應用-讀書筆記HTTP筆記
- 《Web API的設計與開發》讀書筆記WebAPI筆記
- 軟體安全開發生命週期讀書筆記筆記
- 讀書筆記...筆記
- 讀書筆記筆記
- 《讀書與做人》讀書筆記筆記
- 高效能MySQL.讀書筆記(六)高可用性MySql筆記
- IOS 開發筆記2iOS筆記
- Android應用開發筆記(一)Android筆記
- 《用資料講故事》讀書筆記筆記
- 《python專案開發案例集錦》讀書筆記Python筆記
- 《Web前端開發修煉之道》-讀書筆記CSS部分Web前端筆記CSS
- 反應式程式設計讀書筆記程式設計筆記
- 《深入實踐Spring Boot》閱讀筆記:分散式應用開發Spring Boot筆記分散式
- Cucumber讀書筆記筆記
- 散文讀書筆記筆記
- HTTP 讀書筆記HTTP筆記