Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
ARTのメモリ管理
Search
haru067
April 25, 2015
Programming
8
15k
ARTのメモリ管理
haru067
April 25, 2015
Tweet
Share
More Decks by haru067
See All by haru067
Jetpack Compose: 効果的なComposable関数のAPI設計
haru067
2
6.8k
いかにしてアプリの起動時間を改善するか
haru067
3
2.1k
REALITY Androidにおけるマルチモジュール移行
haru067
0
1.3k
Immutable data holder
haru067
1
1.2k
Other Decks in Programming
See All in Programming
On-the-fly Suggestions of Rewriting Method Deprecations
ohbarye
2
4.8k
SwiftDataのカスタムデータストアを試してみた
1mash0
0
140
Носок на сок
bo0om
0
1.1k
Lambda(Python)の リファクタリングが好きなんです
komakichi
4
240
Optimizing JRuby 10
headius
0
570
AI時代の開発者評価について
ayumuu
0
230
20250426 GDGoC 合同新歓 - GDGoC のススメ
getty708
0
110
Empowering Developers with HTML-Aware ERB Tooling @ RubyKaigi 2025, Matsuyama, Ehime
marcoroth
2
960
Improve my own Ruby
sisshiki1969
0
100
Making TCPSocket.new "Happy"!
coe401_
1
3.1k
エンジニア向けCursor勉強会 @ SmartHR
yukisnow1823
3
12k
State of Namespace
tagomoris
5
2.4k
Featured
See All Featured
ReactJS: Keep Simple. Everything can be a component!
pedronauck
667
120k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
30
2.3k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
137
33k
How STYLIGHT went responsive
nonsquared
100
5.5k
We Have a Design System, Now What?
morganepeng
52
7.5k
A designer walks into a library…
pauljervisheath
205
24k
Reflections from 52 weeks, 52 projects
jeffersonlam
349
20k
Designing for Performance
lara
608
69k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
160
15k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
119
51k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.3k
Music & Morning Musume
bryan
47
6.5k
Transcript
"35ͷϝϞϦཧ %SPJE,BJHJ!IBSV
ࣗݾհ ˔ 5XJUUFSΫϥΠΞϯτ 4IPPUJOH4UBSͷ։ൃऀ !IBSV
ࣗݾհ ˔ 5XJUUFSΫϥΠΞϯτ 4IPPUJOH4UBSͷ։ൃऀ ʢͨ·ʹਅ໘ͳΛʣ !IBSV
"OESPJEͷ($ͷྺ࢙ Y %BMWJL7. "35
"OESPJEͷ($ͷྺ࢙ 'SPZP ˔ ϚʔΫεΠʔϓ($ ˔ ($தΞϓϦέʔγϣϯ͕ఀࢭͯ͠͠·͏ ʢ458ɼ4UPQ5IF8PSMEʣ Y
%BMWJL7. "35
"OESPJEͷ($ͷྺ࢙ (JOHFSCSFBE ˔ .PTUMZ$PODVSSFOU($ ˔ ϚʔΫεΠʔϓ($ΛΞϓϦέʔγϣϯͱ ΄΅ฒߦʹ࣮ߦɽఀࢭ࣌ؒେ͖͘վળ Y
%BMWJL7. "35
"OESPJEͷ($ͷྺ࢙ Y*$4 +FMMZ#FBO ˔ େ͖ͳมߋͳ͠ ˔ .PTUMZ$PODVSSFOU($ ʢฒߦϚʔΫεΠʔϓ($ʣ
Y %BMWJL7. "35
"OESPJEͷ($ͷྺ࢙ ,JULBU ˔ "35ͳΔϥϯλΠϜ͕ग़ݱ ˔ σϑΥϧτ·ͩ%BMWJL7. Y
%BMWJL7. "35
"OESPJEͷ($ͷྺ࢙ -PMMJQPQ ˔ "35͕σϑΥϧτʹɼ%BMWJLരൃ࢛ࢄ ˔ ϥϯλΠϜ͕ସΘͬͯ($ͱ͔৭ʑͱมΘͬͨ Y
%BMWJL7. "35
Կ͕มΘͬͨͷ͔ʁ
ฒߦ($ͷఀࢭ࣌ؒ
%BMWJL7. ˔ ϧʔτεΩϟϯͱ࠶ϚʔΫͰΞϓϦ͕ఀࢭ͢Δ "35 ˔ ϧʔτεΩϟϯͱ࠶ϚʔΫͷҰ෦Λฒߦʹॲཧ ͕͜͜มΘͬͨɿฒߦ($ͷఀࢭՕॴ ϧʔτ εΩϟϯ ϚʔΫ
࠶ϚʔΫ εΠʔϓ ϧʔτ εΩϟϯ ϚʔΫ ࠶ϚʔΫ εΠʔϓ
%BMWJL7. ˔ ϧʔτεΩϟϯͱ࠶ϚʔΫͰΞϓϦ͕ఀࢭ͢Δ "35 ˔ ϧʔτεΩϟϯͱ࠶ϚʔΫͷҰ෦Λฒߦʹॲཧ ͕͜͜มΘͬͨɿฒߦ($ͷఀࢭՕॴ ϧʔτ εΩϟϯ ϚʔΫ
࠶ϚʔΫ εΠʔϓ ϧʔτ εΩϟϯ ϚʔΫ ࠶ϚʔΫ εΠʔϓ dϛϦඵ͙Β͍
%BMWJL7. ˔ ϧʔτεΩϟϯͱ࠶ϚʔΫͰΞϓϦ͕ఀࢭ͢Δ "35 ˔ ϧʔτεΩϟϯͱ࠶ϚʔΫͷҰ෦Λฒߦʹॲཧ ͕͜͜มΘͬͨɿฒߦ($ͷఀࢭՕॴ ϧʔτ εΩϟϯ ϚʔΫ
࠶ϚʔΫ εΠʔϓ ϧʔτ εΩϟϯ ϚʔΫ ࠶ϚʔΫ εΠʔϓ
%BMWJL7. ˔ ϧʔτεΩϟϯͱ࠶ϚʔΫͰΞϓϦ͕ఀࢭ͢Δ "35 ˔ ϧʔτεΩϟϯͱ࠶ϚʔΫͷҰ෦Λฒߦʹॲཧ ͕͜͜มΘͬͨɿฒߦ($ͷఀࢭՕॴ ϧʔτ εΩϟϯ ϚʔΫ
࠶ϚʔΫ εΠʔϓ ϧʔτ εΩϟϯ ϚʔΫ ࠶ϚʔΫ εΠʔϓ ϛϦඵ͙Β͍
"35ͷฒߦ($εΰΠʂ
ฒߦ͡Όͳ͍΄͏ʁ ˔ 458($ ˔ MPHDBUʹग़ͯ͘Δ($@'03@"--0$͜Ε ˔ ϝϞϦྖҬ͕ෆ͢Δͱൃੜ ˔ ฏؾͰΞϓϦ͕ඵࢭ·ͬͨΓ͢Δ ൃੜ͢Δͱ໌Β͔ʹϠό͍
ฒߦ͡Όͳ͍΄͏ʁ ˔ 458($ ˔ MPHDBUʹग़ͯ͘Δ($@'03@"--0$͜Ε ˔ ϝϞϦྖҬ͕ෆ͢Δͱൃੜ ˔ ฏؾͰΞϓϦ͕ඵࢭ·ͬͨΓ͢Δ ൃੜ͢Δͱ໌Β͔ʹϠό͍
ϩάݟΔͱׂͱൃੜͯͨ͠Γ͢Δ
ʀʅЧʆ
458($ͷൃੜݪҼͦͷ̍ ˔ அยԽʹΑΔϝϞϦׂͯͷࣦഊ ʮۭ͍ͯΔͱ͜Ζνϥϗϥ͋Δ͚ͲೖΒͳ͍ʯ ˔ ΞϓϦέʔγϣϯ͝ΈͷճऩΛͨͳ͍ͱ͍ ͚ͳ͍ ώʔϓ ۭ͖ྖҬ ༻த
PCK ʁ
ʁ
σϑϥά͢Ε͍͍͡ΌΜ ˔ σϑϥάʹੌ͍͕͔͔࣌ؒΔ ˔ ώʔϓΛԿεΩϟϯ͢Δඞཁ͕͋Δ ˔ σϑϥά͍ͯ͠ΔؒΞϓϦέʔγϣϯ͕ఀࢭ ˔ ͱͯͭΒ͍
"35Ͳ͏ͯ͠Δͷ ˔ େ͖͍ΦϒδΣΫτ͕ॾѱͷࠜݯ ώʔϓ ۭ͖ྖҬ ༻த PCK
"35Ͳ͏ͯ͠Δͷ ˔ େ͖͍ΦϒδΣΫτ͕ॾѱͷࠜݯ ʮσϒిंʹΔͳʯ ώʔϓ ۭ͖ྖҬ ༻த PCK
͕͜͜มΘͬͨɿஅยԽରࡦ ˔ େ͖͍ΦϒδΣΫτΛผͷྖҬͰཧ ʮσϒઐ༻ं྆Λͭ͘Ζ͏ʯ ˔ -BSHF0CKFDU4QBDFʢ-04ʣ ௨ৗ༻ ۭ͖ྖҬ ༻த Ͱ͔͍ͭΒʢେ͖Ίͷྻͱ͔ʣ༻
"35͕ΜͬͯΔ
458($ͷൃੜݪҼͦͷ̎ ˔ ϝϞϦׂ͕ܹͯͯ͘͠ฒߦ($͕͍͔ͭͳ͍ ΞϓϦ࣮ߦ
458($ͷൃੜݪҼͦͷ̎ ˔ ϝϞϦׂ͕ܹͯͯ͘͠ฒߦ($͕͍͔ͭͳ͍ ฒߦ($ ΞϓϦ࣮ߦ
458($ͷൃੜݪҼͦͷ̎ ˔ ϝϞϦׂ͕ܹͯͯ͘͠ฒߦ($͕͍͔ͭͳ͍ ฒߦ($ ΞϓϦ࣮ߦ ΞϓϦ࣮ߦ
458($ͷൃੜݪҼͦͷ̎ ˔ ϝϞϦׂ͕ܹͯͯ͘͠ฒߦ($͕͍͔ͭͳ͍ ฒߦ($ ΞϓϦ࣮ߦ ΞϓϦ࣮ߦ ฒߦ($
458($ͷൃੜݪҼͦͷ̎ ˔ ϝϞϦׂ͕ܹͯͯ͘͠ฒߦ($͕͍͔ͭͳ͍ ฒߦ($ ΞϓϦ࣮ߦ ΞϓϦ࣮ߦ ฒߦ($ ϝϞϦਚ͖·ͨ͠
458($ͷൃੜݪҼͦͷ̎ ˔ ϝϞϦׂ͕ܹͯͯ͘͠ฒߦ($͕͍͔ͭͳ͍ ฒߦ($ ΞϓϦ࣮ߦ ΞϓϦ࣮ߦ ฒߦ($ ϝϞϦਚ͖·ͨ͠ 458($
458($ͷൃੜݪҼͦͷ̎ ˔ ϝϞϦׂ͕ܹͯͯ͘͠ฒߦ($͕͍͔ͭͳ͍ ฒߦ($ ΞϓϦ࣮ߦ ΞϓϦ࣮ߦ ฒߦ($ ϝϞϦਚ͖·ͨ͠ 458($
ฒߦ($ૣΊʹΕ͍͍͡ΌΜ ˔ ͍͍ͩͨ͋ͬͯΔ ˔ "35%BMWJLΑΓݡ͘ฒߦ($Λ࣮ߦͯ͠Δ ˔ جຊతʹۭ͖ྖҬ͕ҰఆΛ͑ͨΒ($ ˔ "35ϝϞϦׂͯසͱ͔ߟྀͭͭ͠($
"35͕ΜͬͯΔ
"35ͷఀࢭ࣌ؒ·ͱΊ ˔ ฒߦ($ͰɼΞϓϦΛఀࢭ্ͤͨ͞ͰͷॲཧΛݮ ˔ 458($ͷൃੜසΛ͑Δ ˔ -BSHF0CKFDU4QBDFʹΑΔஅยԽରࡦ ˔ ΑΓ͜·ʹɼલͬͯฒߦ($ ฏۉఀࢭ࣌ؒΛ͘
࣌ؒͷఀࢭΛ͑Δ
ΊͰͨ͠ʁ
˔ 458($ͷൃੜ͑ΒΕΔ ˔ εϧʔϓοτʢ࣮ߦ࣌ؒʣѱ͘ͳΔ ΉΈʹฒߦ($Λ࣮ߦ͍͍ͯ͠ͷ͔ʁ
˔ 458($ͷൃੜ͑ΒΕΔ ˔ εϧʔϓοτʢ࣮ߦ࣌ؒʣѱ͘ͳΔ ΉΈʹฒߦ($Λ࣮ߦ͍͍ͯ͠ͷ͔ʁ ࣮ߦ࣌ؒͬͪ͜ͷ΄͏͕͍
εϧʔϓοτ
͕͜͜มΘͬͨɿฒྻ($ ˔ ($ͷॲཧΛฒྻ࣮ߦͯ͠ߴԽ ˔ ϚϧνίΞ$16ࡌ͕૿͑ͯΔ͜ͱͩ͠ ˔ ͷ($ʹ͔͔Δ࣌ؒΛॖ ˔ ࠶ϚʔΫͷఀࢭ͢Δॲཧ͘ͳͬͯخ͍͠ ϧʔτ
εΩϟϯ ϚʔΫ ࠶ϚʔΫ εΠʔϓ
͕͜͜มΘͬͨɿฒྻ($ ˔ ($ͷॲཧΛฒྻ࣮ߦͯ͠ߴԽ ˔ ϚϧνίΞ$16ࡌ͕૿͑ͯΔ͜ͱͩ͠ ˔ ͷ($ʹ͔͔Δ࣌ؒΛॖ ˔ ࠶ϚʔΫͷఀࢭ͢Δॲཧ͘ͳͬͯخ͍͠
͕͜͜มΘͬͨɿੈผ($ ˔ ଟ͘ͷΦϒδΣΫτ໋Ͱ͋Δɼͱ͍͏ԾઆΛ ར༻ͨ͠($ ˔ 4UJDLZNBSLCJUT($ ˔ લճͷ($Ҏ߱ʹ࡞ΒΕͨ͝Έ͚ͩճऩ ($ ($
͕͜͜มΘͬͨɿੈผ($ ˔ ଟ͘ͷΦϒδΣΫτ໋Ͱ͋Δɼͱ͍͏ԾઆΛ ར༻ͨ͠($ ˔ 4UJDLZNBSLCJUT($ ˔ લճͷ($Ҏ߱ʹ࡞ΒΕͨ͝Έ͚ͩճऩ ($ ($
($ର ($ର֎
͕͜͜มΘͬͨɿੈผ($ ˔ ଟ͘ͷΦϒδΣΫτ໋Ͱ͋Δɼͱ͍͏ԾઆΛ ར༻ͨ͠($ ˔ 4UJDLZNBSLCJUT($ ˔ લճͷ($Ҏ߱ʹ࡞ΒΕͨ͝Έ͚ͩճऩ ($ ($
($ର ($ର֎ ϐϯϙΠϯτͰ͝ΈΛճऩ
͕͜͜มΘͬͨɿΞϩέʔλ ˔ %BMWJL7.ɿEMNBMMPD ˔ HMJCDͷNBMMPDʢͷେݩʹͳͬͨΞϩέʔλʣ ˔ ฒߦϝϞϦׂͯϩοΫͰഉଞ੍ޚ ˔ "35ɿ3PT"MMPD ˔
"35ಠࣗͷϝϞϦΞϩέʔλ ˔ 4FHSFHBUFEGSFFMJTU ˔ ฒߦϝϞϦׂͯʹରԠ
ฒߦϝϞϦׂͯ ώʔϓ ۭ͖ྖҬ ༻த εϨου εϨου
ฒߦϝϞϦׂͯ ώʔϓ ۭ͖ྖҬ ༻த εϨου new Object(); εϨου new Object();
·ͱΊ ˔ "35͕ΜͬͯΔ
·ͱΊ ˔ "35͕ΜͬͯΔ ˔ ͱ͍͏ΑΓ%BMWJL7.͕ΨόΨόͩͬͨʁ ˔ ͱʹ͔͘ؤுͬͯΔɼࠓޙʹظ
·ͱΊ ˔ ฒߦ($ͷఀࢭՕॴ͕ΑΓ͘ͳͬͨ ˔ 458($ͷൃੜස͕͘ͳͬͨ ˔ -BSHF0CKFDU4QBDFʹΑΔஅยԽରࡦ ˔ ͜·ʹฒߦ($ ˔
εϧʔϓοτվળ ˔ ฒߦ($ɼੈผ($ ˔ ϝϞϦׂͯͷฒߦॲཧʹରԠ ˔ 3PT"MMPD