Submit Search
Upload
How to improve performance
•
0 likes
•
101 views
A
Atsuko Fukui
Follow
Presentation for how to find problem causes and improve performance for android developers.
Read less
Read more
Technology
Report
Share
Report
Share
1 of 59
Download now
Download to read offline
Recommended
Voice interaction api for android m
Voice interaction api for android m
Atsuko Fukui
Processos de separação de misturas
Processos de separação de misturas
Hugo Cruz Rangel
Internet security
Internet security
Carmen Gorda
Approaches for delivery of protein, peptides & vaccines
Approaches for delivery of protein, peptides & vaccines
shikha singh
Optimity webinar series feb 2017
Optimity webinar series feb 2017
Trista Chan
Presentación ejecutivo Desconcentrado
Presentación ejecutivo Desconcentrado
Santiago G. Solórzano Mendoza
Dayana castrillon
Dayana castrillon
dayana katerine castrillon pabon
"Reforma da Previdência", para o Sindicato dos Bancários em 21 06 2016 e para...
"Reforma da Previdência", para o Sindicato dos Bancários em 21 06 2016 e para...
Deputado Paulo Rubem - PDT
Recommended
Voice interaction api for android m
Voice interaction api for android m
Atsuko Fukui
Processos de separação de misturas
Processos de separação de misturas
Hugo Cruz Rangel
Internet security
Internet security
Carmen Gorda
Approaches for delivery of protein, peptides & vaccines
Approaches for delivery of protein, peptides & vaccines
shikha singh
Optimity webinar series feb 2017
Optimity webinar series feb 2017
Trista Chan
Presentación ejecutivo Desconcentrado
Presentación ejecutivo Desconcentrado
Santiago G. Solórzano Mendoza
Dayana castrillon
Dayana castrillon
dayana katerine castrillon pabon
"Reforma da Previdência", para o Sindicato dos Bancários em 21 06 2016 e para...
"Reforma da Previdência", para o Sindicato dos Bancários em 21 06 2016 e para...
Deputado Paulo Rubem - PDT
Magazine questionnaire
Magazine questionnaire
999msvalkyrie
Informe sobre el diagnostico de seguridad industrial,
Informe sobre el diagnostico de seguridad industrial,
Franklín Germana quihuang Garzón
Est29 entrega de diplomas
Est29 entrega de diplomas
emmstone
Edwin s porter
Edwin s porter
conor mckeon
School Improvement Strategies
School Improvement Strategies
guml
Solution Pragas Desentupidora de Caixa de Gordura/Esgoto
Solution Pragas Desentupidora de Caixa de Gordura/Esgoto
SolutionPragas
Business plan
Business plan
Deepak G
5 Simple Tips to Improve Our Performance
5 Simple Tips to Improve Our Performance
Riswan
Comunidades virtuales
Comunidades virtuales
Pablo Velasco
PISA 2012 Evaluating school systems to improve education
PISA 2012 Evaluating school systems to improve education
EduSkills OECD
Breaking Ranks: A Comprehensive School Improvement Framework for K-12 Leaders
Breaking Ranks: A Comprehensive School Improvement Framework for K-12 Leaders
NASSP
Constructive leadership for school improvement
Constructive leadership for school improvement
leexa mishaal
Glomus Tumour
Glomus Tumour
drvineeth g
Dirello rivista 21x21_[multilang]
Dirello rivista 21x21_[multilang]
dario ferrara
Astronomy project
Astronomy project
Russell Rounds
ビッグデータ&データマネジメント展
ビッグデータ&データマネジメント展
Recruit Technologies
Big data解析ビジネス
Big data解析ビジネス
Mie Mori
AgileTourOsaka2011 関係者に理解してもらえるアジャイル開発にむけて
AgileTourOsaka2011 関係者に理解してもらえるアジャイル開発にむけて
Shuji Morisaki
20130320 agile pm
20130320 agile pm
Takao Kimura
そのエラーやお困りごと、ツールを使えば解決できるかも! ~ Sysinternals や OS 標準ツールの徹底活用術 ~ (Microsoft de:c...
そのエラーやお困りごと、ツールを使えば解決できるかも! ~ Sysinternals や OS 標準ツールの徹底活用術 ~ (Microsoft de:c...
Takamasa Maejima
リーン原則とソフトウェア開発
リーン原則とソフトウェア開発
You&I
地図を捨ててコンパスを頼りに進め
地図を捨ててコンパスを頼りに進め
Dai FUJIHARA
More Related Content
Viewers also liked
Magazine questionnaire
Magazine questionnaire
999msvalkyrie
Informe sobre el diagnostico de seguridad industrial,
Informe sobre el diagnostico de seguridad industrial,
Franklín Germana quihuang Garzón
Est29 entrega de diplomas
Est29 entrega de diplomas
emmstone
Edwin s porter
Edwin s porter
conor mckeon
School Improvement Strategies
School Improvement Strategies
guml
Solution Pragas Desentupidora de Caixa de Gordura/Esgoto
Solution Pragas Desentupidora de Caixa de Gordura/Esgoto
SolutionPragas
Business plan
Business plan
Deepak G
5 Simple Tips to Improve Our Performance
5 Simple Tips to Improve Our Performance
Riswan
Comunidades virtuales
Comunidades virtuales
Pablo Velasco
PISA 2012 Evaluating school systems to improve education
PISA 2012 Evaluating school systems to improve education
EduSkills OECD
Breaking Ranks: A Comprehensive School Improvement Framework for K-12 Leaders
Breaking Ranks: A Comprehensive School Improvement Framework for K-12 Leaders
NASSP
Constructive leadership for school improvement
Constructive leadership for school improvement
leexa mishaal
Glomus Tumour
Glomus Tumour
drvineeth g
Dirello rivista 21x21_[multilang]
Dirello rivista 21x21_[multilang]
dario ferrara
Astronomy project
Astronomy project
Russell Rounds
Viewers also liked
(15)
Magazine questionnaire
Magazine questionnaire
Informe sobre el diagnostico de seguridad industrial,
Informe sobre el diagnostico de seguridad industrial,
Est29 entrega de diplomas
Est29 entrega de diplomas
Edwin s porter
Edwin s porter
School Improvement Strategies
School Improvement Strategies
Solution Pragas Desentupidora de Caixa de Gordura/Esgoto
Solution Pragas Desentupidora de Caixa de Gordura/Esgoto
Business plan
Business plan
5 Simple Tips to Improve Our Performance
5 Simple Tips to Improve Our Performance
Comunidades virtuales
Comunidades virtuales
PISA 2012 Evaluating school systems to improve education
PISA 2012 Evaluating school systems to improve education
Breaking Ranks: A Comprehensive School Improvement Framework for K-12 Leaders
Breaking Ranks: A Comprehensive School Improvement Framework for K-12 Leaders
Constructive leadership for school improvement
Constructive leadership for school improvement
Glomus Tumour
Glomus Tumour
Dirello rivista 21x21_[multilang]
Dirello rivista 21x21_[multilang]
Astronomy project
Astronomy project
Similar to How to improve performance
ビッグデータ&データマネジメント展
ビッグデータ&データマネジメント展
Recruit Technologies
Big data解析ビジネス
Big data解析ビジネス
Mie Mori
AgileTourOsaka2011 関係者に理解してもらえるアジャイル開発にむけて
AgileTourOsaka2011 関係者に理解してもらえるアジャイル開発にむけて
Shuji Morisaki
20130320 agile pm
20130320 agile pm
Takao Kimura
そのエラーやお困りごと、ツールを使えば解決できるかも! ~ Sysinternals や OS 標準ツールの徹底活用術 ~ (Microsoft de:c...
そのエラーやお困りごと、ツールを使えば解決できるかも! ~ Sysinternals や OS 標準ツールの徹底活用術 ~ (Microsoft de:c...
Takamasa Maejima
リーン原則とソフトウェア開発
リーン原則とソフトウェア開発
You&I
地図を捨ててコンパスを頼りに進め
地図を捨ててコンパスを頼りに進め
Dai FUJIHARA
地図を捨ててコンパスを頼りに進め
地図を捨ててコンパスを頼りに進め
Rakuten Group, Inc.
GCSアジャイル開発を使ったゲームの作り方
GCSアジャイル開発を使ったゲームの作り方
Hiroyuki Tanaka
AndroidLint #DroidKaigi
AndroidLint #DroidKaigi
Yukiya Nakagawa
おしゃスタat銀座
おしゃスタat銀座
Issei Kurahashi
ElasticSearch勉強会 第6回
ElasticSearch勉強会 第6回
Naoyuki Yamada
Tc sympo tokyo_takayama20090825
Tc sympo tokyo_takayama20090825
和也 高山
Agile overview
Agile overview
Tsuyoshi Ushio
Xp Terakoya No02
Xp Terakoya No02
takepu
ユーザー事例紹介:ソフトウェア開発でのJIRA活用実践!
ユーザー事例紹介:ソフトウェア開発でのJIRA活用実践!
グロースエクスパートナーズ株式会社/Growth xPartners Incorporated.
2008 電子情報通信学会論文誌-ユースケースポイント計測におけるアクタとユースケースの自動分類の試みと支援ツールの試作
2008 電子情報通信学会論文誌-ユースケースポイント計測におけるアクタとユースケースの自動分類の試みと支援ツールの試作
n-yuki
協調フィルタリング with Mahout
協調フィルタリング with Mahout
Katsuhiro Takata
Janog31 bof-pattern-sasaki-01
Janog31 bof-pattern-sasaki-01
Ken SASAKI
プログラムの大海に溺れないために
プログラムの大海に溺れないために
Zenji Kanzaki
Similar to How to improve performance
(20)
ビッグデータ&データマネジメント展
ビッグデータ&データマネジメント展
Big data解析ビジネス
Big data解析ビジネス
AgileTourOsaka2011 関係者に理解してもらえるアジャイル開発にむけて
AgileTourOsaka2011 関係者に理解してもらえるアジャイル開発にむけて
20130320 agile pm
20130320 agile pm
そのエラーやお困りごと、ツールを使えば解決できるかも! ~ Sysinternals や OS 標準ツールの徹底活用術 ~ (Microsoft de:c...
そのエラーやお困りごと、ツールを使えば解決できるかも! ~ Sysinternals や OS 標準ツールの徹底活用術 ~ (Microsoft de:c...
リーン原則とソフトウェア開発
リーン原則とソフトウェア開発
地図を捨ててコンパスを頼りに進め
地図を捨ててコンパスを頼りに進め
地図を捨ててコンパスを頼りに進め
地図を捨ててコンパスを頼りに進め
GCSアジャイル開発を使ったゲームの作り方
GCSアジャイル開発を使ったゲームの作り方
AndroidLint #DroidKaigi
AndroidLint #DroidKaigi
おしゃスタat銀座
おしゃスタat銀座
ElasticSearch勉強会 第6回
ElasticSearch勉強会 第6回
Tc sympo tokyo_takayama20090825
Tc sympo tokyo_takayama20090825
Agile overview
Agile overview
Xp Terakoya No02
Xp Terakoya No02
ユーザー事例紹介:ソフトウェア開発でのJIRA活用実践!
ユーザー事例紹介:ソフトウェア開発でのJIRA活用実践!
2008 電子情報通信学会論文誌-ユースケースポイント計測におけるアクタとユースケースの自動分類の試みと支援ツールの試作
2008 電子情報通信学会論文誌-ユースケースポイント計測におけるアクタとユースケースの自動分類の試みと支援ツールの試作
協調フィルタリング with Mahout
協調フィルタリング with Mahout
Janog31 bof-pattern-sasaki-01
Janog31 bof-pattern-sasaki-01
プログラムの大海に溺れないために
プログラムの大海に溺れないために
Recently uploaded
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
FumieNakayama
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
博三 太田
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
Hiroshi Tomioka
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NTT DATA Technology & Innovation
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
sugiuralab
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
akihisamiyanaga1
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
Yuki Kikuchi
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
UEHARA, Tetsutaro
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
FumieNakayama
Recently uploaded
(9)
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
How to improve performance
1.
How to find
problem causes and improve performance Fukui Atsuko
2.
About me • 福井敦子
/ Fukui Atsuko • @muumuumuumuu • Retty, Inc. • その前は組み込み系Androidのお仕事
3.
Agenda • 目標、前提知識の確認 • Case
1: Systrace • Case 2: Allocation Tracker • おまけ1: Memory Leak • おまけ2: 学習資料
4.
本日の目標
5.
もっさりアプリをどうにかするときに りがちな成長レベル • そもそもどうしていいかわからない (´;ω;`) •
コードからアタリをつけて静的解析 ( ◠‿◠ ) • ツールを活用して効率よく改善 ٩( 'ω' )و
6.
もっさりアプリをどうにかするとき に初心者の りがちな成長レベル • そもそもどうしていいかわからない
(´;ω;`) • コードからアタリをつけて静的解析 ( ◠‿◠ ) • ツールを活用して効率よく改善 ٩( 'ω' )و このあたりの人を対象にお話しします
7.
もっさりアプリをどうにかするとき に初心者の りがちな成長レベル • そもそもどうしていいかわからない
(´;ω;`) • コードからアタリをつけて静的解析 ( ◠‿◠ ) • ツールを活用して効率よく改善 ٩( 'ω' )و このレベルまでいくのが目標
8.
Android Performance 前提知識
9.
AndroidにおけるPerformance • 一つのApplicationにMain Threadは一つ •
並列処理をしたかったら別Threadに処理を分 ける必要がある
10.
AndroidにおけるPerformance • ApplicationごとにAndroidシステムのリソース (CPU, メモリ)の奪い合い •
システムが各Applicationにメモリを割り当てる • メモリ上限に達するとGCが走る • CPUが使われてPerformanceが低下
11.
ANR • Application Not
Responding (アプリケー ションが応答していません) • Input Eventが5秒以上応答なし • Broadcast Receiverの処理に10秒以上かか る
12.
具体的に
13.
ご紹介するツール • なるべく普段開発者が親しんでいるツールを 使う • Android
Studio (v2.2.3)
14.
コードを使って説明します • Android NのEaster
Egg • コードが公開されています • https://android.googlesource.com/ platform/frameworks/base/+/ android-7.0.0_r1/packages/EasterEgg • 「packages/easteregg」でググっても出ます
15.
Neko • ひたすらねこを集めるアプリ • ねこあつめのように去ったりしない •
Quick Settingsに を置いておくとねこが増 えていく
16.
こんな感じ
17.
が100匹近く集まると… • 一覧画面を開きながら
を置くとANR • 一覧画面をスクロールするともたつく
18.
Case 1: 一覧画面を開きながら を置くとANR
19.
ANR例
20.
パフォーマンスで困った時は • どの処理に時間がかかっているか調べる • 時間がかかっている処理を改善する
21.
パフォーマンスで困った時は • どの処理に時間がかかっているか調べる • 時間がかかっている処理を改善する
22.
Systrace • Applicationとシステム全体のTrace Logを取 得できる •
時間軸でThreadごとに何が起こっているかわ かる • ANRの原因となるMain Threadをブロック している原因が見える
23.
Systrace • Device Monitorを立ち上げる •
Tools > Android > Android Device Monitor
24.
Systrace (続き) • Deviceタブでtrace対象のアプリを選択 •
をクリック • いろんな設定を確認してOKをクリック
25.
結果を見てみる👀 • htmlが生成される
26.
なんか読み込まれてる…
27.
どの辺のコードが動いているか? • “R.drawable.body” でコードを検索 •
どうやら を描画する処理が動いている
28.
パフォーマンスで困った時は • どの処理に時間がかかっているか調べる • 時間がかかっている処理を改善する
29.
処理を改善しよう • 改善以前にそもそも必要な処理なのか考える • をおくタイミングで
の描画処理は 必要ないはず • 不必要な処理が動いてコストが上がってい る
30.
コードの追い方 • を描画するトリガーをリストアップ •
一覧画面のonCreate() • Shared Preference の変更通知
31.
コードの追い方 • Shared Preferenceの変更通知のトリガーを 考えてみる •
のデータと の情報を一つのShared Preferenceにまとめてしまった • の状態が変わったため を再描画
32.
修正方法 • もともと一つのSharedPreference エサ 一覧画面再描画処理 SharedPreference ChangeListener
33.
• データを分離し、適切な範囲でlistenerを設 定 エサ 修正方法 一覧画面再描画処理 SharedPreferenceChangeListener
34.
🎉
35.
Case 2: 一覧画面をスクロールすると もたつく
36.
もたつき例
37.
パフォーマンスで困った時は • どの処理に時間がかかっているか調べる • 時間がかかっている処理を改善する
38.
Allocation Tracker (DDMS) •
Applicationのmemory allocationを記録 • 記録対象 • Call Stack • メモリサイズ
39.
Allocation Tracker (DDMS) •
Android Studio起動 • Android Monitor > Monitors >
40.
Allocation Tracker (続き) •
Trackingがスタートするので、画面を操作し てもたつかせる • Trackingしたい動作が終了したらもう一度 を押してTracking終了
41.
結果を見てみる👀 • .allocファイルが生成される
42.
結果を見てみる👀 • Stack Trace
をたどれ、どこが重いかわかる • 右クリックでソースコードに飛べます!
43.
もたつきの原因 • スクロールするときに のアイコンを描 画する処理が重すぎる •
処理の詳細を読んでみる • Bitmapの生成、Vector Drawableの生成を 全てメインスレッドで実行
44.
パフォーマンスで困った時は • どの処理に時間がかかっているか調べる • 時間がかかっている処理を改善する
45.
処理の改善 • 重たい処理を別スレッドに移して、画面の更 新処理のみメインスレッドで行うように変更 する • 画面の更新処理はUIスレッドで行う必要が あるので注意
46.
🎉
47.
おまけ Memory Leakについて
48.
Memory Leak • GC
(Garbage Collection)対象にならないけ れど、使われていないオブジェクトがメモリ ヒープに居座り続けること • 解放されないと使用可能なメモリが減ってい くので、GCが頻繁に起こり、パフォーマン スが低下する
49.
Heap Viewer (DDMS) •
特定時点のメモリの状況を見ることができる
50.
Heap Viewer (DDMS) •
Device Monitorを立ち上げる • Tools > Android > Android Device Monitor
51.
Heap Viewer (DDMS) •
Device Tab > 対象のプロセスを選択 • を押して Cause GCボタン押下
52.
Heap Viewer (DDMS) •
任意のタイミングでGCを起こしてHeap Size やシステムに割り当てられたメモリを確認で きる
53.
Leak Canary • Square社がオープンソースで公開している library •
https://github.com/square/leakcanary • Leakを検知したらリアルタイムで通知 • どのインスタンスがLeakしたかわかる
54.
おまけ 学習資料
55.
Android Developers • ご存知公式Reference •
このあたりがオススメです • Develop > Training > Best Practices for Performance • Develop > Android Studio >User Guide > Profile Your App
56.
UDACITY • オンライン学習プラットフォーム • https://www.udacity.com/ •
Googleがパートナーシップを締結 • Android Performanceコース • 動画とコードとクイズの組み合わせ
57.
書籍 • メモリリークの話がぼんやりとしかわからな かった人向け • Javaでなぜつくるのか
知っておきたいJava プログラミングの基礎知識 • 米持 幸寿, 日経BP社, 309p
58.
書籍 • AndroidのThreadやProcessをもっと知りた い人向け • Androidのなかみ
InsideAndroid • Tae Yeon Kim他, パーソナルメディア, 506p
59.
Thank you!
Download now