APPメモリ最適化に関するレポートがありますので、チェックしてください~

APP パフォーマンスの最適化とメモリの最適化

APP の機能が増加し、バージョンが繰り返されるため、メモリの最適化も急務となっています。(会社名、プロジェクト名は伏せさせていただきます)

APP の最適化に使用されるツール:

Xcode バージョン 13.4.1 (13F100)

計測器バージョン 13.4.1 (13F100)

シミュレータ iPhone 13 Pro Max(iOS 15.5)

静的解析(Analyze)

前に最適化する

  1. 静的解析によりメモリリークの疑いのある箇所が分かるため、業務に応じた解析が必要です。

  2. Xcode調査に基づいてリークの疑いのある箇所を見つけて分析します

  3. 項目ごとに分析・修正

    • CaptureViewControllerインスタンスメソッドの[super ViewDidDiscovery:]呼び出しがありません
    • PhotoViewControllerブロックには 10 個の強参照があります
    • Memory error無修正: 基本的にすべてが戻り値の型であり、戻り値が存在する場合がNSStringあります。nil
    • Localizability Issue未変更: ユーザー向けテキストはローカライズされた文字列マクロを使用しません
    • CFStringRef参照カウントが 1 増加するため、呼び出す必要がありますCFRelease()
    • Core Foundation変換にはObjective-C所有権の移転が存在します

後で最適化する

検査により検出された漏れの疑いのある箇所はすべて静态分析(Analyze)修復されています。

デバッグメモリグラフ

前に最適化する

  1. 29種類のリーク タイプDebug Memory Graphがあることがわかります

  2. 表示するものをクリックするMemory Graphと、メモリ内の参照関係が表示されます。

  3. テーブルごとに分析および変更する

    • ClickHightlightDelegate弱い参照に変更する
    • UITextFieldDelegate弱い参照に変更する
    • UITextViewDelegate弱い参照に変更する
    • 削除しImagePickerViewDelegateてインスタンスメソッドに変更
    • GMImagePickerControllerDelegate弱い参照に変更する
    • AFHTTPSessionManagerタイムリーなリリースsession

後で最適化する

malloc block leaked残りの 5 つのリーク タイプは、ツールがリーク ポイントを指摘しなかったカテゴリに属しており、当社によるさらなる分析が必要です。

動的解析

前に最適化する

  1. ツール分析によりleaks、1 か所に 384 個の新しいリーク ポイントがあることがわかりました。

  2. いくつかのモジュールをクリックしたところ、合計 779 個のリークが見つかりました。

  3. リークされたコードに従って修正

    • pageController弱い参照に変更する
    • WebNativeViewControllerブロックコールバックの参照関係を変更する
    • WebNativeDataSourceブロックコールバックの参照関係を変更する
    • FeedbackDelegate弱い参照に変更する
    • WebImageUtils弱い参照に変更する
    • WebNativePagingCell__weak 弱参照に変更します
    • WebPluginShare__weak 弱参照に変更します
    • JSContext参照関係とメモリ解放を最適化する

後で最適化する

  • ほとんどの水漏れを修理しました
  • 現在のレガシー JavaScriptCore フレームワークを最適化する必要がある

最適化の結果

最適化前

  1. Viewcontroller破壊も誘発もできないdealloc

  2. APP起動、初期メモリ

  3. 指定されたパスをたどって繰り返しクリックすると、メモリが増加し続けます

最適化後

  1. Viewcontroller破壊して発動可能dealloc

  2. APP起動、初期メモリ

  3. 指定されたパスに従ってクリックを繰り返すと、メモリは安定し、急激に増加することはありません。

おすすめ

転載: blog.csdn.net/wujakf/article/details/128342208