• 検索結果がありません。

Androidの応答性評価

N/A
N/A
Protected

Academic year: 2021

シェア "Androidの応答性評価"

Copied!
2
0
0

読み込み中.... (全文を見る)

全文

(1)情報処理学会第 75 回全国大会. 3A-5. Android の応答性評価 東山知彦†. 増田大樹†. 三菱電機株式会社. 情報技術総合研究所†. 1. はじめに 近年、Android を携帯端末以外の組込み機器に適 用する動きが高まっている。組込み機器は機器が求 める応答性を確保する必要がある。 一般的に高い応答性を必要とする処理は他の処理 に割り込まれないようにLinuxのリアルタイム優先 度(固定優先度)で実行する。しかし、Androidアプリ は一般ユーザ権限で動作するため、TSSスケジューリ ングの範囲しか優先度設定できない。そこで我々は 特定のアプリの実行優先度をリアルタイム優先度に 設定して起動する仕組みを構築した(参考文献[1])。 だが、この仕組みを利用した場合でも、アプリがJava のガーベージコレクション(以降GC)の影響を受ける ことは避けられない。本稿はGCが動作する際の応答 性に与える影響を評価し、影響を小さくするための 改善策について述べる。. 2. 応答性評価 2.1 評価環境 本稿は表 1、表 2 に示す構成で評価を行った。 表 1 H/W 構成 機能 内容・性能 プロセッサ TI DM3739 1.0GHz (ARM Cortex-A8) 主記憶 DDR 512MB 表 2: S/W 構成 バージョン. Android Linux kernel. 4.0.3 (Ice Cream Sandwich) 2.6.37(Android 対応). トを生成せずに処理を行うよう設計することでメモ リ確保による GC 発生を抑制し、応答性が必要な処理 と GC が必要となる処理とを別スレッドにすること で、GC の影響を最小限に留める対策が考えられる。. 2.3 評価方法 応答性評価アプリは周期的に起床する測定スレッ ドと GC を誘発するための負荷スレッドから構成さ れる。測定スレッドは応答性が必要な処理を想定し ているもので、負荷スレッドは GC が必要となるアプ リケーションの一般処理を想定したものである。 測定スレッドは Java の TimerTask クラスを使用し、 一定間隔で起床して想定した起床時間と実際の起床 時間のジッタを測定する。負荷スレッドは無限ルー プで参照されないオブジェクトを繰り返し作成する。. 2.4 評価結果 参考文献[1]の仕組みを利用しリアルタイム優先 度で起動した評価アプリでジッタを計測した。GCが 発生しない場合の結果を図 1に、GCが発生する場合 の結果を図 2に示す。評価スレッドが 12 万回起床す る間の応答遅延を測定した結果、GCが発生しない場 合の最悪値は 2.7msだったのに対し、GCが発生する 場合は 66.0msであった。このことから、優先度を高 くしてアプリを起動しても、GCの影響により応答性 が大きく劣化してしまう事が分かった。 1400 1200 1000 発生回数. コンポーネント. 落合真一†. 800 600 400. 2.2 前提条件. 200. Evaluation of Android realtime performance Tomohiko Higashiyama, Hiroki Masuda, Shinichi Ochiai † Information Technology R&D Center, Mitsubishi Electric Corporation. 1-35. 0. 0. 10. 20. 30. 40. 50. 60. 70. 遅延時間[ms]. 図 1:GC が発生しない場合の応答性評価結果 1400 1200 1000 発生回数. Java で GC が動作すると、アプリケーションが動 作を停止してしまうため、応答性が必要な処理も GC 完了まで停止することになる。 GC は新たなオブジェクトを生成する等のメモリ が必要になった場合に動作する。また、Android 2.3 以降で導入された Concurrent GC はアプリケーショ ンのスレッドと異なるスレッドで GC 処理の一部を 実行することで、アプリケーションの停止時間を短 くすることができる。 そこで、応答性が必要な処理は新たなオブジェク. 800 600 400 200 0. 0. 10. 20. 30. 40. 50. 60. 70. 遅延時間[ms]. 図 2:GC が発生する場合の応答性評価結果. Copyright 2013 Information Processing Society of Japan. All Rights Reserved..

