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
メモリリークを気軽に確認する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
910
これどうやって動いてるんだ? Spring Framework/Bootのソースを読む
sys1yagi
1
1.4k
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
つくって納得、つかって実感! 大規模言語モデルことはじめ ver2.0
recruitengineers
PRO
5
1.9k
DatadogのBits Chatが開発組織にもたらしたもの / What Bits Chat Has Brought Us
sms_tech
1
280
Agent 時代の Kaggle 展望 / kaggle-in-the-agentic-era
upura
1
810
ラジオの科学
frievea
0
340
制約理論(ToC)入門 2026版
recruitengineers
PRO
8
2.5k
Invisible to AI? Making TYPO3 Sites Quotable by AI Search Systems
wolfgangwagner
0
220
Goでデータパイプラインを作ろう
sansantech
PRO
1
500
Master Dataグループ紹介資料
sansan33
PRO
1
4.8k
Breaking the Seal: Static Deobfuscation of Compiled V8 JavaScript Bytecode Malware
hshrzd
0
850
トヨタ⽣産⽅式(TPS)⼊⾨
recruitengineers
PRO
3
980
【CEDEC2026】コードレビュー支援ツール開発から学ぶ:LLMを用いた業務システムの実践的な運用設計と誤出力対策
cygames
PRO
0
850
SmartHR Engineering Team Deck
smarthr
1
2.5k
Featured
See All Featured
How to Talk to Developers About Accessibility
jct
2
520
sira's awesome portfolio website redesign presentation
elsirapls
0
320
Context Engineering - Making Every Token Count
addyosmani
9
1.1k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
6k
ラッコキーワード サービス紹介資料
rakko
1
4.4M
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
10
1.3k
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
2
4.2k
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
360
30k
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
210
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
280
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