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

26 工 学院大学研究報告 る. 2.3 adj と minfree 2.3 adj と minfree adj 幼 とminfree の /init.rc 関係は,/init.rc で 定義されており, 前述 low の様に,low memory killer において強制終了するプロ adj セ

N/A
N/A
Protected

Academic year: 2021

シェア "26 工 学院大学研究報告 る. 2.3 adj と minfree 2.3 adj と minfree adj 幼 とminfree の /init.rc 関係は,/init.rc で 定義されており, 前述 low の様に,low memory killer において強制終了するプロ adj セ"

Copied!
7
0
0

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

全文

(1)

Android

におけるLRUを用いた終了プロセス選定

野 村   駿

*1

,中 村 優 太

*1

,坂 本 寛 和

*1

,山 口 実 靖

*2

LRU based Process Termination in Android Low Memory Killer

Shun NOMURA

*1

, Yuta NAKAMURA

*1

, Hirokazu SAKAMOTO

*1

and Saneyasu YAMAGUCHI

*2

Abstract

  Android OS has become one of the most important platforms in the current computer systems. Android OS has its original process memory management system, which is called ‘low memory killer’. When an amount of free memory is less than a threshold, it selects processes based on its own policy and terminates the processes for allocating free memory. This process termination sometime causes user’s inconvenience. That is, re−launching the process is required for re−using the application if the process is terminated. Thus, selecting policy for termination is considered important. In this paper, we have proposed several selecting methods for process termination. One is based on LRU, another is based on application launching time, and the other is based on memory size. We have implemented these proposed methods and evaluate them with practical application launching log. Our experimental results demonstrated that our proposed method has enabled been able to decrease of application launching time.

1.はじめに  Androidはスマートフォン,タブレットPC,音楽プレ イヤーなど様々なデバイスのOSとして採用されており, 2013年第 2 四半期においてそのシェアは 81.3%1)となっ ており,今も増加中である.この様に Android OS は広 く普及しており,重要性が高まっていると考えられる.  Android には,low memory killer と呼ばれるプロセス メモリ管理システムが搭載されており,独自のルールに 従ってメモリの管理を行なっている.low memory killer は空きメモリ量が少なくなると起動され,メモリの空き 容量を確保するためにプロセスを強制終了する.このプ ロセスの強制終了により,ユーザが再度同じアプリケー ションを使用する場合に,プロセスの再起動が必要とな りユーザの待ち時間を増加させることがある.  本研究では,強制終了するプロセスの選定の改善によ りプロセス再起動にともなうユーザの待ち時間を低減す ることを目的として,新しい選定手法を提案する.そし て提案手法をオープンソースである Android に実装し, 評価を行う. 2.Android OS 2.1 アーキテクチャ  Android OSはアプリケーション,アプリケーションフ レームワーク,ライブラリ,Androidランタイム,Linux カーネルで構成されている2)  アプリケーション,アプリケーションフレームワーク, ライブラリ,AndroidランタイムにはAndroidのために新 規に開発された実装が多く含まれている.カーネルには Linuxカーネルが使用されており,多くの部分は変更さ れることなくそのまま使用されている.ただし,次節で 述べる low memory killer など Android 固有の機能も追加 されている.

2.2 low memory killer

 Android には,low memory killer という独自のプロセ スメモリ管理システムが搭載されている.これは,メモ リの空き容量が閾値以下まで下がった場合に起動され,

adjとminfreeの関係に基づいてプロセスを選定し強制終

了するプログラムである.low memory killerが起動され ると,強制終了するプロセスの選定のために起動してい る全てのプロセスのadjを比較し,adjの数値がより高い プロセスを強制終了する候補にあげる.最高 adj のプロ セスが複数存在する場合,メモリ使用量を比較し,メモ リ使用量のより多いプロセスを強制終了する候補にあげ *1電気・電子工学専攻 *2情報通信工学科准教授

Android

に お

LRU

終了

選定

野 村

駿

*1

,中 村 優 太

*1

,坂 本 寛 和

*1

, 山

実 靖

*2

LRU

 

based

 

Process

 

Termination

 

in

 

Android

 

Low

 

Memory

 

Killer

Shun

 

NOMURA

*1 , 

Yuta

 

NAKAMURA

  *  i , 

Hirokazu

 

SAKAMOTO

*i

 and  

Saneyasu

 

Ym

 

AGUCHI

*2

Abstract

   

Aridroid

 OS 

has

 

beccme

 one Of 

the

 most  important platfbrms in 

the

 curTent  computer  systems

 

Aiidroid

 OS 

has

 itS

original process memory  management  systern

 which  is ca皿ed

10w

 menlory  

ldlle

 When all amoullt  of 丘ee memory  is

less

 tha且athreshold

 it selects processes 

based

 on its ow 且policy a且

d

 terminates the processes for allocat 血g free memory

 This process termi且a 廿  sonledme  causes  usefs  inco且ve且ience

 That is

 re

1aunchi且g the p  ss is required

fbr re

usi且g the apPlication 廿the process is terrni且ated

 Thus

 selecd 且9 Policy for termina廿o且is co且sidered  important 】h this paper

 we  have prqp〔msed severa1  selecti且g methods  fOr process termi且a 廿 

0且e is based  LRU

跏 ther is

based on  applicatio 且 launching time

 and the other  is based on  memory  size

 We have implemented  these prqposed methods  a且d evaluate  them with  pfacdcal apPlication  launchi且g lo9

 Our experime 且tal results demo且st温ted that our

pr〔脚 sed method  has enabled  been able to d  肥ase ofapplica 廿  1aunchi且g time

1

は じ め に  Aridreidはスマ

トフォ ン

タブレッ トPC

音 楽 プレ イ ヤ

など様々 ス のOS として採 用 されてお り

2013 年第2四半 期におい て その シェ ァは81

3%1)となっ てお り

今 も増 加 中である

この様にAndroid OS は く普 及 してお り

重 要 性が高 まっ てい ると考え られ る

 Androidに は

 low memary  killerと呼 ばれ るプロ セ ス

メモ リ管理 シ ス テ ム が搭 載さ れ て お り

独 自のル

ル に 従っ て メ モ リの管 理 を行 なっ て い る

low memory  killer

は 空 きメ モ リ量 が 少 な くな ると起 動 され

メ モリの空 き 容 量 を確保するため にプロ セスを 強 制 終 了する

このプ ロ セス の強 制終 了に より

が再 度 同じアプ リ ケ

シ ョンを使用 する場合に

プロ セ スの再起動が必要と な りユ

ザの待 ち 時 間 を増 加させ ること がある

 本研究で は

強制終了 する プロセスの選定の改善に よ り プロセ ス再 起動にと もなうユ

ザの待ち時 間 を低 減す る こ と を目的と して

新しい 選 定 手 法を提 案 する

そ し て提案手 法 をオ

プンソ

ス である

Android

に実 装 し

評価を行 う

唯1 電 気

電 子工学専 攻 *U 情 報 通信工学 科准 教 授 2

Android OS  2

1 ア

キテクチャ  Android OS プ リケ

シ ョ ン

アプ リ ケ

シ ョ ン フ レ

ム ワ

ライ ブラ リ

,Android

ラン タイム

  Linux カ

ネル で構 成さ れてい る2)

 アプリ ケ

ション

アプリ ケ

シ ョンフ レ

ムワ

ライ ブラ リ

Androidラン タイム に はAndroidのた め に新 規に開発さ れ た実装が多く含ま れ てい る

ネ ル に は Linuxカ

ネルが 使 用 されてお り

多 くの部 分 は変 更 さ れ るこ とな くその ま ま使 用 されてい

た だし

次 節で

述べ る

low

 memory  

killer

な ど

Andreid

固 有の機 能 も追 加

さ れてい る

 

2.

2

 

10w

 memory  

killer

 Androidに は

 low memory  killerとい う独 自の プロ セ

スメモ リ管理 シ ス テムが搭載さ れ てい る

これ は

メモ

リの空 き容 量が閾値 以 下 まで下がっ た 場 合に起動さ れ

とminfree の関 係に 基づ いて プロセス を選 定し強 制 終 了するプログ ラムである

low

 memory  

killer

起動さ れ

る と

強制終了 する プロ セス の選定のた め に起動して い

る全ての プロ セスの αのを 比較し

adj

の数値が より高い

プロセス を 強 制 終 了 す る 候 補 に あ げ る

