Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
Unity energy usage
mattak
November 29, 2017
Programming
0
620
Unity energy usage
Unity3D battery usage research
mattak
November 29, 2017
Tweet
Share
More Decks by mattak
See All by mattak
最近やった作業環境改善施策10個
mattak
0
140
UnixTime is Simple
mattak
0
110
おっさんが停滞しないために
mattak
32
18k
tech invest
mattak
1
250
Nodux - node base redux framework
mattak
0
1.2k
what_is_technical_investment
mattak
0
99
unitypackage distribution
mattak
0
640
Unidux 0.3.1
mattak
1
310
Component Pattern for Android
mattak
0
430
Other Decks in Programming
See All in Programming
Ruby Pattern Matching
bkuhlmann
0
600
爆速の日経電子版開発の今
shinyaigeek
0
190
Swift Observation
shiz
3
240
和暦を正しく扱うための暦の話
nagise
10
4.6k
なぜRubyコミュニティにコミットするのか?
luccafort
0
290
ポケモンで学ぶiOS 16弾丸ツアー 🚅
giginet
PRO
1
600
はてなリモートインターンシップ2022 インフラ 講義資料
hatena
4
2.1k
新卒でサービス立ち上げから Hasuraを使って3年経った振り返り
yutorin
0
190
Swift Expression Macros: a practical introduction
kishikawakatsumi
2
680
Step Functions Distributed Map を使ってみた
codemountains
0
100
MBSD Cybersecurity Challenges 2022 最終審査会 IPFactory 発表スライド
futabato
0
820
Enumを自動で網羅的にテストしてみた
estie
0
1.2k
Featured
See All Featured
Creatively Recalculating Your Daily Design Routine
revolveconf
207
11k
Build The Right Thing And Hit Your Dates
maggiecrowley
22
1.4k
Design by the Numbers
sachag
271
18k
Gamification - CAS2011
davidbonilla
75
4.1k
Web development in the modern age
philhawksworth
197
9.6k
The Mythical Team-Month
searls
210
40k
Building Better People: How to give real-time feedback that sticks.
wjessup
346
17k
Reflections from 52 weeks, 52 projects
jeffersonlam
338
18k
Atom: Resistance is Futile
akmur
256
24k
10 Git Anti Patterns You Should be Aware of
lemiorhan
643
54k
Code Reviewing Like a Champion
maltzj
508
38k
VelocityConf: Rendering Performance Case Studies
addyosmani
317
22k
Transcript
Unityと消費電力 Gotanda.unity #3 2017/11/29 @mattak
モチベーション 位置ゲームなど… - 屋外 - 充電できない環境で長時間遊ばれる - バッテリーくいすぎると不評 => Unityだとどんな感じか気になったので調査
実験 端末: - iPhoneX (iOS 11.1) 比較: - iOS Native
- WebView - Unity
動作 白表示する Unity - Canvas & Image
検証1. Native/WebView/Unity 消費電力が大きいのは?
iOS Native
iOS Native (energy)
iOS Native (energy) ΄΅%JTQMBZ ੨ $16 ࢵ ىಈ࣌ͷΈ
iOS Native (cpu)
iOS Native (cpu) $16ىಈ࣌ͷΈ
WebView
WebView (energy)
WebView (energy) ॳظ$16 ࢵ ͕एׯ ΄΅%JTQMBZ ੨
WebView (cpu)
LocalでのHTML表示だったので、 通信して表示みる
WebView (energy) - 通信表示
WebView (energy) - 通信表示 /FUXPSL ᒵ ͱ 0WFSIFBE
Ͱిྗ͘͏
IUUQTEFWFMPQFSBQQMFDPNMJCSBSZDPOUFOUEPDVNFOUBUJPO1FSGPSNBODF $PODFQUVBM&OFSHZ(VJEFJ04&OFSHZBOE/FUXPSLJOHIUNM Overhead? Networking Variable Effect on Energy (developer.apple.com) ネットワーク状態に関連してバッテリーが影響を受ける
- 例1: 3G/LTEは WiFiよりも電池くう (10h -> 11h) - 例2: network throughputが悪いと待機時間画のびる - 例3: 散発的な通信 は電池食う (通信すると待機状態になる)
WebView (energy) - 通信表示 ௨৴ػ ௨৴։࢝ ᒵ
Unity
Unity (energy)
Χϥϑϧ
Unity (energy) %JTQMBZ ੨ (16 ͕ʑ $16 ࢵ ৗʹ
Unity (energy) ௨৴։࢝ ᒵ ௨৴ػ
Network? UnityAnalyticsが有効になっていた!
外してみたが変わらず…
一旦諦めてCPUの状態をみる
Unity (cpu)
Unity (cpu) ཪͰͣͬͱήʔϜϧʔϓ͕ ճ͍ͬͯΔ
検証2. 画面表示を黒にするのは効果あるのか?
バッテリーセーバー機能 - 画面が下をむくと自動的に黒
動作 黒表示する Unity - Canvas & Image
Unity (battery) - 白画面
Unity (battery) - 黒画面
Unity (battery) - 黒画面 %JTQMBZ ੨ ͕ݮͬͯΔʂ
Native iOSでも同様に黒にしてみる
Native iOS (battery) - 黒画面
Native iOS (battery) - 黒画面 ΄΅ όοςϦʔফඅͳ͠
よく観察すると、最近のOSは頻繁に黒画面になる - ロックスクリーンが黒っぽい - 数秒で輝度が下がる - …
ちなみに、電源ボタン押して画面ロックしてみると
Unity (battery) - バックグラウンド
Unity (battery) - バックグラウンド ͦͷؒ$16(16ͳͲ ΖΖࢭ·Δ
白画面 >> 黒画面 >> ロックスクリーン
検証3. FPSを下げるのは効果あるのか?
V Sync Count => Dont Sync Application.targetFrameRate = 1
Unity (fps) - fps1 (黒画面)
Unity (fps) - fps1 (黒画面) '14
Unity (battery) - fps1 (黒画面)
Unity (battery) - fps1 (黒画面) (16 ͕ ΄΅ಈ͍ͯͳ͍ /FUXPSL
ᒵ ͱ 0WFSIFBE ͕େ /FUXPSL ᒵ ͑͞ མͪண͚ ΄΅$16 ࢵ ͷΈ
Unity (cpu) - fps1 (黒画面)
Unity (cpu) - fps1 (黒画面) ฏۉ ΄΅΄΅ಈ͍ͯͳ͍
高FPS > 低FPS (CPU/GPUへのインパクト)
結論 検証1. 消費電力が大きいのは? - Native <= WebView << Unity 検証2.
黒画面効果ある? - YES. ただ画面ロックのほうが更に効果ある 検証3. FPS下げるの効果ある? - YES. GPUとCPU使用率が下がる
結論 ネットワーク - 散発リクエストしちゃだめ - Overheadは地味に電力くう - Unityは裏で定期的に通信してる 画面 -
黒っぽくしよう - 画面ロックしよう FPS - 下げよう