《高性能iOS應用開發》讀書筆記

性能指標:

  • 內存 ,應用運行所需的RAM最小值,以及應用小號的內存平均值和峯值。
  • 電量消耗
  • 初始化時間
  • 執行速度
  • 響應速度
  • 本地存儲
  • 互操作性
  • 網絡環境
  • 帶寬
  • 數據刷新
  • 多用戶支持
  • 單點登錄
  • 安全
  • 崩潰

性能的分析(分析的手法)

  • 採樣,採取一定的週期內的狀態。
  • 埋點,通過代碼記錄細節信息,使採樣更加精確。(埋點注入額外代碼,對性能有一定影,對內存或速度(或二者同時)造成傷害。

測量

測量性能指標的參數,並通過不同類型的分析,在測量性能過程中找出真正存在問題的地方。

不要過早的進行優化,提升程序效率的方向和事件浪費太多事件。


設置工程與代碼

針對配置、安裝和代碼實現有三類任務:

  • 構建與發佈,確保能夠輕鬆構建和發佈應用;
  • 可測試性,確保代碼可以同時在模擬數據和真實數據上工作;
  • 可跟蹤性,確保能夠明確問題發生的位置和代碼行爲來處理錯誤。

發佈與構建

改進後的系統和工具可以加速拉去依賴的信息,加速構建和發佈用於測試或發佈的產品。基於Ruby語言實現的CocoaPods實際上是Objective-C和Swift工程的依賴管理器。CocoaPods與Xcode命令行工具相集成,可用於構建與發佈。

可測試性

每個應用都包含多個協同工作的組件。設計良好的系統應遵循低耦合高內聚,允許替換任意或者全部組件的依賴。
可以通過模擬依賴項項對每個組件進行隔離測試。一般來說測試有兩種類型。

單元測試,驗證每個代碼單元在隔離的環境下的操作。在特定環境中輸入不同的數據反覆調試一些方法,以評估代碼表現。
功能測試,驗證組件在最終集成的安裝包中的操作。可以再軟件最終發佈版本中驗證,也可以爲某個爲測試而構建的參考應用中驗證。

可跟蹤性

開發階段,埋點可以幫助我們確定性能優化的優先級,提高對問題現場的還原能力,並提供更多的調試信息。

崩潰報告專注於從軟件產品版本中收集調試信息。

設置崩潰報告

崩潰報告系統收集用於分析應用的調試日誌。

對應用埋點

對依賴進行抽象化和封裝是個好主意。這樣就可以在最後再進行切換,甚至 可以在作出最終決定之前同時使用多個系統。這在項目處於評估階段且存在 多個備選方案時尤爲有用。

埋點不應該取代日誌。日誌可以非常詳細。但因爲向服務器報告時會消耗網 絡資源,所以你應該儘可能少地埋點。埋點和過度埋點之間並沒有清晰的分界線。一開始應僅對少量報告進行埋 點,然後隨着時間的推進逐步增加埋點的覆蓋率。

埋點可以精確的指出哪部分功能使用頻率更高。

日誌

日誌和埋點之間存在着細微的差別。埋點可以看作日誌的子集。被埋點的任何數據都應該 記錄在日誌中。
埋點承擔了爲聚合分析發佈關鍵性能數據的職責。
日誌提供了用於在不同級別跟蹤應用 的細節信息。
埋點數據會發送到服務器,日誌是記錄在設備本地。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章