最 高

edj

の プロ セス が複 数 存 在 する場 合

メモ リ使用量を 比較し

メモ

(2)

26 工学院大学研究報告

る.

2.3 adjとminfree

 adj と minfree の関係は,/init.rc で定義されており,前 述の様に,low memory killerにおいて強制終了するプロ セスを選定する際に参照される.adj はプロセスの状態 を表しており,プロセスの状態が変化するたびに数値が 増減する.プロセスの状態によるadjの値を表 1 に示す. adjの値が小さいプロセスほど強制終了されにくく, フォアグラウンドのプロセスが最も強制終了されにく い.minfree は,プロセス強制終了実行の閾値となる空 きページ数であり,adjによってランク分けされている. Android4.0.3におけるadjとminfreeの関係を表 2 に示す. 表 2 中の minfree の値の単位はページ[4KB]である.例 えば,メモリ空き容量が 38000[KB](9500[4KB])にな ると,adj の値が 9 以上の数値を持つプロセスが強制終 了される候補に上がる.そして,空きメモリ量が38428 [KB](9607[4KB])以上になるか,adj が 9 以上のプロ セスがなくなるまでプロセスを強制終了する. 3.アプリケーションの起動手順  Android のアプリケーションを新規に起動する場合, 図1の様な手順に従って起動される.①ユーザがアプリ ケーションのアイコンをタッチするとホームアプリケー ション(Launcher)がアプリケーション起動要求のイン テ ン ト を ActivityManager に 送 信 す る. ②ActivityMan-agerがZygoteにプロセス生成要求を送信する.③Zygote が自分自身をforkし,子プロセスを生成する.④新しい プロセスが初期化される.⑤アプリケーションのライフ サイクルに従って onCreate(),onStart(),onRe-sume()が呼び出される.  また,起動済みであるがバックグラウンド状態にある プロセスの再開は,図 2 の様な手順に従って行われる. ①ユーザがアプリケーションのアイコンにタッチすると ホームアプリケーションが再開要求のインテントを Ac-tivityManagerに送信する.②ActivityManager は対象の バックグラウンドアプリケーションプロセスに再開要求 を出す.③バックグラウンドアプリケーションプロセス は再開要求を受けてアプリケーションプロセスとして起 動しフォアグラウンド状態となる3).本論文では前者を 「新規起動」,後者を「再開」と呼ぶ.

 起動済みプロセスがlow memory killerによって強制終 了されることなく再利用された場合は,上記の「再開」 の手続きが行われるが,プロセスが強制終了された後に 再利用された場合は「新規起動」の手続きが行われる. 通常,「再開」よりも「新規起動」の方が要する時間が 長いため,後に再利用するプロセスの強制終了はユーザ の待ち時間を増加させてしまう. 4.提案手法

 本章で,LRU に基づいて low memory killer の強制終

表1 プロセスの状態,種類によるadjの値 adj プロセスの状態,種類 0 FOREGROUND_APP 1 VISIBLE_APP 2 PERCEPTIBLE_APP 3 HEAVY_WEIGHT_APP 4 BACKUP_APP 5 SERVICE 6 HOME_APP 7 PREVIOUS_APP 8 SERVICE_B 9 HIDDEN_APP_MIN 15 HIDDEN_APP_MAX 表2 Android4.0.3 におけるadjとminfreeの関係

adj minfree[4kB] 0 3674 1 4969 2 6264 4 8312 9 9607 15 11444 図1 アプリケーションの起動手順 図2 アプリケーションの再開手順 26 工学 院大 学 研 究 報告 る

 

2.

3

 adj とminfree  幼

とminfree の関 係は

init

rcで定 義さ れ てお り

前 述の様に

low memory  killerに おい て強制終了 する プロ セ ス を 選 定する際に参 照さ れ る

はプロ セ ス の状 態 を表 してお り

プロセス の状 態 が 変 化 す るた びに 数 値 が 増 減 する

プロセスの状 態に よ るadij の値を表

1

に 示す

の値 が 小 さい ロ セ ス ほど強 制 終 了 さ れ に く く

フォ ア グラ ウ ン ドの プロ セスが最 も強制 終了さ れ に く い

minfree は

プロ セ ス強 制 終 了 実 行の値 となる空 きペ

ジ数であ り

に よっ て ランク分 けさ れ ている

Aridreid4

0

3にお けるadj

とminfree の関 係 を表2 に示 す

表2 中の癬 の値の単 位 はペ

ジ[4KB ]で あ る

例 えば

メモ リ空き容 量が38000[KB](9500[4KB ])に な ると

adj

の値 が9以 上の数 値 を 持つ ロ セスが 強 制 終 了さ れ る候補に 上 が る

そ して

空きメ モリ量が38428 [KB ](9607[4KB ])以 上になる か

 adijが9以 上の プロ セ ス が なくな る ま で プロ セ ス を強制終了 する

表1 プロセス の状 態

種 類に よ る adJ の値 衂 プロ セ ス の状 態

種 類 0 FOREGROUND

  

    

   一

 APP 1 VISIBLE

 

    一

 APP 2 PERCEPTIBLE

  

    

   一

 

APP

3 HEAVY

  

  −

 WEIGHT  

APP

4 BACKUP

  

   一

 

APP

5 SERVICE

6 HOME

  

  一

 

APP 7 PREVIOUS

  

    一

 APP

8 SERVICE

 

    一

 B

9 HmDEN

  

   −

 APP 

MIN

15 HmDEN

  

   −

 APP 

MAX

表2 Android4

0

3に お け る attj

とminttee の関係

3 .

アプリケ

ション の起 動 手 順 Aridreidの アプ リ ケ

シ ョ ンを 新 規 に 起 動 す る 場 合

1

な手 順に従っ て起動さ れ る

  ユ

ザ がア プ リ ケ

ションの アイコ ンをタッチするとホ

ムアプリ ケ

図 1 アプリケ

ショ ン の 起 動 手 順              再      タッチ 図2 アプリケ

ション の再 開 手順 ショ ン (Launcher )がアプ リ ケ

ショ ン起動要求のイン テ ン ト をACtiVityMdanagerに 送 信 す る

  ACtivityMan

ager がZygoteにプロセ ス生 成 要求を送 信する

  Zygote

が自分 自身をforkし

子 プロ セ ス を生 成する

  新 しい

プロセ ス が初期化さ れ る

  アプ リ ケ

ション の ラ イフ

サイクル に従っ て onCreate  O

  onStart  O

  onRe

sume  

O

さ れ る

 ま た

起動済み である がバ ッ ク グ ラ ウン ド状 態にある プロセス の再 開は

図2の様な手 順に従っ て行わ れ る

  ユ

ザが アプリ ケ

ショ ンの アイコ ンに タッチすると ホ

ム アプリ ケ

シ ョ ンが再 開 要 求のインテン トをAc

tiVityManager

に送 信する

 

ActiVityManager

は対 象の バ ッ ク グラ ウン ドアプ リケ

シ ョ ンプロセスに再 開 要 求 を 出 す

  バ ッ クグラ ウン ドアプ リケ

シ ョ ンプロセス は再 開 要求を受 けて アプリ ケ

ションプロ セスと して起 動しフ ォァグラ ウ ン ド状 態と な る3)

本 論 文で は前 者を 「新 規起動」

後者を 「再 開」と呼ぶ

 起 動 済みプロ セ スが10w memory  killerによっ て強 制 終 了さ れ るこ と な く再 利 用さ れ た場合は

上記の 「再 開」 の手 続 きが 行 わ れ る が

プロセスが 強 制 終 了 さ れた後 に 再 利 用さ れ た場 合は 「新 規 起 動 」の手 続き が行わ れ る

通 常

「再 開 」より も 「新 規 起動」の方が要する時 間が 長いた め

後に再 利 用 する プロ セス の強制終了はユ

の待ち時間を増加さ せ て し まう

4 .

提 案 手 法

(3)

了プロセスを選定する LRU 手法と,アプリケーション の新規起動時間をもとに選定する起動時間手法と,これ らを組み合わせた手法を提案する.

 前述のように,low memory killerは第一次判定として

