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

ARTのメモリ管理

haru067
April 25, 2015

 ARTのメモリ管理

haru067

April 25, 2015
Tweet

More Decks by haru067

Other Decks in Programming

Transcript

  1. "35ͷϝϞϦ؅ཧ
    %SPJE,BJHJ!IBSV

    View Slide

  2. ࣗݾ঺հ
    ˔ 5XJUUFSΫϥΠΞϯτ

    4IPPUJOH4UBSͷ։ൃऀ
    !IBSV

    View Slide

  3. ࣗݾ঺հ
    ˔ 5XJUUFSΫϥΠΞϯτ

    4IPPUJOH4UBSͷ։ൃऀ

    ʢͨ·ʹ͸ਅ໘໨ͳ࿩Λʣ
    !IBSV

    View Slide

  4. "OESPJEͷ($ͷྺ࢙
    Y
    %BMWJL7. "35

    View Slide

  5. "OESPJEͷ($ͷྺ࢙
    'SPZP
    ˔ ϚʔΫεΠʔϓ($
    ˔ ($த͸ΞϓϦέʔγϣϯ͕ఀࢭͯ͠͠·͏

    ʢ458ɼ4UPQ5IF8PSMEʣ
    Y
    %BMWJL7. "35

    View Slide

  6. "OESPJEͷ($ͷྺ࢙
    (JOHFSCSFBE
    ˔ .PTUMZ$PODVSSFOU($
    ˔ ϚʔΫεΠʔϓ($ΛΞϓϦέʔγϣϯͱ

    ΄΅ฒߦʹ࣮ߦɽఀࢭ࣌ؒ͸େ͖͘վળ
    Y
    %BMWJL7. "35

    View Slide

  7. "OESPJEͷ($ͷྺ࢙
    Y*$4 +FMMZ#FBO
    ˔ େ͖ͳมߋ͸ͳ͠
    ˔ .PTUMZ$PODVSSFOU($

    ʢฒߦϚʔΫεΠʔϓ($ʣ
    Y
    %BMWJL7. "35

    View Slide

  8. "OESPJEͷ($ͷྺ࢙
    ,JULBU
    ˔ "35ͳΔϥϯλΠϜ͕ग़ݱ
    ˔ σϑΥϧτ͸·ͩ%BMWJL7.
    Y
    %BMWJL7. "35

    View Slide

  9. "OESPJEͷ($ͷྺ࢙
    -PMMJQPQ
    ˔ "35͕σϑΥϧτʹɼ%BMWJL͸രൃ࢛ࢄ
    ˔ ϥϯλΠϜ͕ସΘͬͯ($ͱ͔৭ʑͱมΘͬͨ
    Y
    %BMWJL7. "35

    View Slide

  10. Կ͕มΘͬͨͷ͔ʁ

    View Slide

  11. ฒߦ($ͷఀࢭ࣌ؒ

    View Slide

  12. %BMWJL7.
    ˔ ϧʔτεΩϟϯͱ࠶ϚʔΫͰΞϓϦ͕ఀࢭ͢Δ
    "35
    ˔ ϧʔτεΩϟϯͱ࠶ϚʔΫͷҰ෦Λฒߦʹॲཧ
    ͕͜͜มΘͬͨɿฒߦ($ͷఀࢭՕॴ
    ϧʔτ

    εΩϟϯ
    ϚʔΫ ࠶ϚʔΫ εΠʔϓ
    ϧʔτ

    εΩϟϯ
    ϚʔΫ ࠶ϚʔΫ εΠʔϓ

    View Slide

  13. %BMWJL7.
    ˔ ϧʔτεΩϟϯͱ࠶ϚʔΫͰΞϓϦ͕ఀࢭ͢Δ
    "35
    ˔ ϧʔτεΩϟϯͱ࠶ϚʔΫͷҰ෦Λฒߦʹॲཧ
    ͕͜͜มΘͬͨɿฒߦ($ͷఀࢭՕॴ
    ϧʔτ

    εΩϟϯ
    ϚʔΫ ࠶ϚʔΫ εΠʔϓ
    ϧʔτ

    εΩϟϯ
    ϚʔΫ ࠶ϚʔΫ εΠʔϓ
    dϛϦඵ͙Β͍

    View Slide

  14. %BMWJL7.
    ˔ ϧʔτεΩϟϯͱ࠶ϚʔΫͰΞϓϦ͕ఀࢭ͢Δ
    "35
    ˔ ϧʔτεΩϟϯͱ࠶ϚʔΫͷҰ෦Λฒߦʹॲཧ
    ͕͜͜มΘͬͨɿฒߦ($ͷఀࢭՕॴ
    ϧʔτ

    εΩϟϯ
    ϚʔΫ ࠶ϚʔΫ εΠʔϓ
    ϧʔτ

    εΩϟϯ
    ϚʔΫ ࠶ϚʔΫ εΠʔϓ

    View Slide

  15. %BMWJL7.
    ˔ ϧʔτεΩϟϯͱ࠶ϚʔΫͰΞϓϦ͕ఀࢭ͢Δ
    "35
    ˔ ϧʔτεΩϟϯͱ࠶ϚʔΫͷҰ෦Λฒߦʹॲཧ
    ͕͜͜มΘͬͨɿฒߦ($ͷఀࢭՕॴ
    ϧʔτ

    εΩϟϯ
    ϚʔΫ ࠶ϚʔΫ εΠʔϓ
    ϧʔτ

    εΩϟϯ
    ϚʔΫ ࠶ϚʔΫ εΠʔϓ
    ϛϦඵ͙Β͍

    View Slide

  16. "35ͷฒߦ($εΰΠʂ

    View Slide

  17. ฒߦ͡Όͳ͍΄͏͸ʁ
    ˔ 458($
    ˔ MPHDBUʹग़ͯ͘Δ($@'03@"--0$͸͜Ε
    ˔ ϝϞϦྖҬ͕ෆ଍͢Δͱൃੜ
    ˔ ฏؾͰΞϓϦ͕਺ඵࢭ·ͬͨΓ͢Δ
    ൃੜ͢Δͱ໌Β͔ʹϠό͍

    View Slide

  18. ฒߦ͡Όͳ͍΄͏͸ʁ
    ˔ 458($
    ˔ MPHDBUʹग़ͯ͘Δ($@'03@"--0$͸͜Ε
    ˔ ϝϞϦྖҬ͕ෆ଍͢Δͱൃੜ
    ˔ ฏؾͰΞϓϦ͕਺ඵࢭ·ͬͨΓ͢Δ
    ൃੜ͢Δͱ໌Β͔ʹϠό͍

    View Slide

  19. ϩάݟΔͱׂͱൃੜͯͨ͠Γ͢Δ

    View Slide

  20. ʀʅЧʆ

    View Slide

  21. 458($ͷൃੜݪҼͦͷ̍
    ˔ அยԽʹΑΔϝϞϦׂ౰ͯͷࣦഊ

    ʮۭ͍ͯΔͱ͜Ζ͸νϥϗϥ͋Δ͚ͲೖΒͳ͍ʯ
    ˔ ΞϓϦέʔγϣϯ͸͝ΈͷճऩΛ଴ͨͳ͍ͱ͍
    ͚ͳ͍
    ώʔϓ ۭ͖ྖҬ
    ࢖༻த
    PCK
    ʁ

    View Slide

  22. ʁ

    View Slide

  23. σϑϥά͢Ε͹͍͍͡ΌΜ
    ˔ σϑϥάʹ͸ੌ͍͕͔͔࣌ؒΔ
    ˔ ώʔϓΛԿ౓΋εΩϟϯ͢Δඞཁ͕͋Δ
    ˔ σϑϥά͍ͯ͠ΔؒΞϓϦέʔγϣϯ͕ఀࢭ
    ˔ ͱͯ΋ͭΒ͍

    View Slide

  24. "35͸Ͳ͏ͯ͠Δͷ
    ˔ େ͖͍ΦϒδΣΫτ͕ॾѱͷࠜݯ
    ώʔϓ ۭ͖ྖҬ
    ࢖༻த
    PCK

    View Slide

  25. "35͸Ͳ͏ͯ͠Δͷ
    ˔ େ͖͍ΦϒδΣΫτ͕ॾѱͷࠜݯ

    ʮσϒ͸ిंʹ৐Δͳʯ
    ώʔϓ ۭ͖ྖҬ
    ࢖༻த
    PCK

    View Slide

  26. ͕͜͜มΘͬͨɿஅยԽରࡦ
    ˔ େ͖͍ΦϒδΣΫτΛผͷྖҬͰ؅ཧ

    ʮσϒઐ༻ं྆Λͭ͘Ζ͏ʯ
    ˔ -BSHF0CKFDU4QBDFʢ-04ʣ
    ௨ৗ༻ ۭ͖ྖҬ
    ࢖༻த
    Ͱ͔͍΍ͭΒʢେ͖Ίͷ഑ྻͱ͔ʣ༻

    View Slide

  27. "35͕Μ͹ͬͯΔ

    View Slide

  28. 458($ͷൃੜݪҼͦͷ̎
    ˔ ϝϞϦׂ౰͕ܹͯͯ͘͠ฒߦ($͕௥͍͔ͭͳ͍
    ΞϓϦ࣮ߦ

    View Slide

  29. 458($ͷൃੜݪҼͦͷ̎
    ˔ ϝϞϦׂ౰͕ܹͯͯ͘͠ฒߦ($͕௥͍͔ͭͳ͍
    ฒߦ($
    ΞϓϦ࣮ߦ

    View Slide

  30. 458($ͷൃੜݪҼͦͷ̎
    ˔ ϝϞϦׂ౰͕ܹͯͯ͘͠ฒߦ($͕௥͍͔ͭͳ͍
    ฒߦ($
    ΞϓϦ࣮ߦ ΞϓϦ࣮ߦ

    View Slide

  31. 458($ͷൃੜݪҼͦͷ̎
    ˔ ϝϞϦׂ౰͕ܹͯͯ͘͠ฒߦ($͕௥͍͔ͭͳ͍
    ฒߦ($
    ΞϓϦ࣮ߦ ΞϓϦ࣮ߦ
    ฒߦ($

    View Slide

  32. 458($ͷൃੜݪҼͦͷ̎
    ˔ ϝϞϦׂ౰͕ܹͯͯ͘͠ฒߦ($͕௥͍͔ͭͳ͍
    ฒߦ($
    ΞϓϦ࣮ߦ ΞϓϦ࣮ߦ
    ฒߦ($
    ϝϞϦਚ͖·ͨ͠

    View Slide

  33. 458($ͷൃੜݪҼͦͷ̎
    ˔ ϝϞϦׂ౰͕ܹͯͯ͘͠ฒߦ($͕௥͍͔ͭͳ͍
    ฒߦ($
    ΞϓϦ࣮ߦ ΞϓϦ࣮ߦ
    ฒߦ($
    ϝϞϦਚ͖·ͨ͠
    458($

    View Slide

  34. 458($ͷൃੜݪҼͦͷ̎
    ˔ ϝϞϦׂ౰͕ܹͯͯ͘͠ฒߦ($͕௥͍͔ͭͳ͍
    ฒߦ($
    ΞϓϦ࣮ߦ ΞϓϦ࣮ߦ
    ฒߦ($
    ϝϞϦਚ͖·ͨ͠
    458($

    View Slide

  35. ฒߦ($ૣΊʹ΍Ε͹͍͍͡ΌΜ
    ˔ ͍͍ͩͨ͋ͬͯΔ
    ˔ "35͸%BMWJLΑΓݡ͘ฒߦ($Λ࣮ߦͯ͠Δ
    ˔ جຊతʹ͸ۭ͖ྖҬ͕Ұఆ஋Λ௒͑ͨΒ($
    ˔ "35͸ϝϞϦׂ౰ͯස౓ͱ͔΋ߟྀͭͭ͠($

    View Slide

  36. "35͕Μ͹ͬͯΔ

    View Slide

  37. "35ͷఀࢭ࣌ؒ·ͱΊ
    ˔ ฒߦ($ͰɼΞϓϦΛఀࢭ্ͤͨ͞ͰͷॲཧΛ࡟ݮ
    ˔ 458($ͷൃੜස౓Λ཈͑Δ޻෉
    ˔ -BSHF0CKFDU4QBDFʹΑΔஅยԽରࡦ
    ˔ ΑΓ͜·໨ʹɼલ΋ͬͯฒߦ($
    ฏۉఀࢭ࣌ؒΛ୹͘
    ௕࣌ؒͷఀࢭΛ཈͑Δ

    View Slide

  38. ΊͰͨ͠ʁ

    View Slide

  39. ˔ 458($ͷൃੜ͸཈͑ΒΕΔ
    ˔ εϧʔϓοτʢ࣮ߦ࣌ؒʣ͸ѱ͘ͳΔ
    Ή΍Έʹฒߦ($Λ࣮ߦ͍͍ͯ͠ͷ͔ʁ

    View Slide

  40. ˔ 458($ͷൃੜ͸཈͑ΒΕΔ
    ˔ εϧʔϓοτʢ࣮ߦ࣌ؒʣ͸ѱ͘ͳΔ
    Ή΍Έʹฒߦ($Λ࣮ߦ͍͍ͯ͠ͷ͔ʁ
    ࣮ߦ࣌ؒ͸ͬͪ͜ͷ΄͏͕୹͍

    View Slide

  41. εϧʔϓοτ

    View Slide

  42. ͕͜͜มΘͬͨɿฒྻ($
    ˔ ($ͷॲཧΛฒྻ࣮ߦͯ͠ߴ଎Խ
    ˔ ϚϧνίΞ$16౥ࡌ୺຤͕૿͑ͯΔ͜ͱͩ͠
    ˔ ౓ͷ($ʹ͔͔Δ࣌ؒΛ୹ॖ
    ˔ ࠶ϚʔΫͷఀࢭ͢Δॲཧ΋୹͘ͳͬͯخ͍͠
    ϧʔτ

    εΩϟϯ
    ϚʔΫ ࠶ϚʔΫ εΠʔϓ

    View Slide

  43. ͕͜͜มΘͬͨɿฒྻ($
    ˔ ($ͷॲཧΛฒྻ࣮ߦͯ͠ߴ଎Խ
    ˔ ϚϧνίΞ$16౥ࡌ୺຤͕૿͑ͯΔ͜ͱͩ͠
    ˔ ౓ͷ($ʹ͔͔Δ࣌ؒΛ୹ॖ
    ˔ ࠶ϚʔΫͷఀࢭ͢Δॲཧ΋୹͘ͳͬͯخ͍͠

    View Slide

  44. ͕͜͜มΘͬͨɿੈ୅ผ($
    ˔ ଟ͘ͷΦϒδΣΫτ͸୹໋Ͱ͋Δɼͱ͍͏ԾઆΛ
    ར༻ͨ͠($
    ˔ 4UJDLZNBSLCJUT($
    ˔ લճͷ($Ҏ߱ʹ࡞ΒΕͨ͝Έ͚ͩճऩ
    ($ ($

    View Slide

  45. ͕͜͜มΘͬͨɿੈ୅ผ($
    ˔ ଟ͘ͷΦϒδΣΫτ͸୹໋Ͱ͋Δɼͱ͍͏ԾઆΛ
    ར༻ͨ͠($
    ˔ 4UJDLZNBSLCJUT($
    ˔ લճͷ($Ҏ߱ʹ࡞ΒΕͨ͝Έ͚ͩճऩ
    ($ ($
    ($ର৅
    ($ର৅֎

    View Slide

  46. ͕͜͜มΘͬͨɿੈ୅ผ($
    ˔ ଟ͘ͷΦϒδΣΫτ͸୹໋Ͱ͋Δɼͱ͍͏ԾઆΛ
    ར༻ͨ͠($
    ˔ 4UJDLZNBSLCJUT($
    ˔ લճͷ($Ҏ߱ʹ࡞ΒΕͨ͝Έ͚ͩճऩ
    ($ ($
    ($ର৅
    ($ର৅֎
    ϐϯϙΠϯτͰ͝ΈΛճऩ

    View Slide

  47. ͕͜͜มΘͬͨɿΞϩέʔλ
    ˔ %BMWJL7.ɿEMNBMMPD
    ˔ HMJCDͷNBMMPDʢͷେݩʹͳͬͨΞϩέʔλʣ
    ˔ ฒߦϝϞϦׂ౰ͯ͸ϩοΫͰഉଞ੍ޚ
    ˔ "35ɿ3PT"MMPD
    ˔ "35ಠࣗͷϝϞϦΞϩέʔλ
    ˔ 4FHSFHBUFEGSFFMJTU
    ˔ ฒߦϝϞϦׂ౰ͯʹରԠ

    View Slide

  48. ฒߦϝϞϦׂ౰ͯ
    ώʔϓ ۭ͖ྖҬ
    ࢖༻த
    εϨου
    εϨου

    View Slide

  49. ฒߦϝϞϦׂ౰ͯ
    ώʔϓ ۭ͖ྖҬ
    ࢖༻த
    εϨου
    new Object();
    εϨου
    new Object();

    View Slide

  50. ·ͱΊ
    ˔ "35͕Μ͹ͬͯΔ

    View Slide

  51. ·ͱΊ
    ˔ "35͕Μ͹ͬͯΔ
    ˔ ͱ͍͏ΑΓ͸%BMWJL7.͕ΨόΨόͩͬͨʁ
    ˔ ͱʹ͔͘ؤுͬͯΔɼࠓޙʹ΋ظ଴

    View Slide

  52. ·ͱΊ
    ˔ ฒߦ($ͷఀࢭՕॴ͕ΑΓ୹͘ͳͬͨ
    ˔ 458($ͷൃੜස౓͕௿͘ͳͬͨ
    ˔ -BSHF0CKFDU4QBDFʹΑΔஅยԽରࡦ
    ˔ ͜·໨ʹฒߦ($
    ˔ εϧʔϓοτ΋վળ
    ˔ ฒߦ($ɼੈ୅ผ($
    ˔ ϝϞϦׂ౰ͯͷฒߦॲཧʹରԠ
    ˔ 3PT"MMPD

    View Slide