(2) 情報処理学会第 75 回全国大会. 3. 応答性改善方法の検討. Thread th = Thread.currentThread(); th.setPriority(199);. Androidはアプリごとにプロセスが生成され、各プ ロセスでJava仮想マシン(Dalvik VM)が動作する(図 3)。そのため、プロセス起動時に優先度を高くする 事で他のアプリがGCで停止しても優先度を高くした アプリは影響を受けない。 一方 Android アプリ内に目を向けると、開発者が 作成した測定スレッドと負荷スレッドの他に、GC ス レッドや Binder スレッド(プロセス間通信用スレッ ド)などのスレッドが動作している。参考文献[1]の 仕組みはアプリをリアルタイム優先度で起動するも のであるが、アプリ起動時に優先度を高くすると、 これらのスレッドの優先度も全て高優先になってし まう。また、設定した優先度はリアルタイム優先度 (固定優先度,FIFO スケジュール)のため、各スレッ ドで一連の処理が終わるまで CPU を開放しない。そ のため測定スレッドにスケジュールされず応答遅延 が発生していると考えられる。 測定アプリ(プロセス). 3.3 改善策評価 前節で追加実装した機能を用い、測定スレッドの みをリアルタイム優先度(99)に設定して応答性評価 を行った。評価結果を図 4に示す。最大応答遅延は 16.8msとなり、改善前の応答遅延を 1/4 程度に抑え ることができた。以上から拡張機能を用いて特定の スレッドの優先度をリアルタイム優先度に設定する 事でGCの影響を軽減できることがわかった。 1400 1200 1000 発生頻度. 3.1 原因の考察. 800 600 400 200 0. 0. 10. 20. 30. 40. 50. 60. 70. 応答遅延[ms]. 図 4:計測スレッドのみリアルタイム優先度にした 場合の応答性評価結果. 別アプリ(プロセス). 測定スレッド. 4. 結論と今後の課題. 負荷スレッド Dalvik VM. Dalvik VM. GC スレッド. GC スレッド. Binder スレッド. Binder スレッド. Android プラットフォーム. 図 3:アプリと各スレッドの関係図. 3.2 改善策検討 前節の考察から、GC スレッドや応答性を高くする 必要の無い負荷スレッドなどは優先度が低いまま、 測定スレッドのみの優先度を上げることで結果が改 善すると考えられる。 そこで、スレッド単位にリアルタイム優先度を設 定できるようにするために、アプリ起動時には優先 度の設定を行わずに、実行時に優先度を変更できる よう Thread クラスの setPriority()メソッドを拡張 した。 以下に拡張した setPriority メソッドの使用例を 示す。本来の setPriority は引数に 1 から 10 の範囲 のみを受けつけ、それ以外は例外を返すものである。 拡張した setPriorty()は 100 から 199 の範囲の値が 入力された場合に、呼び出し元のスレッドの優先度 を Linux の固定優先度「(引数)-100」に設定するよ うにする。以下の例では、優先度が 99 に設定される。. 1-36. 今回、参考文献[1]の仕組みを利用して、アプリ起 動時にリアルタイム優先度に設定した場合に、GCが 発生する際のAndroidの応答性評価を行った。その結 果、アプリ起動時にリアルタイム優先度に設定した のではGCの影響を受けてアプリの応答性が大きく劣 化してしまうことが分かった。 この結果を改善するため、実行時にスレッド単位 で優先度を変更する機能を追加実装した。この機能 を用いて、特定のスレッドの優先度をリアルタイム 優先度に設定して応答性評価を行ったところ、応答 性を大きく改善することができた。 今後は更なるGCの影響軽減方法を検討していく予 定である。図 1と図 4の結果を比較すると、本稿で 実装した機能を適用後もGCの影響により応答性能が 劣化していることが分かる。GCの影響を回避するた めの方法として、1)アプリの中の応答性が重要な部 分を、アプリ本体のプロセスと分離して別プロセス として実行する、2)アプリをネイティブ言語で記述 する、などの方法を考えている。 今後、上記の 2 つの実装方式の応答性評価を行い、 特定の処理の応答性を確保するための指針を提案し ていく予定である。. 5. 参考文献 [1] 東山知彦、増田大樹、松本利夫:Android のリア ルタイム性評価及び改善方法の検討 (情報処理学 会第 74 回全国大会). Copyright 2013 Information Processing Society of Japan. All Rights Reserved..

(3)

図 2:GC が発生する場合の応答性評価結果

参照

関連したドキュメント

本節では本研究で実際にスレッドのトレースを行うた めに用いた Linux ftrace 及び ftrace を利用する Android Systrace について説明する.. 2.1

手話の世界 手話のイメージ、必要性などを始めに学生に質問した。

彩度(P.100) 色の鮮やかさを 0 から 14 程度までの数値で表したもの。色味の

ポスト 2020 生物多様性枠組や次期生物多様性国家戦略などの検討状況を踏まえつつ、2050 年東京の将来像の実現に相応しい

先ほどの事前の御意見のところでもいろいろな施策の要求、施策が必要で、それに対して財

検討対象は、 RCCV とする。比較する応答結果については、応力に与える影響を概略的 に評価するために適していると考えられる変位とする。

改善策を検討・実施する。また、改善策を社内マニュアルに反映する 実施済

最も改善が必要とされた項目は、 「3.人や資材が安全に動けるように、通路の境界線に は印をつけてあります。 」は「改善が必要」3