adjによる判定を行い,第二次判定としてメモリ使用量 による判定を行う.以下における F−LRU および F−起動 時間手法は第一次(First)判定に LRU や起動時間を用 いる手法であり,S−標準手法および S−メモリ×LRU 手 法は,第二次(Second)判定にメモリ量やメモリ量× LRUを用いる手法である. 4.1 F-LRU 手法  本節で,強制終了するアプリケーションの一次判定を LRU方式を用いて行うF−LRU手法を提案する.  本手法では,ユーザが起動したアプリケーションを LRUにより管理し,LRU 順にて新しい(最後の起動か らの時間が短い)ものの adj を下げ強制終了の対象とな りにくくする.  後述の評価用実装では以下の様に実装されている.長 さ15の配列を用意し,ユーザが起動したアプリケーショ ン履歴を保持する.配列はLRUにて管理する.そして,

low memory killerにおける強制終了プロセス選定の際,

アプリケーションの履歴内の順位を調査し,履歴のn番 目にあるプロセスの adj を n/2 に変更する.順位は新し い方から数え,最小は 0 とし,小数点以下は切り捨てと する.ただし,変更前の adj が変更後の adj より低い場 合は,変更前の adj を優先する.この手法により,最近 使用されたアプリケーションのプロセスが強制終了され にくくなり,ユーザの待ち時間を低減することができる と期待される.履歴内に記録のないアプリケーションの adjは変更を加えない.履歴の長さや,adj の下げ幅は チューニングパラメータである. 4.2 F-起動時間手法  本節で,アプリケーションの新規起動時間を考慮して 強制終了するプロセスの一次判定を行う F−起動時間手 法を提案する.本手法では,アプリケーションの新規起 動時間を計測する.そして,新規起動時間が長く,強制 終了した場合に増加させるユーザの待ち時間が大きいア プリケーションを強制終了されにくくする.  アプリケーションの新規起動時間は,アプリケーショ ンのライフサイクルにおける onCreate() の呼び出し から onResume() の呼び出しまでの時間とし,提案シ ステムでは5章での手法によりアプリケーションごとの 新規起動時間の履歴を取る.そして,履歴内のアプリ ケーションに対して新規起動時間の長い順に順位(rank) をつける.例えば,新規起動時間の一番長いアプリケー

ションのプロセスは,rank=0となる.low memory

kill-erによる強制終了プロセス選定の際,アプリケーション 履歴内に存在するアプリケーションのプロセスの rank を参照し,adj を rank/2 にすることで,新規起動時間の 長いアプリケーションを強制終了されにくくする.これ により,アプリケーションの起動に長い時間を要しユー ザの待ち時間を大きく増加させることを回避できると期 待される.  後述の評価用実装では,アプリケーションの新規起動 時間の履歴は最新の 10 個を保持し,それより古いもの 破棄する.よって,長時間前に起動し最近使用していな いアプリケーションが長期にわたり強制終了の対象とな らないことは生じない.履歴の長さとadj の下げ幅はパ ラメータである. 4.3 F-標準手法  比較のため,第一次判定をadjで行う標準low memory killerの手法を本稿ではF−標準手法と呼ぶ. 4.4 F-LRU×起動時間手法  本節で,F−LRU 手法と F−起動時間手法を組み合わせ て第一次判定を行うF−LRU×起動時間手法を提案する.  本手法では,F−LRU 手法と F−起動時間手法を並列し て動作させ,両値の小さい方をそのプロセスの adj とす る. 4.5 S-メモリ×LRU 手法  本節では,まず S−標準手法を定義し,続いて S−メモ リ×LRU手法の提案を行う. 4.5.1 S-標準手法  本手法では,強制終了プロセス選定の第二次判定をプ ロセスのメモリ使用量で行い,よりメモリ使用量の多い プロセスを強制終了する対象とする.

 本手法は,標準low memory killerの動作である.比較 のため,これをS−標準手法と呼ぶ. 4.5.2 S-メモリ×LRU 手法  本項で,強制終了プロセス選定の第二次判定をプロセ スのメモリ使用量とLRU順の積で行う手法を提案する. アプリケーションがLRUの履歴内に存在しない場合は, LRU順として(履歴長+1)を用いる. 5.実 装  提案手法を実装するために,Android のカーネルおよ びフレームワークに変更を加えた.以下にその詳細につ いて述べる. 5.1 カーネル内部  カーネル内部ではまず,lowmemorykiller.c にお いてlow memory killerが強制終了するプロセスを選定す

了 プロ セス を 選 定 す るLRU 手 法と

アプ リ ケ

シ ョ ン の新 規 起動時間 をもと に 選定 する起動時間手 法と

これ

ら を組み合 わせた 手 法 を提案する

 

前述の ように

low memary  killerは第

次判定と して adij による判 定 を行い

第二次 判 定として メ モ リ使 用 量 による 判 定 を 行 う

以 下 に お け るF

LRU およ びF

起 動 時間手 法は第

次 (F廿st判定にLRU や起動時間 を 用 い る 手 法で あ り

S

標 準 手 法 およ びS

メ モ リ×LRU 法は

第二 次 (Second )判定にメ モ リ量や メ モ リ量× LRU を用い る手 法である

 

4.

1

 

F−LRU

手 法  本 節で

強制 終了するア プ リ ケ

ショ ン の

次判定を LRU 方 式 を用い て行 うF

LRU 手 法 を提 案 す る

 本 手 法で は

ザ が起動し たア プ リ ケ

シ ョ ン を LRU により管 理 し

 LRU 順 にて新 しい 最 後の起 動 か らの 間が短い ) もの の

edj

を下 げ 強制終了の対象と な りにく くする

 後述の評価用実装で は 以下の様に実装さ れ てい る

長 さ

15

の配列を 用意し

ザ が起動し たアプ リ ケ

ショ ン履 歴 を 保 持 す る

配 列 はLRU にて管 理 す る

そ して

low

 mem αry 

killer

お け強 制 終 了 プロ セス選 定の際

アプリ ケ

シ ョ ン の履 歴 内の順 位 を 調 査 し

履 歴の犯番 目にある プロ セ スの cidj

をn/2に変 更する

順 位は新し い方か ら数 え

最 小は0 とし

小 数 点 以 下は切 り捨て と する

た だ し

変 更前の adijが変更 後の

edj

より低い 合は

変 更 前の 幼

を優 先する

こ の手 法に より

最 近 使 用さ れ たアプ リ ケ

シ ョ ン の プロ セスが強 制 終 了さ れ に く くな り

ザの待ち 時 間 を低 減するこ とが できる と期 待さ れ る

履 歴 内に記 録の ない アプリ ケ

シ ョ ン の 幼

は変 更を加えない

歴の さ や

adij の 下 げ幅は チュ

ニ ングパ ラメ

タであ る

 4

2 F

起 動 時 聞 手 法  本 節で

アプリ ケ

シ ョンの新 規 起動時 間 を考慮 して 強 制 終 了 する プロセス の

次 判 定を行 うF

起 動 時 間 手 法を提 案する

本 手法で は

アプ リ ケ

ショ ン の新規起 動 時 間 を計 測 する

そして

新 規 起 動 時 間が長 く

強 制 終了し た場合に増 加さ せ るユ

の待ち時間が大きい ア プ リケ

シ ョ ンを強 制 終 了 され に く くす る

 アプ リ ケ

シ ョン の新 規 起 動 時 間は

アプ リ ケ

シ ョ ンの ライフ サイクル にお けるonereate  

O

呼 び 出 し か らonResume  O の 呼び出し まで の時間と し

提 案シ ス テムで は5 章での手法に よりア プ リ ケ

ショ ン ご との 新 規 起 動 時 間の履 歴 を 取 る

そ して

履 歴 内の アプ リ ケ

