ะ
- ๋ง์
์ฌ ์์ ํ ํ๋กํ์ผ๋ง ๋๊ตฌ์ธ DHAT(Dynamic Heap Analysis Tool)์ด ํ์ฅ๋์์ต๋๋ค.ํ์ฉ ํ์ ๋ฉ๋ชจ๋ฆฌ ํ ๋น์ ๋ํ ๋ชจ๋ ์์ฒญ์ ๋ชจ๋ํฐ๋งํ๊ณ ๋ฆฌ์์ค ๋์, ๊ณผ๋ํ ํ ํ๋, ์ฌ์ฉ๋์ง ์์ ๋ฉ๋ชจ๋ฆฌ ํ ๋น, ๋จ๊ธฐ ํ ๋น ๋ฐ ํ์ ๋นํจ์จ์ ์ธ ๋ฐ์ดํฐ ๋ฐฐ์น๋ฅผ ์๋ณํฉ๋๋ค. ์คํ์ ๊ฐ๋ฐ ๋ฒ์ฃผ์์ DHAT๋ ํ์ค Valgrind ํดํท์ ํฌํจ๋์ด ์์ต๋๋ค(์คํํ๋ ค๋ฉด ์ด์ "--tool=exp-dhat" ๋์ "-tool=dhat" ์ต์ ์ ์ฌ์ฉํด์ผ ํจ).๊ฐ์ฅ ๋์ ๋๋ ๊ฐ์ ์ฌํญ์ DHAT์ ๊ทธ๋ํฝ ์ฌ์ฉ์ ์ธํฐํ์ด์ค๊ฐ ์ถ๊ฐ๋ ๊ฒ์ ๋๋ค. ๋ํ ๋ชจ๋ํฐ๋ง๋๋ ํ๋ก๊ทธ๋จ์ ์๋ฃํ ํ DHAT๋ ์ด์ ๊ฐ์ฅ ์ค์ํ ์ ๋ณด์ ๋ํ ์ต์ํ์ ์์ฝ๋ง ํ์ํ๊ณ ํ๋กํ์ผ๋ง ๋ฐ์ดํฐ๊ฐ ํฌํจ๋ ์ ์ฒด ๋ณด๊ณ ์๋ฅผ ํ์ผ์ ์์ฑํฉ๋๋ค. ๋ฐ์ดํฐ๋ ๋ ์ด์ ๋ ์ฝ๋๋ก ๊ทธ๋ฃนํ๋์ง ์๊ณ ์คํ ์ถ์ ํธ๋ฆฌ๋ก ์ ์ฅ๋ฉ๋๋ค. ์ํ๋ ์ธก์ ์๊ฐ ํ์ฅ๋์์ผ๋ฉฐ ๋ชจ๋ํฐ๋ง๋ ๋งค๊ฐ๋ณ์์ ์ถ๊ฐ ๋ฒ์ฃผ๊ฐ ์ถ๊ฐ๋์์ต๋๋ค. ๊ธฐ๋ก๋ ๋ณด๊ณ ์๋ฅผ ๋ณด๋ ค๋ฉด ์น ๋ธ๋ผ์ฐ์ ์์ ์คํ๋๋ ํน์ ๋ทฐ์ด dh_view.html์ด ์ ๊ณต๋ฉ๋๋ค.
- amd64(x86_64) ์์คํ ์ ๊ฒฝ์ฐ ํ์ฅ ๋ช ๋ น์ด ์ธํธ RDRAND ๋ฐ F16C์ ๋ํ ์ง์์ด ์ ๊ณต๋ฉ๋๋ค.
- Cachegrind์ Callgrind๋ ์นด์ดํฐ ๊ฐ์ ๋ฐฑ๋ถ์จ๋ก ํ์ํ๋ ์๋ก์ด ์ต์ "โshow-percs"๋ฅผ ์ ๊ณตํฉ๋๋ค.
- Linux, Android ๋ฐ Solari์ฉ Massif์์๋ "--read-inline-info" ๋ชจ๋๊ฐ ๊ธฐ๋ณธ์ ์ผ๋ก ํ์ฑํ๋์ด ์์ผ๋ฉฐ, macOS์ ๊ฒฝ์ฐ ๋ช ์์ ์ธ "--read-inline-info=yes"๊ฐ ์ฌ์ ํ ํ์ํฉ๋๋ค.
- Memcheck์์ "--xtree-leak=yes" ์ต์ (๋ฉ๋ชจ๋ฆฌ ๋์ ํ ์คํธ ๊ฒฐ๊ณผ๋ฅผ xtree ํ์์ผ๋ก ํ์)์ ์ง์ ํ๋ฉด ์ด์ "--show-leak-kinds=all" ์ต์ ์ด ์๋์ผ๋ก ํ์ฑํ๋ฉ๋๋ค. ํ์ ๊ฒฝ๋ณด๋ฅผ ๋ฐฉ์งํ๊ธฐ ์ํ ์์ ์ด ์ํ๋์์ต๋๋ค.
- ์คํ ์๋ฃ ํ ๊ฐ์ง๋ ์ค๋ฅ ๋ชฉ๋ก์ ํ์ํ๊ธฐ ์ํด "--show-error-list=no|yes" ์ต์ ๊ณผ "--show-error-list=yes"์ ํด๋นํ๋ ์ต์ "-s"๋ฅผ ์ถ๊ฐํ์ต๋๋ค. ์ด์ ์๋ ์ธ๋ถ ์ถ๋ ฅ ๋ชจ๋์ธ "-v -v"์์๋ ์ ์ฌํ ๋ชฉ๋ก์ด ํ์๋์์ง๋ง ์ด ๋ชจ๋์ ์ถ๋ ฅ์ ๋ถํ์ํ ์ ๋ณด๊ฐ ๋๋ฌด ๋ง์ ์ด์์ ํ์ต๋๋ค.
์ถ์ฒ : opennet.ru