ハイライト
Xcode 12 のオーガナイザーは、アプリを変更することなく、共有に同意したデバイスの総電力、パフォーマンス、および I/O データからバージョン比較、スクロール ヒッチ インジケーター、ディスク書き込み診断レポートを生成できます。
主要内容
アプリのパフォーマンスを最適化するとき、開発者はしばしば厄介な問題に遭遇します。つまり、手持ちのデバイスとテスト スクリプトでは少数のシナリオしかカバーできず、実際のユーザーのデバイス、システム バージョン、および使用方法ははるかに複雑です。バッテリー寿命とスムーズさを改善する必要があることはわかっていますが、次のバージョンで最初にどこを修正するかを判断するのは困難です。(00:30)
Xcode Organizer が提供する入り口は非常に簡単です。Xcode を開いて、「Window」>「Organizer」を選択します。アプリを変更する必要はありません。ユーザーが共有に同意すると、Apple は電力、パフォーマンス、および I/O データを収集し、サーバー側で集約し、オーガナイザーを通じて開発チームに返します。(01:43)
2020 年には 3 つの変更があります。オーガナイザーは、スクロール フレームが期待どおりに画面に表示されるかどうかを測定するために、スクロール ヒッチ インジケーターを追加しました。コールスタックを使用して過剰なディスク書き込みを特定するのに役立つディスク書き込み診断レポートを追加しました。また、インタラクティブなインターフェイスを再設計して、2 つのアプリ バージョン間のインジケーターをワンクリック操作で比較できるようにしました。(02:41)
デモのミールプランナーは本物によく似ています。新しいバージョンにカスタム写真とレシピを追加した後、Organizer はまず、バージョン 2.2 でディスク書き込みが突然増加したことを示し、次に [レポート] > [ディスク書き込み] を使用して問題をさまざまなシグネチャに分割しました。開発者はスタック トレースから対応するコードに戻り、修復後にメトリクスに戻ってデータの回復を確認します。(08:31)
詳細
オーガナイザーを開いてオンラインで集計されたインジケーターを確認します
(00:51) オーガナイザーは Xcode で提供されており、アプリに追加のコードを統合する必要はありません。共有に同意したデバイス上の集約されたバッテリー、パフォーマンス、および I/O メトリクスが表示され、「実際のユーザーがどのような問題に遭遇したか?」に答えるのに適しています。
Xcode > Window > Organizer
source = consented user devices
aggregation = Apple servers
metrics = battery, performance, IO
app changes required = none
キーポイント:
Window > Organizerそれが今回のセッションで明確に与えられた入り口です。- データは共有に同意したデバイスから取得され、返却される前に Apple によって集約されます。
- このタイプのデータはリリース後の観察に適しており、ローカルの機器や XCTest のパフォーマンス テストに代わるものではありません。
- トランスクリプトには、データが集計されてオーガナイザーに表示されるとだけ記載されているため、記事ではこれらのデータをリアルタイム ログとして記録しません。
スクロール ヒッチ率はスクロール ヒッチを同等の指標に変えます
(03:19) スクロール ヒッチとは、スクロール中に、レンダリングされた特定のフレームが予期した時間に画面に表示されないことを意味します。ユーザーが目にする結果は、ジッター、遅延、またはフレーム落ちです。
hitch rate = hitch time / scroll duration
smooth range = less than 5 ms/s
warning range = 5 to 10 ms/s
poor range = greater than 10 ms/s
キーポイント:
hitch timeフレームに費やされる合計追加時間です。scroll durationユーザーがアプリ内でスクロールに費やした合計時間です。- 5 ミリ秒/秒未満では、ユーザーはほとんどの場合スムーズなスクロールを体験します。
- 5 ~ 10 ms/s は、数秒ごとにフレームがドロップされることを意味します。
- 10 ms/s を超えると、フレーム ドロップが頻繁に発生し、スクロールのエクスペリエンスが低下します。
新しい UI はバージョン比較を使用して回帰を位置付けおよびリリースします
(05:45) Xcode 12 の新しいオーガナイザー インターフェイスは、古いバージョンをクリックして最新バージョンと並べて比較することをサポートしています。デモでは、Meal Planner の最新バージョンがカメラと Bluetooth のバッテリー使用サブカテゴリに表示されたため、開発者は次にどこを見ればよいのかすぐにわかりました。
open Organizer
select an older app version
compare latest version with selected version
inspect metric subcategories
check limited-usage icon and margin of error
キーポイント:
- バージョン比較は、古いバージョンをクリックした後にトリガーされる対話であり、テーブルを手動でエクスポートする必要はありません。
- バッテリー使用量は引き続きサブカテゴリーに分割され、デモではカメラと Bluetooth が表示されます。
- Xcode 12 は、データを表示するために必要な使用量のしきい値を元の量の 5 分の 1 に下げます。
- 使用制限のあるバージョンでは、アイコンとエラー範囲が表示されます。アップグレードするユーザーが増えるにつれて、誤差の範囲は減少します。
ディスク書き込み診断 インジケーターのピークからコールスタックまで
(05:00) ディスク書き込み診断ログは、24 時間以内に 1 GB を超える量がディスクに書き込まれると集計されます。これは、ディスク書き込みメトリクスのみが利用可能だった前年の欠落したコンテキストを埋めます。
Disk Writes metric spike
-> Reports > Disk Writes
-> inspect signatures
-> review device and OS breakdown
-> inspect 14-day report trend
-> read sample stack traces
-> mark signature as resolved
-> confirm metrics return after users adopt the fix
キーポイント:
- ディスク書き込みレポートは、シグネチャごとに問題を集計し、それが占めるディスク書き込みの割合がシグネチャの下に表示されます。
- 右側のレポートはデバイス タイプとシステム バージョンごとに分割されており、過去 14 日間に受信したレポートの傾向が表示されます。
- オーガナイザーは、開発者がディスク書き込みの原因となったコード パスに戻るのに役立つサンプル スタック トレースと詳細領域を提供します。
- デモが修復されると、署名は解決済みとしてマークされ、ユーザーは修復されたバージョンを使用した後、メトリクスの検証に戻ります。
重要ポイント
-
対処方法: 各リリース後にチェックリストにオーガナイザーのバージョン比較を追加します。価値がある理由: Xcode 12 を使用すると、2 つのバージョン間のバッテリー、パフォーマンス、および I/O メトリクスを直接比較できます。開始方法: 新しいバージョンがオンラインになったら、[ウィンドウ] > [オーガナイザー] を開き、以前のバージョンを選択し、突然増加したインジケーターとサブカテゴリを記録します。
-
やるべきこと: コア リスト ページのスクロール エクスペリエンス受け入れラインを確立します。実行する価値がある理由: スクロール ヒッチ レートは、ユーザーが感じるバウンスを 5 ミリ秒/秒未満、5 ~ 10 ミリ秒/秒、10 ミリ秒/秒超の 3 つの範囲に分けます。開始方法: まず、オーガナイザーを使用してオンライン ヒッチの高いページを検索し、次にセッション 10077 の XCTest を使用して、公開する前に同じスクロール パスをカバーします。
-
対処方法: 過剰なディスク書き込みをリリースの回帰として個別に追跡します。実行する価値がある理由: オーガナイザーは、ディスク書き込みが 24 時間で 1GB を超えると、ディスク書き込み診断を集約し、署名、比率、デバイスおよびシステムの分布を表示します。開始方法: ディスク書き込みインジケーターのピークを確認したら、[レポート] > [ディスク書き込み] に移動し、署名に従って修理担当者を割り当て、修復後に解決済みのマークを付けます。
-
内容: 使用率の低いバージョンのデータの信頼性を個別にマークします。価値がある理由: Xcode 12 はデータをより早く表示しますが、使用制限バージョンには誤差が生じます。開始方法: オーガナイザーの使用制限付きアイコンとリリース ボードに誤差の範囲を記録し、より多くのユーザーがアップグレードした後に同じインジケーターを確認します。
関連セッション
- 電力およびパフォーマンス API を使用して傾向を特定する — Xcode Organizer の背後にある電力、パフォーマンス、診断データをチームのダッシュボード、アラート、バグ システムに統合します。
- XCTest でアニメーション ヒットを排除する — XCTest を使用して、リリース前にスクロールとアニメーションのヒットを測定し、オーガナイザーのオンライン インジケーターの前にローカル回帰チェックを補足します。
- MetricKit の新機能 — iOS 14 の MetricKit の新しいパフォーマンス メトリクスと診断ペイロード (アニメーション ヒットやディスク書き込みなど) について学びます。
コメント
GitHub Issues · utterances