ショ ンに対し て新 規 起動時間の長い順に順 位 (rank をつ ける

例 え ば

新 規 起動時 間の

番 長いアプリ ケ

シ ョ ン のプロセス は

rank

0とな る

10w memory  kil1

er に よ る 強制 終了 プロセス 選定の際

アプ リ ケ

ショ ン 履 歴 内に存 在する アプリ ケ

ショ ンのプロ セス のrank を参照 し

αのをran幻2にする こ とで

新 規 起動 時間の 長いアプリ ケ

シ ョ ンを 強 制 終 了さ れ にく くする

これ により

アプ リケ

シ ョ ン の起 動 に 長い 時 間 を 要 しユ

ザのち時間 を大き く増 加さ せ ること を 回避で き る と期 待 さ れ る

 後述の評価用実 装で は

アプ リ ケ

シ ョン の新 規起動 時 間の履 歴は最 新の 10個 を保 持 し

そ れ よ り古い もの 破棄する

よっ て

長時間前に起動し最近使用し てい な い アプリ ケ

シ ョ ンが長 期にわたり強 制 終 了の対 象とな らない こ とは生 じ ない

履 歴の長 さと

の下 げ 幅 はパ ラメ

タ で あ る

 4

3 F

標 準 手 法

 

比較のた め

次判定を幼

行 う標

if

 low memary killerの手 法 を本 稿で はF

標準手 法と呼ぶ

 

4.

4

 

F−LRU

×起動時間手法  本 節で

F

LRU 手 法とF

起動時間手 法を組み合わ せ て第

次 判 定 を行 うF

LRU × 起 動 時 間 手 法 を提 案 す る

 本 手 法で は

F

LRU 手 法 とF

起動時 間 手 法 を並 列 し て作させ

両 値の小さい方 をそのプロ セ ス の

 4

5 S

メ モ リ×LRU 手 法   本 節で は

まずS

標 準 手 法 を定 義 し

続いて S

メ モ リ×LRU 手 法の提案を行う

 4

5

1S

標 準 手 法  本 手 法で は

強 制 終 了 プロ セ ス選 定の第二次 判 定 を プ ロ セ ス の メ モ リ使 用 量で行い

よ りメ モリ使 用 量の多い プロセ ス を強制終了 する対象とする

 本 手 法 は

標 準low memary  killerの動 作であ る

比 較

のため

これ をS

標 準 手 法と呼ぶ

 

4.

5.

2

 

S一

メ モリ×

LRU

手 法   本 項で

強 制 終 了プロ セス選 定の第二次 判 定を プロ セ スのメモ リ使用 量とLRU 順ので行 う手 法を提 案する

アプリ ケ

シ ョ ンがLRU の履 歴 内に存 在 し ない 場 合は

LRU 順と し て (履歴長+

1

を用い る

5 .

実  装  提案手 法 を 実 装するため に

,Android

の カ

ネルおよ びフ レ

ム ワ

ク に変更を加えた

以下に その詳細につ い て述べ る

 5

1 カ

ネル内 部  カ

ネル 内部 で は まず

lowmem 。rykiller

c に お

(4)

28 工学院大学研究報告 る箇所に変更を加えた.  F−LRU 手法では,次節のユーザ空間プログラムより アプリケーション起動時刻の情報を得て,アプリケー ションの起動順をカーネル内の配列にて LRU を用いて 管理する.  F−起動時間手法では,カーネルがユーザ空間より /procインターフェイスを介してアプリケーションの 新規起動時間の情報を受け取り,それをカーネル内の配 列に格納して履歴として管理し,新規起動時間の長い順 に rank をつける.そして,メモリが不足し強制終了プ ログラムを選定する際には,アプリケーション履歴内に 存在するアプリケーションのプロセスのrankを参照し, adjをrank/2とする. 5.2 ユーザ空間部  ユーザ空間部では,アプリケーションフレームワーク の実装にアプリケーションライフサイクルメソッド (onCreate()など)の呼び指し時刻を記録する機能と, 記録されたメソッド呼び出し時刻とアプリケーション起 動時間を /proc インターフェイスを通じてカーネルの

low memory killerに伝える機能を追加した.F−LRU 手

法ではアプリケーションの起動時刻を,F−起動時間手 法ではアプリケーションの新規起動時間を伝えている.

6.評 価

 本章にて,標準low memory killer(以下標準手法と呼 ぶ)および提案手法のアプリケーションの合計起動時間 の評価を行う.

6.1 評価方法

 標準low memory killer,起動時間ベース手法,LRU手 法が実装されている Android スマートフォンにおいて, 複数のアプリケーションを順に起動し,その起動に要し た時間を測定した.実験は,表3に示す仕様のスマート フォンを用いて行った. 6.2 評価シナリオ  本稿では,起動するアプリケーションの順番を定めた ものを“シナリオ”と呼ぶ.本実験では,第三者から許 可を得て取得したユーザの実際の 1 日のアプリケーショ ン使用履歴であるシナリオを 2 つ(シナリオ A,B)用 意し,標準手法と全ての提案手法の評価を行った.(シ ナリオ AとシナリオBのアプリケーション起動順は表6 と表 7 参照.)  アプリケーション起動とアプリケーション起動の間に ホームアプリケーション(Launcher)を起動し,実際の 使用順に近いものとしている. 6.3 評価結果  シナリオA,Bにおける評価結果を図3,4に示す.各 図 の 縦 軸 は, シ ナ リ オ の ホ ー ム ア プ リ ケ ー シ ョ ン (Launcher)以外の全アプリケーションの起動時間の合 計であり,少ないほど優れていると言える.  また,シナリオ A,B におけるそれぞれの手法のアプ リケーションの新規起動,再開の数を表4,5に示す.  通常,新規起動による起動時間の方が再開による起動 時間より長いため,基本的に新規起動の回数が少ないほ ど合計起動時間が短くなり,優れた手法であると考える ことができる.ただし,新規起動時間はアプリケーショ ンにより異なるため,新規起動時間の回数が同一でも合 計起動時間に差が生じる.  図と表より,両シナリオにおいて標準手法より全ての 提案手法の方が合計起動時間が短く,また新規起動の回 数も少ないまたは同等であることが確認でき,標準手法 よりも優れた手法であることがわかる.  提案手法同士を比較すると,F−LRU−S−メモリ手法と 表3 実験環境 Device name Nexus S

OS Android4.0.3

CPU Cortex A8 (Hummingbird) Processer 1GHz Memory 512MB 図3 シナリオ A における評価結果 図4 シナリオ B における評価結果 28 工学 院大 学 研 究 報告 る箇 所 に変 更 を加 えた

 F

LRU 手 法で は

次 節のユ

ザ空間 プロ グ ラム よ り アプリ ケ

シ ョン起動時 刻の情 報 を得て

アプリ ケ

シ ョン の起 動順を カ

ネル内の配列にて LRU を用い て 管 理する

 F

起 動 時 間 手 法で は

ネル がユ

ザ 空 間より /proc イン タ

フェ イ ス を介 し てア プ リ ケ

シ ョ ン の 新 規 起 動 時 間の情 報 を 受 け 取 り

そ れ をカ

ネル内の配 列に格 納して履歴 と して管理 し

新 規起動時間の長い にrmk をつ ける

そ して

メ モ リ が不足 し強 制 終 了 プ ロ グ ラ ム を選定する際に は

アプ リ ケ

ショ ン歴内に 存 在 する アプリ ケ

シ ョ ン のプロ セ ス の rank を 参 照 し

をranlO/2とす る

 

5.

2

 ユ

ザ 空間部  ユ

ザ 空 間部で は

アプ リケ

シ ョ ン フ レ

ム ワ

ク の実 装にア プ リ ケ

シ ョ ン ライ フサ イ クル メ ソ ッ ド (。nCreate  O の呼び指 し時 刻 を記 録する機 能と

記録さ れ た メソ ッ ド呼び出し時刻とア プ リ ケ

ション起 動時間 を /proc イン タ

フェ イ ス を 通 じ て カ

ネル の

low memory  killerに 伝 え る機 能 を 追 加 した

 F

LRU 手 法で はア プリ ケ

ショ ンの起動時 刻 を

F

起動時 間 手 法で は アプリ ケ

シ ョ ン の新 規 起動時 間 を伝 えてい る

6 .

評  価

 本 章 にて

if

 low memory  killer(以 下 標 準 手 法と呼 ぶ)および提案手 法の アプリ ケ

シ ョ ンの合 計 起動時 間

の評 価を行 う

 

6.

1

評 価 方 法

 標

if

 low memory  killer

起 動 時 間ベ

ス手 法 LRU 手

法が実装さ れ てい る

Android

スマ

トフ ォ ンに おい て

複 数の アプ リケ

シ ョ ンを順 に起 動 し

その起 動 に要 し た時 間 を 測 定 した

実 験 は

表3に 示 す 仕 様の ス マ

ト フォ ンを用い て行っ た

表3  実験 環 境 Device nameNexus  S OSAndmid4

0

3

CPUCortex  A8 Hu皿 ning1 血d)Pmcesser IGHz

M  ory512MB 意 し

標 準 手 法と全て の提 案 手 法の評 価 を行っ た

(シ ナ リ オ

A

と シ ナ リ オBの ア プ リ ケ

シ ョ ン起動順は表 6 と表

7

参 照

)  アプ リ ケ

シ ョン起動とアプ リ ケ

シ ョン起動の 間に ホ

ムアプリ ケ

シ ョ ン (Launcher )を起動し

実 際の 使 用 順 に 近い もの としてい る

 

6.

3

評価 結果  シナ リオA

Bに お け る評 価 結 果 を 図3

4に示 す

各 図の 縦 軸は

シ ナ リ オの ホ

ム ア プ リ ケ

シ ョ ン (Launcher )以 外の全アプリ ケ

シ ョ ン の起動時 間の合 計であ り

少ない ほ ど優れ てい る と言える

  また

シ ナ リ オA

B にお ける そ れ ぞ れの手 法の アプ リ ケ

シ ョ ン の新 規 起 動

再 開の数 を表4

5に示 す

 通常

新 規 起動に よ る起動時間の方が 再 開 に よ る起動 時 間より長い ため

基 本 的 に新 規 起 動の 回数 が 少 ない ど合 計起動時間が短くなり

優れ た手法で ある と考える こ と がで きる

た だ し

新 規 起動時 間は アプリ ケ

シ ョ ンに より異な る た め

新規起 動時間の回数が同

でも合 計 起動時間 に差が生じ る

  図と表より

両シナ リオ において標 準 手 法より全て の 提案手 法の方が合 計 起動時 間が短 く

また 新 規 起動の 回 数 も少 ない また は同等で あるこ と が認で き

標準手 法 よりも優れ た手法である こ と が わ か る

  提 案 手 法 同士 を比 較 する と

F

LRU

S

メ モ リ手 法と   開

  嶇  

  40 

  お

亙・・

屡酉

藁準 毒”

:   o

.望

1

1

 

 

 

 

 6

2  評価シ ナリ オ  本 稿で は

起動するアプ リ ケ

シ ョ ンの順番を定め た もの を

シナ リオ11 と呼ぶ

本 実 験で は

第三者 か ら許 可 を得て取得し たユ

ザの実 際の

1

日の アプ リ ケ

ショ ン使 用 履 歴である シ ナ リ オを

2

シ ナ リ オ

A ,B

)用 図3 シ ナ リオAに お け る評価結果

 

γ

図4 シ ナ リオBに お け る評 価 結果

(5)

表4 シナリオ A における新規起動,再開の数 手法 新規起動回数 再開回数 F−標準−S−標準 53 101 F−LRU−S−標準 41 113 F−起動時間−S−標準 39 115 F−標準−S−メモリ×LRU 48 106 F−LRU×起動時間−S−標準 44 110 F−LRU−S−メモリ×LRU 42 112 表5 シナリオ B における新規起動,再開の数 手法 新規起動回数 再開回数 F−標準−S−標準 76 320 F−LRU−S−標準 35 361 F−起動時間−S−標準 74 322 F−標準−S−メモリ×LRU 76 320 F−LRU×起動時間−S−標準 33 363 F−LRU−S−メモリ×LRU 32 364 表6 シナリオ A におけるアプリケーション起動順

Setting File Manager Gmail KINGSOFT Office for Android Phone Skype Google Chrome Gmail

Opera Browser Gmail Gmail KINGSOFT Office for Android Gmail Skype Google Chrome Gmail

Music Gmail Gmail Google Chrome Gmail Google Chrome Google Chrome Gmail Google Chrome Gmail Gmail Google Chrome Gmail Google Chrome Skype Gmail Opera Browser Gmail Google Chrome Google Chrome Skype File Manager Gmail Gmail Gmail Google Chrome Google Chrome Google Chrome Skype Gmail Skype Gmail

Gmail Skype Google Chrome KINGSOFT Office for Android Google Chrome Gmail Skype Gmail

Gmail Google Chrome Google Chrome KINGSOFT Office for Android KINGSOFT Office

for Android Gmail Skype Gmail

Gmail Google Chrome Google Chrome KINGSOFT Office for Android Phone Gmail Skype Gmail

Google Chrome Google Chrome Google Chrome Google Chrome Gmail Skype Skype Gmail Google Chrome Google Chrome Google Chrome Google Chrome Gmail Gmail Skype Gmail Google Chrome Google Chrome Google Chrome Skype Gmail Gmail Skype Gmail

Google Chrome Google Chrome Gmail KINGSOFT Office for Android Gmail Gmail Google Chrome Skype

Google Chrome Google Chrome Gmail Gmail Gmail Skype Skype Google Chrome KINGSOFT Office

for Android Google Chrome Gmail Gmail Google Chrome Gmail Google Chrome Google Chrome Gmail Google Chrome Gmail KINGSOFT Office for Android Phone Skype Google Chrome Google Chrome Google Chrome Gmail Gmail Gmail Phone Google Chrome Google Chrome Google Chrome Google Chrome Gmail Gmail Gmail Gmail Skype KINGSOFT Office for Android Skype Skype Gmail Gmail Google Chrome Google Chrome Google Chrome KINGSOFT Office for Android

Gmail Camera Gmail

表7 シナリオ B におけるアプリケーション起動順

File Manager Email Google Chrome Setting JotaTextEditor Email Dropbox Gmail File Manager Email Dropbox Gmail Setting Setting Dropbox Gmail Setting Setting Google Chrome Gmail Setting Setting Dropbox Google Chrome Setting Setting Dropbox Gmail Setting Setting Dropbox Gmail Setting Setting Dropbox Gmail Google Chrome Setting Dropbox Gmail Dropbox Setting Dropbox Gmail Google Chrome Email Map Gmail Gmail Email Gmail Google Chrome Gmail Setting Gmail Gmail Gmail Setting Gmail Google Chrome Google Chrome Setting Gmail Gmail Setting Email Gmail Gmail Setting Setting Setting Gmail Google Chrome Setting Setting Gmail Google Chrome Setting Gmail Gmail Gmail Gmail JotaTextEditor Gmail Gmail Google Chrome Gmail Gmail Gmail Google Chrome Gmail Gmail Setting Setting Gmail Camera Setting Setting Gmail Gmail Gmail Google Chrome Gmail Gmail Google Chrome Google Chrome Map Camera Google Chrome Google Chrome ConnectBot File Manager Google Chrome Setting ConnectBot Gallery Google Chrome Setting ConnectBot File Manager Gmail Setting ConnectBot File Manager Google Chrome Setting ConnectBot Gmail Google Chrome Setting ConnectBot File Manager Gmail Setting ConnectBot Google Chrome Google Chrome Setting ConnectBot Setting Google Chrome Setting Google Chrome Setting Google Chrome Setting Setting Setting Gmail Setting Setting Setting Gmail Setting Setting Gmail Gmail Setting Setting Gmail Gmail Setting Google Chrome Gmail Gmail Google Chrome ConnectBot Gmail Gmail Setting ConnectBot Gmail Gmail Setting ConnectBot Gmail Gmail Setting ConnectBot Gmail Gmail Setting ConnectBot Google Chrome Google Chrome Setting ConnectBot Gmail Google Chrome Phone ConnectBot Gmail Google Chrome Setting MicrosoftRemoteDesktop Gmail Google Chrome Setting MicrosoftRemoteDesktop Camera Google Chrome Setting MicrosoftRemoteDesktop File Manager Gmail Gmail MicrosoftRemoteDesktop Camera Google Chrome Gmail ConnectBot File Manager Google Chrome Gmail ConnectBot Gallery Google Chrome Google Chrome MicrosoftRemoteDesktop File Manager Google Chrome Setting MicrosoftRemoteDesktop Gallery Google Chrome Setting Google Chrome File Manager Setting Setting Setting Gallery Setting Setting Setting File Manager Setting Gmail Setting File Manager Setting Gmail Setting Gmail Setting Gmail Setting Gmail Setting Gmail Gmail Gmail Setting Gmail Gmail Gmail Setting Gmail Gmail Gmail Setting Gmail Gmail Gmail

表4  シナ リオAに おける新 規起 動

再 開の数       表7  シナ リオBに おけるアプ リケ

ション起 動順 手法 新 規 起 動 回数 再 開 回数 F

標 準

S

標 準 53 101 F

LRU

S

標 準 41 113 F

起動 時 間

S

標 準 39 115 F

標 準

S

メ モ リ XLRU 48 106 F

LRU x起 動時 間

S

標 準 44 110 F

LRU

S

メ モ リ XLRU 42 112 表5 シ ナ リオBに お け る新 規起 動

再 開の数 手法 新 規起動 回数 再 開 回数 F

標 準

S

標 準 76 320 F

LRU

S

標 準 35 361 F

起 動 時 間

S

標 準 74 322 F

標 準

S

メ モ リ XLRU 76 320 F

LRU  x起 動時 間

S

標 準 33 363 F

LRU

S

メモ リ XLRU 32 364 表6 シ ナ リオA に お け るアプ リケ

ショ ン起 動 順 S曲  臼1eM 囲 mNGSOFro 面ce     i   e 蹶 G嘩 C  e 囲 眠raBr。梱 肛 囲 囲 mNGSOFro面ce    i 囲 蹶 G嘩 C  e 囲 Mu曲 囲 囲 G  b  e 囲 G嘩   eG C  e 囲 G嘩   e 囲 囲 G  b  e 囲 G嘩   e 蹶 囲 0卩  Br跚 肛 囲 G雌 C  e G嘩   e 蹶 臼1eM叩 囲 囲 囲 G嘩   eG C  e G嘩   e 蹶 囲 蹶 囲 囲 蹶 G 嘩 C  e mNGSOFro 面ce    i G嘩   e 囲 蹶 囲 囲 G  b  eG 嘩 C  e mNGSOFro 面ce     i mNGSOFro 田ce 血rAn 血岨 囲 蹶 囲 囲 G  b  eG 嘩 C  e mNGSOFro面ce    i   e 囲 蹶 囲 G嘩   eG 嘩   eG 嘩 C  e G  b  e 囲 蹶 蹶 囲 G嘩   eG   eG C  e G  b  e 囲 囲 蹶 囲 G嘩   eG 嘩   eG 嘩 C  e 蹄 囲 囲 蹶 囲 G嘩   eG 嘩   eG 皿齟 mNGSOFro 面ce   A囗血 ゴd 囲 囲 G 雌 C  e G嘩   eG   eG 皿齟 囲 囲 蹶 蹶 G嘩   e mNGSOFro 田ce 血rA血 岨 G嘩   eG 皿齟 囲 G嘩 C  e 囲 G 雌 C  e G嘩   e 囲 G嘩   eG 皿齟 mNGSOFro 面ce   A囗血 ゴd   e G 嘩 C  e G  b  e G嘩   e 囲 囲 囲   e G嘩   eG 嘩 C  e G  b  e G嘩   e 囲 囲 囲 囲 蹶 mNGSOFro 田ce 血rAndr 岨

蹶 囲 囲 G  b  e

G嘩   eG   emNGSOFro 田ce 血rAndr 岨

囲 血 囲 晩 M毋 er 囲 G 衂e   」。囲  E血肛 囲 D叨 面x 囲 晩 M毋  er 囲 D叨面x 囲 Se吶 Se吶 D叨面x 囲 Se吶 Se吶 G衂e   囲 Se吶 Se吶 D叨 面x G 衂e   Se吶 Se吶 D叨 面x 囲 Se吶 Se吶 D叨面x 囲 Se吶 Se吶 D叨 面 x 囲 肋噌e 砒   艦 Se吶 D叨 面 x 囲 D軸 DXSe 吶 D叨 面 x 囲 肋e砒

 艦

囲 M亘P 囲 G

an 囲 圃 G 衂e  G皿an Se吶 圃 囲 G皿an Se吶 圃 G衂 e   肋噌e 砒   艦 Se吶 圃 囲 Se吶 囲 圃 囲 Se吶 Se吶 晦 囲 肋噌e砒  艦 Se吶 晦 囲 肋噌e 砒   艦 Se吶 圃 囲 G皿an G皿an 」。囲   E面肛 囲 G皿an ⊂  eChr。  圃 囲 G皿an ⊂  国e砒。  圃 囲 Se吶 Se吶 圃 C日皿 肛a Se吶 Se吶 圃 囲 G皿an 肋e 砒 。  圃 囲 Go 噌e   肋e 砒   艦 M亘P C日皿 肛a G 衂e   肋e 馳 m 艦 C皿皿血 晩 M毋 er 肋噌e砒  艦 Se吶 C皿皿血 G組1ery 肋噌e砒  艦 Se吶 C皿皿血 晩 M毋  er G皿an Se吶 C皿皿血 晩 M毋  er 肋e 砒   艦 Se吶 C皿皿血 囲 肋e 砒   艦 Se吶 C皿皿血 晩 M毋 er G

an Se吶 C

皿皿

G 衂e  肋噌e 砒   艦 Se吶 C皿皿血 晦 肋噌e 砒   艦 Se吶 G衂e   晦 肋噌e 砒   艦 Se吶 晦 晦 G

an Se吶 晦 晦 G

an Se吶 晦 囲 G皿an Se吶 晦 囲 G皿an Se吶 G衂e   囲 G皿an ⊂  国e 砒 。  C皿皿血 囲 G皿an Se吶 C皿皿血 囲 G皿an Se吶 C皿皿血 囲 G皿an Se吶 C皿皿血 囲 G皿an Se吶 C皿皿血 G衂 e   肋e 馳 m 艦 Se吶 C皿皿血 囲 肋e 馳 m 艦 Pb  艦 C皿皿血 囲 肋噌e馳m 艦 Se吶 Mi肛 閃面  砿d〕e5kL。P 囲 肋噌e馳m 艦 Se吶 Mi肛 閃面  砿d〕e5kL。PC 日皿 肛a 肋噌e馳m 艦 Se吶 Mi肛 閃面  砿d〕e5kL。P 晩 M毋  er G皿an G皿an Mi肛   丘R  ユ砿d〕e5kL。PC 日皿 肛a 肋e 砒   艦 G皿an C皿皿血 晩 M毋 er 肋e 砒   艦 G皿an C皿皿血 G組1ery 肋噌e砒  艦 ⊂  国eChr。  Mi肛 閃面  砿d〕e5kL。P 晩 M嬋 肋噌e馳m 艦 Se吶 Mi肛 閃面  砿d〕e5kL。PG 組1ery 肋噌e 馳 m 艦 Se吶 G衂e   晩 M嬋

Se吶 Se吶 晦 G組1ery

Se吶 Se吶 晦 晩 M Se吶 G

an 晦 晩 M Se吶 G皿an 晦 囲 Se吶 G皿an 晦 囲 Se吶 G皿an 圃 囲 Se吶 G皿an 圃 囲 Se吶 G

an 圃 囲 Se吶 G皿an 圃 囲

(6)

30 工学院大学研究報告 F−LRU−S メモリ×LRU 手法が両シナリオにおいて優れ た性能を示しており,第一次判定においては LRU を用 いることが好ましいことが分かる. 6.4 アプリケーションの起動時間  アプリケーションごとの起動時間は図5の通りである.  図より,アプリケーションにより起動時間に大きな差 があることが分かる. 7.考 察  今回提案した手法では,アプリケーションの新規起動 時間は onCreate() の開始時刻から onResume() の開 始時刻までとしており,再開時間はonRestart()の開 始時刻から onResume() の開始時刻までとしている. しかし,アプリケーションによっては onResume() が 開始した後にデータの読み込みやページの読み込みを行 うことがあり,これによりユーザには待ち時間が生じて しまうことが考えられる.この様な場合,実際にユーザ の待ち時間の増加の程度は,本稿で定義した「アプリ ケーション起動時間の増大量」を大きく上まわることに なり,提案手法により得られるユーザの体感的待ち時間 の低減は前章の評価をさらに上まわるものになると期待 できる.例えば,Webブラウザアプリケーションの多く がこれに該当し,プロセスが強制終了されてしまった後 にアプリケーションを使用すると onResume() の開始 後に以前閲覧していたページの再読み込みが発生し, ユーザはこの間待たされることとなる.また,タブ型の ブラウザの場合は閲覧タブの変更を行うたびに以前は読 み込み済であったページの再読み込みが生じユーザが待 たされることとなる.  そのため,本稿で定めたアプリケーションの起動では なく,onResume() の開始後に発生する処理に要する 時間も考慮した手法を適用することでユーザの待ち時間 のさらなる軽減を図ることができると予想される. 8.関連研究  Android アプリケーションの起動時間の調査方法に関 する研究としては,文献 3 )4 )の研究がある.これら において,ユーザによるスクリーンのタッチからアプリ ケーション起動の完了までの時間の計測方法が示されて いる.また,実際のアプリケーション起動時間の測定結 果と考察が示されている.本稿における起動時間の測定 は当該研究で提案されている手法に基づき行われてい る.  Linux カ ー ネ ル の モ ニ タ リ ン グ ツ ー ル と し て は, FTrace5,6),SystemTap7,8),LTTng9,10),OProfile11)がある.

