アプリの安定性を高めるメモリ不足レポート機能のご紹介

投稿者 TwitterDevJP
木曜日, 2016年8月18日

アプリの安定性を高めるメモリ不足レポート機能のご紹介

アプリの成功には動作の安定性が必要不可欠です。アプリの動作が不安定な場合、そのアプリは使われなくなります。Crashlyticsはアプリの様々な問題を知らせるだけでなく、問題を引き起こしている要因も検知するので、すぐに問題を解決することができます。

Crashlyticsに新しくメモリ不足レポート機能 (out-of-memory (OOM)、 iOSのみ対応) を追加しました。これにより、開発者はアプリのメモリ不足によるクラッシュをモニタリングできるようになります。

メモリ不足イベントの発生タイミング

アプリが停止する理由の一つにクラッシュが考えられますが、それ以外ではメモリ不足が理由となることがあります。メモリ不足のイベントはモバイルデバイスのメモリが不足した時に発生します。デバイスのメモリ容量は限られているので、アプリがさらに多くのメモリが必要な時に容量が足りなくなっている場合、OSがアプリのセッションを強制的に停止します。利用者からは単なるクラッシュのひとつに見えますが、実際にはメモリ不足のイベントが発生しているのです。

知的な経験則に基づいた問題解決法

従来、メモリ不足のイベントをレポートすることは難しいことでした。それは、iOSがメモリ不足を検知することができなかったり、アプリのメモリ使用以外の要因も複雑に絡まって発生するというケースも多くあったためです。このような背景から、過去に発生した様々な種類のメモリ不足のイベントを分析・整理することで問題解決の糸口を見つけ、iOSデバイス向けにメモリ不足レポート機能を追加しました。

Fabric上でCrashlyticsとAnswersを有効にすると、アプリのパフォーマンスに関するデータがFabricサーバーに送られます。サーバーサイドではこのデータにフィルタをかけることで、メモリ不足によるクラッシュの発生を検知します。この検知能力はアルゴリズムではなく米国の2人の優秀なエンジニアの知的な経験則に基づいています。Crashlyticsは過去の様々なクラッシュを分析・整理しており、大半のものについてはクラッシュの理由を見つけられますが、それに当てはまらないものはメモリ不足イベントとして処理します。また開発者の方々はAnswersに関連する特別な変更を加える必要はなく、メモリ不足のレポートを見るだけで済みます。

Pinterestでは隔週でiOS向けのアプリのアップデートを行います。メモリ不足レポート機能を使えば、アップデート毎にメモリの最適化とアプリの安定性の両立を図ることができます。

Scott Goodson氏Pinterest  Head of Core Experien
メモリ不足のイベントを把握するための新しい視点

開発者の方々がメモリ不足レポート機能のダッシュボードを使えば、ビルド毎のメモリ不足によるクラッシュの割合を把握したり、そのセッションを深く分析することができます。

アプリの安定性を高めるメモリ不足レポート機能のご紹介

ダッシュボードでは日別の詳細を見分けられるため、メモリ不足の発生回数やiOSの異なるデバイス間でのメモリ不足の発生率を比較することも可能です。頻繁にメモリ不足が発生するiOSのデバイスを検知できれば、それだけ問題解決のための時間やリソース配分の決断もしやすくなります。問題を解決したら、どれだけ改善されたかをモニタリングしたり、 過去の低性能なデバイスをサポート対象から外したりという作業を行えます。

アプリの安定性を高めるメモリ不足レポート機能のご紹介

さらに、全てのビルドとメモリ不足のイベントの件数の多い上位3つのビルドを表示できるグラフも表示され、その規模や発生頻度を簡単に把握することができます。

アプリの安定性を高めるメモリ不足レポート機能のご紹介

メモリ不足を見逃さないために

Fabricチームのミッションはとてもシンプルで、動作が不安定なアプリを減らすことです。メモリ不足のセッションをモニタリングするだけで、開発者の方々は問題解決に取り組むことができます。皆さんのアプリを安定性を高めるために、Crashlyticsのダッシュボードにあるメモリ不足レポート機能をご利用ください。Crashlyticsに搭載したメモリ不足レポート機能が、皆さんのアプリの品質向上にお役に立てれば幸いです。

皆さんからのフィードバックを楽しみにお待ちしております。