Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Unityスマートフォンアプリの パフォーマンス最適化

Unityスマートフォンアプリの パフォーマンス最適化

Unity x Cocos2d-x大勉強会 by dots. (2015/10/17)
CyberAgentの子会社群によるゲーム事業(SGE)の
Unityの利用についてお話
主にパフォーマンス最適化についての話です

Ec2fcdc4ea7905b289967a2c4c43e154?s=128

CyberAgent SGE Engineer

October 17, 2015
Tweet

Transcript

  1. 6OJUZεϚʔτϑΥϯΞϓϦͷ ύϑΥʔϚϯε࠷దԽ גࣜձࣾαΠόʔΤʔδΣϯτ ฏদɹ৻࢘

  2. ࣗݾ঺հ •  ฏদ৻࢘ IJSBNBUTV@TIJOKJ@HO!DZCFSBHFOUDPKQ  •  ॴଐɹ גࣜձࣾαΠόʔΤʔδΣϯτ4(&౷ׅࣨ  • 

    ࢓ࣄ಺༰ ɹ4(&ͷωΠςΟϒΞϓϦͷ଎౓վળɺٕज़ࢧԉɻ   
  3. 4(&ͱ͸ʁ •  </&95>4NBSUQIPOF(BNFT&OUFSUBJONFOUT •  $ZCFS"HFOUͷࢠձࣾʹΑΔήʔϜࣄۀ

  4. $ZCFS"HFOU4(&؅׋ͷ̍̌ࣾͷωΠ ςΟϒΞϓϦͷ඼࣭νΣοΫɺύϑΥʔϚ ϯενϡʔχϯάɺෆ۩߹ରԠͳͲΛ୲౰ɻ ຊ೔͸6OJUZΞϓϦͷύϑΥʔϚϯε࠷దԽ ʹ͍ͭͯɺઆ໌͍ͨ͠·͢ɻ

  5. "HFOEB •  6OJUZεϚϗΞϓϦͷύϑΥʔϚϯε໰୊ •  $16࠷దԽ •  (16࠷దԽ •  ϝϞϦ࠷దԽ • 

    5JQT 
  6. ɹɹ  εϚʔτϑΥϯ޲͚ΞϓϦ ύϑΥʔϚϯε໰୊

  7. ΞϓϦͷશػೳΛ ࣮૷ͯ͠ΈΔͱ 

  8. ʢϦϦʔεલʹʣ௚໘͢Δ໰୊ •  ΞϓϦͷىಈ͕஗͍ •  ը໘ભҠ͕஗͍ •  ߋ৽μ΢ϯϩʔυ͕஗͍ •  ΞχϝʔγϣϯදࣔͰΧΫͭ͘ • 

    6*ͷϨεϙϯε͕ॏ͍ ˠ1$্Ͱ໰୊ͳͯ͘΋ɺεϚϗ࣮ػ্Ͱ͸ ॏ͍ɺ஗͍໰୊͕ϦϦʔεʹ޲͚ͯͷωο ΫͱͳΔɻ
  9. εϚϗΞϓϦͷύϑΥʔϚϯε໰୊ •  ར༻ՄೳͳϝϞϦ͕গͳ͍ҝɺ($͕ଟ͘ ൃੜ͢ΔͱϑϨʔϜམͪੜ͡Δɻ •  "TTFUT౳ͷ-PBE͕஗͍ •  άϥϑΟοΫε͕ॏ͍ʢϨϯμϦϯάʣ ɹɹಁաͷଟ༻ ɹ௖఺਺͕ଟ͍

    •  εΫϦϓτʢ$ʣͷίʔυ 
  10. ໰୊Λղܾ͢Δʹ͸ •  ϓϩϑΝΠϥͰϘτϧωοΫΛௐࠪ •  ΞϓϦͰઃఆ͞ΕͨϑϨʔϜϨʔτ GQT ΛԼճΔϑϨʔϜΛௐ΂Δɻ •  ͦͷϑϨʔϜ୯ҐʹɺͲͷॲཧʹ࣌ؒΛফඅ ͍ͯ͠Δ͔Λௐ΂Δɻ

    ˠ਺஋ GQT NT Ͱ໰୊ՕॴΛՄࢹԽ͢Δɻ ͦ͜Ͱ׆༂͢Δͷ͕ɺ6OJUZ1SPpMFSπʔϧʂ 
  11. 6OJUZ1SPpMFSπʔϧ ϑϨʔϜ୯ҐʹৄࡉͳύϑΥʔϚϯεσʔ λΛ৭ผͰදࣔɻ •  $16࢖༻཰ •  (16࢖༻཰ •  ϨϯμϦϯά • 

    ϝϞϦ࢖༻ঢ়گ •  ෺ཧܭࢉ •  ΦʔσΟΦ
  12. 6OJUZ1SPpMFSr$16)JFSBSDIZ •  $16ͷ઎༗࣌ؒɺൺ཰ͷৄࡉ৘ใ •  ࣮ߦ͞Εͨؔ਺ͷ$16ॲཧ࣌ؒɺݺͼग़͠ճ਺ɺ ($ର৅ͷϝϞϦ৘ใΛ֊૚ߏ଄Ͱදࣔɻ

  13. 6OJUZ1SPpMFSr$165JNFMJOF •  ࣮ߦ͞Εͨؔ਺ͷ$16ॲཧ࣌ؒΛ৭ผʹԣ๮ͷ άϥϑදࣔɻ •  ϑϨʔϜ࣌ؒͷνΣοΫɺϚϧνεϨουλε Ϋͷ֬ೝ͕ࢹ֮తʹߦ͍΍͍͢ɻ

  14. 6OJUZ1SPpMFSr(16 •  (16ͷඳը࣌ؒͷ಺༁͕֊૚తʹදࣔɻ

  15. 6OJUZ1SPpMFSr.FNPSZ4JNQMF •  ϝϞϦͷ࢖༻ঢ়گͷදࣔ 

  16. 6OJUZ1SPpMFSr.FNPSZ%FUBJMFE •  ϝϞϦͷ࢖༻ঢ়گͷදࣔ •  ࢖༻ΞηοτɾΦϒδΣΫτͷϝϞϦ৘ใදࣔ

  17. ϘτϧωοΫͷௐࠪ •  ֤'SBNFͷॲཧ࣌ؒ NT Λ֬ೝ •  λʔήοτͷ'SBNF3BUF GQT ΛԼճΔ 'SBNFΛநग़

    •  ͦͷ'SBNF಺Ͱ͕͔͔͍࣌ؒͬͯΔॲཧ Λݕূ͢Δɻ GQTNTΛج४ʣ ɹˠ$16(16ͷͲͪΒ͕ݪҼ͔ಛఆ  
  18. $16࠷దԽ

  19. $16ͷෛՙΛௐ΂Δ 6OJUZ1SPpMFSͷ$16࢖༻཰ 5JNFMJOF  )JFSBSDIZ ͰϓϩϑΝΠϧ͢Δɻ •  $16ॲཧ઎༗ൺ཰ͰԿʹෛՙ͕͔͔͍ͬͯΔ͔ •  ॲཧ࣌ؒͷ͔͔Δؔ਺Λಛఆ͢Δ

    ˠಛʹ.BJO5ISFBE಺Ͱɺ̍ϑϨʔϜ಺Ͱ GSBNF3BUFʢGQTˠNT Ҏ্ͷ΋ͷ •  ෺ཧܭࢉͷॲཧ࣌ؒΛ֬ೝ  
  20. $16ͷϘτϧωοΫ •  ($ʢΨϕʔδίϨΫγϣϯʣ •  (BNF0CKFDUͷ'JOEܥɺ(FU$PNQPOFOUͷ ݺͼग़͠ •  จࣈྻૢ࡞ॲཧ •  ܭࢉॲཧ

    •  Մมͷ഑ྻॲཧ •  TFUQBTTDBMMͷ਺
  21. $16࠷దԽrεΫϦϓτ εΫϦϓτͷ࠷దԽνΣοΫ߲໨ •  'JOEܥͷݺͼग़͠ΛߦΘͳ͍ɻ •  ഑ྻͷϓϦΞϩέʔτΛ࢖༻ɻ ɹɹՄม௕ͷ഑ྻ͸஗͘ɺݻఆ௕ͷํ͕଎͍ɻ •  จࣈྻͷ௥Ճॲཧ͸ඞཁ࠷খݶʹɻ • 

    ϦΞϧλΠϜ࣌ͷܭࢉॲཧΛ࠷খݶʹɻ •  ϧʔϓจ಺ͰଞΫϥεͷؔ਺ݺͼग़͠Λ࠷খ ݶʹɻ
  22. $16࠷దԽrεΫϦϓτ •  -PBE͸ඇಉظΛ࢖༻͢Δɻ •  ฒྻॲཧରԠ •  ΦϒδΣΫτͷΩϟογϡରԠ •  ϓϩάϥϜαΠζͷ࠷దԽ ɹɹෆඞཁͳίʔυɺ%--ͷ࡟আ

  23. (16࠷దԽ

  24. (16ϘτϧωοΫ 6OJUZ1SPpMFSͷ(16࢖༻཰ɺ'SBNF %FCVHHFSͰνΣοΫ͢Δɻ •  3FOEFSFS͕ଟ͍ʢϐΫηϧඳը͕ॏ͍ʣ •  5JMFS͕ଟ͍ʢ௖఺਺͕ଟա͗Δʣ •  TFUQBTTDBMM͕ଟ͍ɻ • 

    ϑΟϧϨʔτɺϝϞϦଳҬ෯Ͱ੍ݶ͞Ε͍ͯΔɻ
  25. (16ͷ࠷దԽ •  ѹॖςΫενϟΛ࢖༻ •  ಈ͔ͳ͍ΦϒδΣΫτΛ4UBUJDઃఆ •  ϑϥάϝϯτ͝ͱͷςΫενϟΛগͳ͘͢ Δɻ •  ΦʔόʔυϩʔΛ࠷খݶʹ͢Δɻ

    •  ӢɺໄͳͲͷ࢖༻Λ࠷খݶͱ͢Δɻ
  26. ϝϞϦ࠷దԽ

  27. ϝϞϦͷ࢖༻ঢ়گɺαΠζ֬ೝ •  6OJUZ1SPpMFSͷ.FNPSZ ϝϞϦ࢖༻ ঢ়گ ͰνΣοΫ •  ࣮ػ্ͷϩʔϨϕϧͷϝϞϦ֬ೝ 9$PEFͷ*OTUSVNFOUTͷ"MMPDBUPS -FBLT

    ɹ"OESPJE%%.4 FUD
  28. ϝϞϦͷ࠷దԽ •  ($ʢΨϕʔδίϨΫγϣϯʣΛ཈͑Δ •  ϝϞϦϦʔΫͷഉআ •  ϝϞϦ࢖༻ͷ࠷খԽ ɹɹ.#Ҏ಺Ͱಈ͘Α͏ʹɻ

  29. ($ͷಈ͖ •  ώʔϓશମΛϧʔτ͔ΒεΩϟϯͯ͠ɺࢀর͞Ε ͍ͯΔΦϒδΣΫτʹϚʔΫΛ෇͚͍ͯ͘ɻ࠷ ޙʹϚʔΫͷ෇͍͍ͯͳ͍ΦϒδΣΫτΛഁغ ͢Δɻʢ.BSL4XFFQ  •  ώʔϓͷϝϞϦෆ଍࣌ʹ($͕ىಈ͢Δɻ • 

    ࢒ϝϞϦ߹ܭʹ༨༟͕͋ͬͯ΋ɺ࿈ଓͨ͠ϒ ϩοΫ͕ແ͘ͳΔͱ($͕ىಈ͢Δɻ •  ($͕׬ྃޙɺϦΫΤετ͞ΕͨαΠζͷϝϞϦ ֬อ͕Ͱ͖ͳ͍৔߹͸ɺώʔϓྖҬͷ֦ுॲཧ ͕࣮ߦ͞ΕΔɻ
  30. ($ͷ࡟ݮํ๏ •  ϝϞϦ࢖༻ྔɺಈ͖Λ࠷খݶʹ੍ޚ ɹ.#Ҏ಺Ͱಈ࡞Ͱ͖ΔΑ͏ʹ •  ΦϒδΣΫτͷࢀর͸࠷খݶʹ •  DMBTTͰͳ͘TUSVDUΛ࢖༻ ɹDMBTT͸ώʔϓˠ($ର৅ ɹTUSVDU͸ελοΫˠ($ର৅֎

    •  ΦϒδΣΫτΛϓʔϧԽͯ͠࠶ར༻ •  ΦϒδΣΫτͷΩϟογϯά ɹɹϝϞϦ֬อʗղ์ͷճ਺ΛݮΒ͢ɻ ɹ
  31. 5JQT

  32. ΞϓϦͷΫϥογϡճආ •  ϝϞϦ࢖༻ঢ়گΛνΣοΫ͠ɺΤϥʔॲ ཧΛೖΕΔɻ ɹ(FU3VOUJNF.FNPSZ4J[F 0CKFDU  ɹ(FU.POP)FBQ4J[F  ɹ(FU.POP6TFE4J[F

     •  /VMMνΣοΫΛೖΕΔɻ •  &YDFQUJPOͷՄೳੑͷ͋Δ৔߹͸ɺUSZʙ DBUDIจͰғΉɻ
  33. ࠷దԽ࡞ۀͰେࣄͳ͜ͱ •  ରԠ୺຤ͷεϖοΫɺಛੑΛ೺Ѳ͢Δ͜ͱ •  Ͱ͖Ε͹ઃܭஈ֊͔Β࠷దԽΛҙࣝ͢Δɻ •  ΦϒδΣΫτࢦ޲Ϟσϧͷߏ଄Ͱ࡞Δɻ •  ୺຤࣮ػ্Ͱৗʹಈ࡞֬ೝ͢Δ͜ͱ • 

    ໰୊Λ̍ͭͣͭ஍ಓʹղܾ͍ͯ͘͜͠ͱ
  34. ࠷ޙʹ εϚʔτϑΥϯ޲͚ΞϓϦͷ࠷దԽ͸ɺ •  ($ΛͰ͖ΔݶΓݮΒ͢ɻ •  ը૾ͷ൒ಁաࢦఆͷ࡟ݮɻ •  4FU1BTT$BMMΛͰ͖ΔݶΓݮΒ͢ɻ •  .BJO5ISFBEͷॲཧʹ༨༟Λ࣋ͨ͢ɻ

    •  গͳ͍ϝϞϦ্Ͱ΋ಈ࡞Ͱ͖ΔΑ͏ʹɻ  Ҏ্ͰշదͳΞϓϦʹվળ͢Δ͜ͱ͕Ͱ͖·͢ɻ
  35. ͝ਗ਼ௌ͋Γ͕ͱ͏ ͍͟͝·ͨ͠ɻ