Unity energy usage

85d7f0ae00c0cf1092dffcec966e3ae9?s=47 mattak
November 29, 2017

Unity energy usage

Unity3D battery usage research

85d7f0ae00c0cf1092dffcec966e3ae9?s=128

mattak

November 29, 2017
Tweet

Transcript

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

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

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

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

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

  6. iOS Native

  7. iOS Native (energy)

  8. iOS Native (energy) ΄΅%JTQMBZ ੨  $16 ࢵ ͸ىಈ࣌ͷΈ

  9. iOS Native (cpu)

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

  11. WebView

  12. WebView (energy)

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

  14. WebView (cpu)

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

  16. WebView (energy) - 通信表示

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

    Ͱిྗ͘͏
  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: 散発的な通信 は電池食う (通信すると待機状態になる)
  19. WebView (energy) - 通信表示 ௨৴଴ػ ੺ ௨৴։࢝ ᒵ

  20. Unity

  21. Unity (energy)

  22. Χϥϑϧ

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

  24. Unity (energy) ௨৴։࢝ ᒵ ௨৴଴ػ ੺

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

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

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

  28. Unity (cpu)

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

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

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

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

  33. Unity (battery) - 白画面

  34. Unity (battery) - 黒画面

  35. Unity (battery) - 黒画面 %JTQMBZ ੨  ͕ݮͬͯΔʂ

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

  37. Native iOS (battery) - 黒画面

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

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

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

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

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

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

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

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

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

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

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

  49. Unity (battery) - fps1 (黒画面) (16 ྘ ͕ ΄΅ಈ͍ͯͳ͍ /FUXPSL

    ᒵ ͱ 0WFSIFBE ੺ ͕େ൒ /FUXPSL ᒵ ͑͞ མͪண͚͹ ΄΅$16 ࢵ ͷΈ
  50. Unity (cpu) - fps1 (黒画面)

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

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

  53. 結論 検証1. 消費電力が大きいのは? - Native <= WebView << Unity 検証2.

    黒画面効果ある? - YES. ただ画面ロックのほうが更に効果ある 検証3. FPS下げるの効果ある? - YES. GPUとCPU使用率が下がる
  54. 結論 ネットワーク - 散発リクエストしちゃだめ - Overheadは地味に電力くう - Unityは裏で定期的に通信してる 画面 -

    黒っぽくしよう - 画面ロックしよう FPS - 下げよう