しかし,これらは Linux 用に構築されているため An-droidの解析には適さず,具体的には本研究で必要とな るアプリケーションフレームワークやDalvik VMの動作 の解析ができない.例えば,アプリケーションフレーム ワーク内におけるアプリケーションライフサイクル (onCreate(),onRestart(),onStart(),onRe-sume())の時刻を取得することができず,アプリケー ション起動時間の調査をすることができない.  アプリケーション起動時間の短縮に関する研究として は,Zygote の preload クラスの増加による起動時間の短 縮の研究12)がある.当該研究は,Zygoteによる読込済み

Setting Gmail Gmail Simeji(日本語入力キーボード) Setting Gmail Gmail Gmail

Gmail Gmail Gmail Gmail Gmail Gmail Google Chrome Gmail Gmail Gmail Google Chrome Gmail Gmail Gmail Google Chrome Gmail Gmail Gmail Google Chrome Gmail Gmail Gmail Gmail Google Chrome Gmail Gmail Gmail Google Chrome Gmail JotaTextEditor Gmail Google Chrome Gmail Setting Gmail Gmail Gmail Setting Gmail busybox Setting Google Chrome Gmail Google Chrome Setting busybox Gmail Google Chrome Setting Setting Setting Gmail Email Setting Setting Google Chrome Setting Setting Setting Google Chrome Email Setting Setting Google Chrome Setting Setting Setting Google Chrome Email Setting Camera Google Chrome Setting Setting Camera Google Chrome Email Gmail Setting Google Chrome Email Google Chrome Setting Google検索 Email Gmail Setting Gmail Email Gmail Gmail Gmail Email Google Chrome Gmail File Manager Gmail Setting Setting Gmail Email Setting Setting Gmail Email Setting Setting Gmail Email Setting Setting Gmail Email Google Chrome Camera Gmail Email Google Chrome Camera File Manager Email Google Chrome Setting Gmail

