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
890
これどうやって動いてるんだ? 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
25k
アーキテクチャと Scaffolding Template
sys1yagi
8
1.5k
Androidの非同期処理をKotlinコルーチンで行う
sys1yagi
3
24k
解剖Kotlin ~バイトコードを読み解く~
sys1yagi
18
11k
Other Decks in Technology
See All in Technology
就職⽀援サービスにおけるキャリアアドバイザーのシフトスケジューリング
recruitengineers
PRO
1
140
地球に⽣きるAI —GeoAIと「中間領域」— / AI Living on Earth — GeoAI and the “Intermediate Layer” —
ykiyota
0
280
Android の公式 Skill / Android skills
yanzm
0
130
Snowflakeと仲良くなる第一歩
coco_se
4
430
【Cyber-sec+】経営層を"動かす"ための考え方
hssh2_bin
0
130
プロダクト開発から業務改善コンサルまで。事業全体へ「染み出す」ことで広がるエンジニアの可能性
ham0215
0
100
社内 AI エージェント Synapse と セマンティックレイヤーの育て方
hiroakis
2
1.7k
MCP Appsを作ってみよう
iwamot
PRO
4
540
非定型業務をAI slackbotで自動化する ~ 社内要望を自動壁打ちするbotを作った ~/automating-ad-hoc-work-with-ai-slackbot
shibayu36
0
610
SONiC Scale-Up Working Group から探る Scale-UpやUltraEthernet機能の実装方法
ebiken
PRO
1
120
Amazon Bedrock AgentCore ワークショップ JAWS UG TOHOKU / amazon-bedrock-agentcore-workshop-jawsug-tohoku-2026
gawa
9
690
日本 Fintech 未来予測レポート 2027〜2028年(手動編集版)
8maki
0
1.8k
Featured
See All Featured
Embracing the Ebb and Flow
colly
88
5.1k
Unlocking the hidden potential of vector embeddings in international SEO
frankvandijk
0
840
Raft: Consensus for Rubyists
vanstee
141
7.5k
Mobile First: as difficult as doing things right
swwweet
225
10k
Building AI with AI
inesmontani
PRO
1
1.1k
Building Flexible Design Systems
yeseniaperezcruz
330
40k
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
2
290
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
200
Prompt Engineering for Job Search
mfonobong
0
340
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.5k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
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