Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
メモリリークを気軽に確認するLeakCheckerの話
Search
yagi
April 09, 2014
Technology
640
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
メモリリークを気軽に確認するLeakCheckerの話
メモリリークのチェックって大変だなぁと思って
yagi
April 09, 2014
More Decks by yagi
See All by yagi
医療現場の解像度を上げるために 開発チームが行っている取り組み
sys1yagi
0
930
これどうやって動いてるんだ? Spring Framework/Bootのソースを読む
sys1yagi
1
1.5k
Kotlin コルーチンを 理解しよう 2019 - KotlinFest2019 -
sys1yagi
40
32k
5分でわかるKotlin Coroutines Flow
sys1yagi
21
19k
Androidと非同期処理 とCoroutine1.0.0
sys1yagi
12
14k
Kotlin コルーチンを 理解しよう
sys1yagi
41
26k
アーキテクチャと Scaffolding Template
sys1yagi
8
1.5k
Androidの非同期処理をKotlinコルーチンで行う
sys1yagi
3
24k
解剖Kotlin ~バイトコードを読み解く~
sys1yagi
18
11k
Other Decks in Technology
See All in Technology
Post AI時代のリファクタリング実践記 / Refactoring in the post AI era
kaminashi
1
210
AIがコードを書く時代に、エンジニアは何で自分の価値を証明するのか / In an era where AI writes code how do engineers prove their value
carta_engineering
3
960
分析AIエージェントを育てる、動く環境を育てる
codatum
1
1k
⾮構造化データを価値に変える AI エージェント基盤とその組織
ivry_presentationmaterials
0
160
転んだ話が背中を預ける理由になる / A_story_about_falling_down_gives_you_a_reason_to_watch_each_other_s_backs.pdf
pauli
3
370
実践! SRE × AI - ABEMA における AIOps -
tetsuya28
8
3k
無理せず続ける、子育てエンジニアの学び
codmoninc
PRO
0
730
Jetson Orin Nanoとk3sとローカルLLMで音声文字起こしシステム作ってみた
y_sera15
0
120
AI駆動開発の時代になったのでトヨタ生産方式から見直す
terurou
7
5.9k
宣言型部分更新は何を解決しどこへ向かうのか
shuta13
1
400
【Data Engineering Summit2026_登壇資料】医療ビッグデータ×AIエージェントを支えるデータ基盤とハーネスエンジニアリング
jmdc_presentation
0
150
FOSS4Gを活用した自治体業務DXの試み
470715
0
150
Featured
See All Featured
So, you think you're a good person
axbom
PRO
2
2.2k
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
530
Highjacked: Video Game Concept Design
rkendrick25
PRO
1
480
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.9k
A Soul's Torment
seathinner
8
3.7k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
AI Search: Implications for SEO and How to Move Forward - #ShenzhenSEOConference
aleyda
1
1.4k
How Software Deployment tools have changed in the past 20 years
geshan
2
35k
HTML-Aware ERB: The Path to Reactive Rendering @ RubyCon 2026, Rimini, Italy
marcoroth
5
810
Typedesign – Prime Four
hannesfritz
42
3.2k
Bash Introduction
62gerente
615
220k
Reality Check: Gamification 10 Years Later
codingconduct
0
2.3k
Transcript
ϝϞϦϦʔΫΛؾܰʹ֬ ೝ͢Δ-FBL$IFDLFSͷ QPUBUPUJQT 5PTIJIJSP:BHJ
"CPVUNF 5XJUUFS!TZTZBHJ #MPHIUUQTZTZBHJDPN ! ! "OESPJE&OHJOFFSBU
ϝϞϦϦʔΫͷνΣο Ϋͬͯେมͩͳ͊
طଘπʔϧେม w 5SBDFWJFXͱ͔.FNPSZ"OBMZ[FSͳΜ͔ΊΜͲ ͍͘͞
ͬͱΧδϡΞϧʹ͍ͨ͠
ͬͱΧδϡΞϧʹ͠Α͏
-FBL$IFDLFS https://github.com/sys1yagi/leak-checker
.PEVMFT LeakCheker MemoryUsage ϦʔΫΛνΣοΫ͢Δਓ ΞϓϦͷϝϞϦ༻ঢ়گΛڭ͑ͯ͘ΕΔਓ W ILogger ϩάΛు͘ਓ
-FBL$IFDLFS LeakCheker MemoryUsage ILogger App add object start monitoring output
output
%&.0
4FUVQ apply plugin: 'android' ! repositories { mavenCentral() maven {
url 'https://raw.github.com/sys1yagi/leak-checker/master/repository' } } dependencies { compile 'com.sys1yagi:leak-checker:0.0.1' } 3FGFSFODF3FQPTJUPSZ %FQFOEFODJFT
.FNPSZ6TBHF @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); MemoryUsage.startPrintMemoryUsage(); }
! @Override public void onDestroy() { super.onDestroy(); MemoryUsage.stopPrintMemoryUsage(); } TUBSUTUPQ
-FBL$IFLFS LeakChecker.addLeakChecker(bitmap) LeakChecker.dump() SFHJTUFSPCKFDUT EVNQUIFPCKFDUPGPONFNPSZ
$VTUPN-PHHFS public class TextViewMonitorLogger implements ILogger { private TextView target;
! public TextViewMonitorLogger(TextView target) { this.target = target; } ! @Override public void print(String tag, String message) { target.setText(message); } } LeakChecker.setLogger(logger); MemoryUsage.setLogger(logger); JNQMFNFOU*-PHHFS VTFDVTUPNMPHHFS
·ͱΊ w .FNPSZ6TBHF w ΞϓϦͷϝϞϦ༻ঢ়گΛऔΕΔ w -FBL$IFDLFS w ΦϒδΣΫτΛࢹͰ͖Δ w
EVNQͯ͠ϦʔΫͯ͠Δ͔νΣοΫʂʂ w *-PHHFS w *-PHHFSΛ࣮͢ΕͲ͜ʹͰग़ͤΔ
͋Γ͕ͱ͏͍͟͝·ͨ͠
8FBSFIJSJOH IUUQTJOGPDPPLQBEDPNKPCTQPTJUJPOJPTBOESPJEBQQFOHJOFFS