図5 各アプリケーションの平均新規起動時間 30 工学 院大 学 研 究 報告 S曲   囲 囲 踊 i 〔日本語入力キ

ド〕 S曲   囲 囲 G皿副 囲 囲 囲 G

副 囲 囲 G 嘩 C  e G

副 囲 囲 G嘩 C  e G皿副 囲 囲 G嘩 C  e G皿副 囲 囲 G嘩 C  e G皿副 囲 囲 囲 G 啣eC   e 囲 囲 囲 G啣eC  e 囲 J血  E面L。r 囲 G啣eC  e 囲 S曲  囲 G皿副 囲 S曲  囲 bub呱 S曲  G嘩   e 囲 G 啣eC   e S曲    汐b呱 囲 G啣eC  e S曲  S曲  S曲  G皿副 E皿副 S曲  S曲  G啣eC  e S曲  S曲  S曲  G 啣eC   e E皿副 S曲  S曲  G 啣eC   e S曲  S曲  S曲  G 啣eC   e E皿副 S曲  Ca皿 ra G啣eC  e S曲  S曲  Ca皿 ra G啣eC  e E皿副 囲 S曲   G啣 eC   e E皿副 G嘩   eS 曲  G 啣e検索 E皿副 囲 S曲  G皿副 E

副 囲 囲 G

