$30 off During Our Annual Pro Sale. View Details »

Unity energy usage

mattak
November 29, 2017

Unity energy usage

Unity3D battery usage research

mattak

November 29, 2017
Tweet

More Decks by mattak

Other Decks in Programming

Transcript

  1. Unityと消費電力
    Gotanda.unity #3
    2017/11/29
    @mattak

    View Slide

  2. モチベーション
    位置ゲームなど…
    - 屋外
    - 充電できない環境で長時間遊ばれる
    - バッテリーくいすぎると不評
    => Unityだとどんな感じか気になったので調査

    View Slide

  3. 実験
    端末:
    - iPhoneX (iOS 11.1)
    比較:
    - iOS Native
    - WebView
    - Unity

    View Slide

  4. 動作
    白表示する
    Unity
    - Canvas & Image

    View Slide

  5. 検証1.
    Native/WebView/Unity
    消費電力が大きいのは?

    View Slide

  6. iOS Native

    View Slide

  7. iOS Native (energy)

    View Slide

  8. iOS Native (energy)
    ΄΅%JTQMBZ ੨

    $16 ࢵ
    ͸ىಈ࣌ͷΈ

    View Slide

  9. iOS Native (cpu)

    View Slide

  10. iOS Native (cpu)
    $16͸ىಈ࣌ͷΈ

    View Slide

  11. WebView

    View Slide

  12. WebView (energy)

    View Slide

  13. WebView (energy)
    ॳظ$16 ࢵ
    ͕एׯ
    ΄΅%JTQMBZ ੨

    View Slide

  14. WebView (cpu)

    View Slide

  15. LocalでのHTML表示だったので、
    通信して表示みる

    View Slide

  16. WebView (energy) - 通信表示

    View Slide

  17. WebView (energy) - 通信表示
    /FUXPSL ᒵ
    ͱ
    0WFSIFBE ੺

    Ͱిྗ͘͏

    View Slide

  18. 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: 散発的な通信 は電池食う (通信すると待機状態になる)

    View Slide

  19. WebView (energy) - 通信表示
    ௨৴଴ػ ੺

    ௨৴։࢝ ᒵ

    View Slide

  20. Unity

    View Slide

  21. Unity (energy)

    View Slide

  22. Χϥϑϧ

    View Slide

  23. Unity (energy)
    %JTQMBZ ੨
    (16 ྘
    ͕൒ʑ
    $16 ࢵ
    ͸ৗʹ

    View Slide

  24. Unity (energy)
    ௨৴։࢝ ᒵ

    ௨৴଴ػ ੺

    View Slide

  25. Network?
    UnityAnalyticsが有効になっていた!

    View Slide

  26. 外してみたが変わらず…

    View Slide

  27. 一旦諦めてCPUの状態をみる

    View Slide

  28. Unity (cpu)

    View Slide

  29. Unity (cpu)
    ཪͰͣͬͱήʔϜϧʔϓ͕
    ճ͍ͬͯΔ

    View Slide

  30. 検証2.
    画面表示を黒にするのは効果あるのか?

    View Slide

  31. バッテリーセーバー機能
    - 画面が下をむくと自動的に黒

    View Slide

  32. 動作
    黒表示する
    Unity
    - Canvas & Image

    View Slide

  33. Unity (battery) - 白画面

    View Slide

  34. Unity (battery) - 黒画面

    View Slide

  35. Unity (battery) - 黒画面
    %JTQMBZ ੨

    ͕ݮͬͯΔʂ

    View Slide

  36. Native iOSでも同様に黒にしてみる

    View Slide

  37. Native iOS (battery) - 黒画面

    View Slide

  38. Native iOS (battery) - 黒画面
    ΄΅
    όοςϦʔফඅͳ͠

    View Slide

  39. よく観察すると、最近のOSは頻繁に黒画面になる
    - ロックスクリーンが黒っぽい
    - 数秒で輝度が下がる
    - …

    View Slide

  40. ちなみに、電源ボタン押して画面ロックしてみると

    View Slide

  41. Unity (battery) - バックグラウンド

    View Slide

  42. Unity (battery) - バックグラウンド
    ͦͷؒ͸$16(16ͳͲ
    ΋Ζ΋Ζࢭ·Δ

    View Slide

  43. 白画面 >> 黒画面 >> ロックスクリーン

    View Slide

  44. 検証3.
    FPSを下げるのは効果あるのか?

    View Slide

  45. V Sync Count => Dont Sync
    Application.targetFrameRate = 1

    View Slide

  46. Unity (fps) - fps1 (黒画面)

    View Slide

  47. Unity (fps) - fps1 (黒画面)
    '14͸

    View Slide

  48. Unity (battery) - fps1 (黒画面)

    View Slide

  49. Unity (battery) - fps1 (黒画面)
    (16 ྘
    ͕
    ΄΅ಈ͍ͯͳ͍
    /FUXPSL ᒵ
    ͱ
    0WFSIFBE ੺
    ͕େ൒
    /FUXPSL ᒵ
    ͑͞
    མͪண͚͹
    ΄΅$16 ࢵ
    ͷΈ

    View Slide

  50. Unity (cpu) - fps1 (黒画面)

    View Slide

  51. Unity (cpu) - fps1 (黒画面)
    ฏۉ
    ΄΅΄΅ಈ͍ͯͳ͍

    View Slide

  52. 高FPS > 低FPS
    (CPU/GPUへのインパクト)

    View Slide

  53. 結論
    検証1. 消費電力が大きいのは?
    - Native <= WebView << Unity
    検証2. 黒画面効果ある?
    - YES. ただ画面ロックのほうが更に効果ある
    検証3. FPS下げるの効果ある?
    - YES. GPUとCPU使用率が下がる

    View Slide

  54. 結論
    ネットワーク
    - 散発リクエストしちゃだめ
    - Overheadは地味に電力くう
    - Unityは裏で定期的に通信してる
    画面
    - 黒っぽくしよう
    - 画面ロックしよう
    FPS
    - 下げよう

    View Slide