Member-only story
DevTool-Memory Debugging
๐ Flutter Memory Debugging Series
- Part 1. Flutter Memory Leak โ ์์ธ ํ์ ๋ฐ ์ฌ๋ก ๋ถ์
- Part 2. DevTool-Memory Debugging โ Heap Snapshot ์ค์ ๋ฐ์ดํฐ ๋ถ์
- Part 3. DevTool-Memory View โ ๋๋ฒ๊น ๋ชจ๋ ๋ฐ ๋๊ตฌ ํ์ฉ
โ์ด ๊ธ์ ๋ฉค๋ฒ ์ ์ฉ ์ฝํ ์ธ ์ด๋, [์ฌ๊ธฐ]๋ฅผ ํด๋ฆญํ์๋ฉด ์ ์ฒด ๋ด์ฉ์ ๋ฐ๋ก ํ์ธํ์ค ์ ์์ต๋๋ค.โ
memory ๋์๊ฐ ์ ๋ฐ์ํ๋์ง๋ ์ด์ ์ ์ค๋ช ํ์์ต๋๋ค. ์ด๋ฒ์๋ Memory Leak์ ํ์ธํ๋ ๋ฐฉ๋ฒ์ ์์๋ณด๊ฒ ์ต๋๋ค. ์ค์ ๋ก ์ ๋ น๊ฐ์ฒด๊ฐ ๋จ์์๋์ง ๋์ผ๋ก ํ์ธํด๋ณด์ฃ . DevTool์ Memory View์ Heap Snapshot์ ํตํด leak ์ ํ์ธํ ์ ์์ด์.
๋ณดํต ๋ฉ๋ชจ๋ฆฌ๋ CPU ๊ฐ์ ์ฑ๋ฅ ๋ถ์์ ํ ๋๋ Profile ๋ชจ๋๋ก ์คํํ์ฌ ๋ถ์ํฉ๋๋ค. Debug ๋ชจ๋๋ ๋๋ฒ๊น ์ ์ํด ์ฑ๋ฅ์ ๋ฎ์ถฐ ์คํํ๋ ๋ฐฉ์์ด๋ฏ๋ก ์ ๋ฐํ ์ธก์ ์๋ ๋ถ์ ์ ํ๊ธฐ ๋๋ฌธ์ ๋๋ค.
๋ง์ฐฌ๊ฐ์ง ๊ด์ ์์, ์๋ฎฌ๋ ์ดํฐ๋ ์๋ฎฌ๋ ์ดํฐ์์ Profile ๋ชจ๋๋ฅผ ์คํํ๋ ๊ฒ ๋ํ ๋ถ์ ์ ํฉ๋๋ค. ๊ฐ์ํ ํ๊ฒฝ ํน์ฑ์ ์ค์ ๊ธฐ๊ธฐ๋ณด๋ค ์ฑ๋ฅ์ด ๋ฎ์ ์๋ฐ์ ์๊ธฐ ๋๋ฌธ์ ๋๋ค. ์ฑ๋ฅ ์ธก์ ์ด ๋ชฉ์ ์ธ๋ฐ, ๋ฎ์ ์ฑ๋ฅ์ ๊ธฐ๋ณธ์ผ๋ก ํ๋ ํ๊ฒฝ์์ ์ธก์ ํ๋ ๊ฒ์ ๋ ผ๋ฆฌ์ ์ผ๋ก ๋ง์ง ์์ต๋๋ค.
๋ฐ๋ผ์ ์ ํํ ์ฑ๋ฅ ๋ถ์์ ์ํ๋ค๋ฉด ๋ฐ๋์ ์ค์ ๊ธฐ๊ธฐ(Physical Device)๋ฅผ ์ฐ๊ฒฐํ์ฌ Profile ๋ชจ๋๋ก ์คํํด์ผ ํฉ๋๋ค.
AndroidStudio์ main method์์ ๋ณด๋ฉด run mode๋ฅผ ์ ํํ ์ ์๋ ๋ฒํผ์ด ์์ด์. run mode๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- Run Mode (โค): Debug ๋น๋์ด์ง๋ง, IDE์ ๋๋ฒ๊ฑฐ๊ฐ ๋ถ์ฐฉ(Attach)๋์ง ์์ ์ํ์ ๋๋ค.
- Debug Mode (๐ชฒ): Debug ๋น๋์ด๋ฉฐ, IDE์ ๋๋ฒ๊ฑฐ๊ฐ ๋ถ์ฐฉ๋ ์ํ์ ๋๋ค.
- Profile Mode: AOT(Ahead-of-Time) ์ปดํ์ผ์ ์ฌ์ฉํ๋ ํน์ ๋น๋๋ก, ์ถ์ (Tracing) ๊ธฐ๋ฅ์ด ํฌํจ๋ Release ๋น๋์ ๊ฐ๊น์ต๋๋ค.
์ด๋ฒ ์ค์ต์์ ์ฐ๋ฆฌ๊ฐ ํ๊ณ ์ ํ๋๊ฒ์ ์ฑ๋ฅ ๋ถ์๋ณด๋ค๋, memory leakํ์์ ๊ด์ฐฐ์ ๊ฐ๊น์ต๋๋ค. ๊ทธ๋ฌ๋ฏ๋ก Physical Device์ฐ๊ฒฐ์์ดโฆ