副 E皿副 G嘩   eG 皿齟 FneM呻 囲 S曲   S曲   G皿副 E皿副 S曲   S曲   G皿副 E

副 S曲  S曲  G

副 E

副 S曲  S曲  G

副 E皿副 G嘩   eCa 皿 ra G皿副 E皿副 G嘩   eCa 皿 ra FneM呻 E皿副 G嘩   eS 曲   G皿副

   

1

   

■ ■ ■

   

レ α・  

』 昌 巨 櫨 益 層 繋 嚇 望 酔   1

4 

冨1

z

f

始 時刻 まで としてお り

再 開 時 間 は。nRestart  O の 開 始 時 刻か らonResume  

O

始 時 刻ま で と し てい る

しかし

アプリ ケ

シ ョンに よっ て はonResume  O が 開始し た後にデ

タの読み込み やペ

ジの読み込み を行 うこと があ り

これ によりユ

ザに は待ち時 間が生 じて しま うこ とが 考 え られ る

この様 な場 合

実 際 にユ

ザ のち時間の増 加の程 度は

本 稿で定 義し た 「アプ リ ケ

シ ョ ン起 動 時 間の増 大 量 」 を大 き く上 ま わ るこ とに な り

提案手法に より得ら れ るユ

の体感的待ち時間 の低 減は前 章の評 価 をさらに上 ま わるものになる と期待 で き る

例 え ば Web ブ ラ ウザアプ リ ケ

ション のく がこれ に該 当し

プロセス が 強制 終了 さ れ て し まっ た後 にアプ リ ケ

シ ョ ン を使 用 す ると。nResume  

O

開 始 後に 以前 閲 覧し てい たペ

ジの 再読み込み が発 生し

ザ はこの間待たされ るこ と とな る

また

タブ 型の ブラ ウザの場合は閲覧タ ブの変更を行 うた び に 以前は読 み込み済で あっ たペ

ジの再 読み込み が生 じユ

ザが待 た さ れ る こ と と な る

 そのた め

本 稿で定め たアプ リ ケ

ショ ンの起動で は な く

。nResume  O の 開 始 後 に 発 生 す る処 理 に 要 す る 時 間 も考慮 した 手 法 を適 用するこ とでユ

ザのち 時 間 のさらなる軽 減 を図ること がで きる と予 想さ れ る

図5  各アプリケ

ション の平均新 規 起 動 時 間 F

LRU

−S

メモ リ×LRU 手法が両シナリ オ に おい て優れ た性 能 を示 してお り

次 判 定におい て はLRU を用 い るこ と が好ま しい こと が分か る

 6

4 アプ リケ

ションの起 動 時 間  アプ リ ケ

シ ョン ご との起 動 時 間は図5の通 りである

 図より

アプリ ケ

シ ョンに より起動時 間に大 き な差 がある こ と が分か る

8 .

関 連 研 究

7 .

考   察  今回提案し た手 法で は

アプ リ ケ

ショ ンの新 規 起動 時 間はonCreate  O 開 始 時 刻 onResume  O  Aridroidアプ リケ

シ ョ ン の起 動 時 間の調 査 方 法 に 関 する研 究 と して は

文献 3 )4 )の研 究がある

これら に おい て

に よ るス ク リ

ン の タッチ か らア プ リ ケ

シ ョン起動の完 了 まで の時 間の計 測 方 法が示さ れ て い る

また

実 際の アプリ ケ

シ ョ ン起 動 時 間の測 定 結 果と考 察が示さ れ てい る

本稿に おける起動 時間の測定 は 当 該 研 究で提 案 さ れて い る 手 法 に 基づ き行 わ れてい る

 

Linux

ネル のモ ニ タ リ ン グ ツ

ル と して は

F[lrace5

6)

 SystemTap7

 B)

】LT

lrng9

 i°)

 OProfilell)がある

し か し

こ れ ら はLinux用 に構 築さ れ てい る た め

An−

droidの解 析に は適さず

具 体 的に は本 研 究で必 要とな るアプ リ ケ

ショ ン フレ

ム ワ

ク やDalvik VM 動作

の解 析 がで き ない

例 え ば アプ リ ケ

シ ョ ン フ レ

ム ワ

ク内に お けるア プ リ ケ

シ ョ ン ライ フサ イ クル

(onCreate  

O ,

 onRestart ()

 onStart  

O ,

 onRe

sume  O )の時刻を取得する こ と がで きず

ア プ リ ケ

ショ ン起 動時間の調 査をすること が で き ない

 アプ リケ

シ ョ ン起 動 時 間の短 縮 に 関 す る研 究として

Zygoteの

prel

【}ad ク ラ スの増 加に よ る起動時間の短

(7)

クラスの数を増加させることによりアプリケーション起 動時におけるストレージからのクラス読み込み量を減少 させ,起動時間の短縮を実現している.しかし,強制終 了されたアプリケーションの起動時間の短縮を考える当 該研究の手法と,強制終了するアプリケーションの最適 化を考える本稿の手法は目的が大きく異なっている.ま た両手法は排他的な関係になく,両手法を同時に用いて いくことが好ましいと考えられる. おわりに

 本論文で我々はlow memory killerにおける強制終了プ ロセスの選定手法に着目し,LRU による選定手法とア プリケーションの起動時間を考慮した選定手法等を提案 した.そしてこれらの手法の評価結果を示し,提案手法 が標準手法よりもアプリケーション起動時間を短縮でき ることを示した.また,全提案手法の中でも特に LRU による手法が優れていることを示した.  今後は,onResume() の開始後に発生する処理に要 する時間も考慮した選定手法について考察していく予定 である. 参考文献

1)Android Captures Record 81 Percent Share of Global Smart-phone Shipments in Q3 2013 :

 https://blogs.strategyanalytics.com/WSS/post/2013/10/31/Android −Captures−Record−81−Percent−Share−of−Global−Smartphone− Shipments−in−Q3−2013.aspx

 http://www.idc.com/getdoc.jsp?containerId=prUS23638712 2)What is Android?|Android Developers:

 http://developer.android.com/guide/basics/what−is−android.html 3)永田恭輔,山口実靖:Android アプリケーションの起動性

能解析システムとその評価,マルチメディア,分散,協調と モバイル(DICOMO2012)シンポジウム,pp.83−90(2012) 4)Kyosuke Nagata, Saneyasu Yamaguchi, “An Android Application

Launch Analyzing System”, 8th ICCM : 2012 International Con-ference on Computing Technology and Information Management, (2012/04/24)

5)Steve Rostedt. ftrace tracing inftrastructure.  http://lwn.net/Articles/270971/. SystemTap  http://sourceware.org/systemtap/

6)Frank Ch. Eigler. “Problem solving with systemtap”, In Pro-ceedings of the Ottawa Linux Symposium 2006, 2006.

7)LTTng Project http://lttng.org/

8)T. Bird, “Measuring Function Duration with Ftrace”, in Proc. of the Japan Linux Symposium, 2009.

9)M. Desnoyers, M.R. Dagenais, “The LTTng Tracer : A low im-pact performance and behavior monitor of GNU/Linux”, Proceed-ings of Ottawa Linux Symposium 2006, 2006, pp.209−223. 10)J. Levon and P. Elie. Oprofile : A system profiler for linux.

http://oprofile.sf.net, September 2004. 11)Valgrind http://valgrind.org

12)Kyosuke Nagata, Yuta Nakamura, Shun Nomura and Saneyasu Yamaguchi, “Measuring and Improving Application Launching Performance on Android Devices”, 4th International Workshop on Advances in Networking and Computing (WANC ’13)

クラス の数 を増 加 させるこ とによりアプ リ ケ

シ ョ ン起 動時に お け る ス ト レ

ジ か らのク ラ ス読み込み量を減 少 させ

起動時 間の短 縮 を 実 現 してい る

しかし

強 制 終 了さ れ たアプ リ ケ

シ ョン の起動 時間の短縮を考える当 該 研 究の手 法と

強 制 終 了する アプリ ケ

シ ョ ン の最 適 化 を考 え る本 稿の手 法 は 目的 が 大 き く異 なっ てい る

ま た 両手 法は排 他的 な 関係に な く

両手 法を 同時に 用い て い こ とが好 ま しい と考 え られ る

お わ り に

 

本 論文で我々 は

low

 memory  

killer

に おける強制終了プ

ロ セスの選定 手 法に着目 し

LRU に よ る 選定 手 法とア プ リケ

シ ョ ン の起 動 時 間 を考 慮 した選 定 手 法 等 を提 案 し た

そ し てこれ らの手 法の評価 結果 を 示 し

提案手 法 が 標 準 手 法より もアプ リケ

シ ョ ン起 動 時 間 を 短 縮で き る こ と を示し た

ま た

全提 案手 法の中で も特にLRU による手 法が優れていることを示 した

 今 後は

onResume  

O

始 後発生 す理 に要 する時間も考慮し た 選定 手 法につ い て考察し てい く予定 であ る

考 文 献

1)Android Captures Record 81 Percent Share of Global Smart

Phone Shiprnents in 

Q3

 2013:

 htU】sV例blogs

strategyanalytics

cormVWSSfpost12013 /IOrSユIAndoid

 

Captures

Record

81

Percent

Share

of

Glol】al

Srnartphone

 Shiprnents

in

Q3

2013

aspx

 http 

Vfwww.

idc

corTVgetdoc

jsp

?containerld

prUS23638712 2)What is Andoid?

1Andoid

 Developers:

 httpVfdeveloper

android

corqtgUided】asicS!what

is

android

html

3)永田恭輔

山 口実靖:Androidア プ リ ケ

ショ ンの起 動性   能 解 析シ ステム と その評 価

マ ルチメディア

分 散

協調と

 モ バイル (DICOMO2012 )シンポ ジ ウム

 pp

83

90 (2012)

4)KyosUke Nagata

 Saneyasu Yarnagudhi

Ari Android Application

 LaunCh Analyzing Systern

8th ICCM :2012 lntamational Con

ference on  Computing Teclmology and  lnformation Managernent

  (2012/04/24)

5)Steve Rostedt

 ftrace trac nng  inftrastructue

h帥 伽 ll

n 醇 削 de醐7097V

 Syst  脂p

 httpVlsourceware

org 匹sySterntap 〆

6)Frank Ch

 Eigler

T

roblem  solving with  systemtap

 h pm

 ceedings  ofthe Odawa I血nux Symposiur【L 2006

2006

7)HT   Pect htΦ朔ttng

orY

8)TB  

『Meas囲     cdon  Duration輌th Ftracざ

 in Pmc

 of

 theJapan Ijnux Symposiur【LJ 2009

9)M

Desnoyers M

R

 Dagenais 

Tlie

 LTTng  Thacer:A low im

paCt perforTnance and behavior rnonitor of GNUILinux

 Proceed

 ings ofOttawa  I血nux  Symposiur【L 2006

2006

 pp

209

223

10)

J.

Levon and  P EIie

 Oprofile:Asystem profiler for linux

 httPVIoProfile

sf

net

 Septernl】er 2004

11) 丶脚 nd httPVf》algrind

org

12)Kyosuke Na彫 Ita

丶血ta Nakamura

 Shun Nomura and  Saneyasu

 Yarnaguchi

『Measuring and ImproVing Application Launching

 Performance on  ArLdroid Devices

4th internationa1 WorkShop on

 Advances血Networking and  Computi  (WANC

表 2   Android4 . 0 . 3 に お け る attj ’ とminttee の 関係
表 4   シナ リオ A に お け る 新 規起 動 , 再 開 の 数                   表 7   シナ リオ B に お け る ア プ リケ ー シ ョ ン 起 動順 手法 新 規 起 動 回数 再 開 回数 F 一 標 準 一S 一 標 準 53 101 F − LRU − S 一 標 準 41 113 F 一 起 動 時 間 一S 一 標 準 39 115 F 一 標 準 一S 一 メ モ リ XLRU 48 106 F − LRU   x 起 動時 間 一S 一 標 準

参照

関連したドキュメント

An iterative method for solving single variable nonlinear equation fx 0, with n 1, n ≥ 1, evaluations per iteration reaches to the maximum order of convergence 2 n and the

これらの定義でも分かるように, Impairment に関しては解剖学的または生理学的な異常 としてほぼ続一されているが, disability と

The equivalence L Adj(R-Inst, S-Inst) ' R Adj(S-Inst, R-Inst) op is standard, so we only need to show that this equivalence re- spects the restrictions concerning Type.. The

つの表が報告されているが︑その表題を示すと次のとおりである︒ 森秀雄 ︵北海道大学 ・当時︶によって発表されている ︒そこでは ︑五

関西学院大学手話言語研究センターの研究員をしております松岡と申します。よろ

新設される危険物の規制に関する規則第 39 条の 3 の 2 には「ガソリンを販売するために容器に詰め 替えること」が規定されています。しかし、令和元年

経済学研究科は、経済学の高等教育機関として研究者を

「今後の見通し」として定義する報告が含まれております。それらの報告はこ