[๋๋ฒ๊น ] ๋ฉ๋ชจ๋ฆฌ ๋์๋ฅผ ์ ๊ฒํ๋ ๋ฐฉ๋ฒ - ์ฑ๋ฅ ํ๋กํ์ผ๋ฌ
๋ฉ๋ชจ๋ฆฌ ๋์์ ๊ด๋ จ๋ ํฌ์คํ ์ ์๋ ๋งํฌ๋ฅผ ์ฐธ๊ณ ํด์ฃผ์ธ์.
[๋๋ฒ๊น ] ๋ฉ๋ชจ๋ฆฌ ๋์์ ์ ๊ฒํ๋ ๋ฐฉ๋ฒ ์๊ฐ
์ฑ๋ฅ ํ๋กํ์ผ๋ฌ(Performance Profiler)
Visual Studio์ ์ฑ๋ฅ ํ๋กํ์ผ๋ฌ์ ๋ํด ์๊ณ ๊ณ์ ๊ฐ์? ํน์ ๋๋ฒ๊ทธ ์ค์ ์ง๋จ ๋๊ตฌ๋ฅผ ์ฌ์ฉํด๋ณธ ๊ฒฝํ์ด ์์ผ์ ๊ฐ์? Visual Studio์๋ ์๊ฐ๋ณด๋ค ๋ง์ ๊ธฐ๋ฅ๋ค์ ์ ๊ณตํฉ๋๋ค. ์ฑ๋ฅ ํ๋กํ์ผ๋ฌ๋ ์ ์ฉํ ๋๋ฒ๊น ๋๊ตฌ ์ค ํ๋์ ๋๋ค. ๋ฌผ๋ก , ๋ฒ์ ๋ง๋ค ์ ๊ณต๋๋ ๊ธฐ๋ฅ์ ์ ์ฝ์ด ์์ต๋๋ค. ๋ฒ์ ๋ณ ์์ธํ ์ฐจ์ด์ ์ ์๋ ๋งํฌ๋ฅผ ์ฐธ๊ณ ํ์ธ์.
https://visualstudio.microsoft.com/ko/vs/compare/
์, ๊ทธ๋์ ์ฑ๋ฅ ํ๋กํ์ผ๋ฌ๊ฐ ๋ฌด์์ธ์ง ๋ณด๊ฒ ์ต๋๋ค. ์ฑ๋ฅ ํ๋กํ์ผ๋ฌ๋ ๋ฉ๋ชจ๋ฆฌ ๋ฐ CPU, GPU ์ฌ์ฉ๋์ ์ ๊ฒํ๊ณ , ๋ณ๋ชฉ ํ์ ๋ฐ ๋ฉ๋ชจ๋ฆฌ ๋์ ๋ฑ์ ๋ฌธ์ ๋ฅผ ์ฐพ๋๋ฐ ์ ์ฉํ ๊ธฐ๋ฅ์ ๋๋ค. ํ๋ก๊ทธ๋จ ๊ฐ๋ฐ ์ ๋ฉ๋ชจ๋ฆฌ ๋์ ๋ฌธ์ ๊ฐ ์ ์ผ ์ฌ๊ฐํ๋ฐ์. ์ฑ๋ฅ ํ๋กํ์ผ๋ฌ๋ฅผ ์ด์ฉํ ๋ฉ๋ชจ๋ฆฌ ๋์ ํ์ธ ๊ธฐ๋ฅ์ ์ ๋ง ์ ์ฉํฉ๋๋ค. ์ฑ๋ฅ ํ๋กํ์ผ๋ฌ์ ๋ํ ๋ ์์ธํ ๋ด์ฉ์ ์๋ ๋งํฌ๋ฅผ ์ฐธ๊ณ ํ์ธ์.
https://docs.microsoft.com/ko-kr/visualstudio/profiling/?view=vs-2019
์ฑ๋ฅ ํ๋กํ์ผ๋ฌ๋ฅผ ์ด์ฉํ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋ ์ ๊ฒ ๋ฐฉ๋ฒ
MFC Dialog ํ๋ก์ ํธ ๊ธฐ๋ฐ์ผ๋ก, ์ฑ๋ฅ ํ๋กํ์ผ๋ฌ๋ฅผ ์ด์ฉํ์ฌ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋์ ์ ๊ฒํด ๋ณด๊ฒ ์ต๋๋ค. ์ฑ๋ฅ ํ๋กํ์ผ๋ฌ ๋ฉ๋ด๋ Visual Studio ์๋จ์ ๋๋ฒ๊ทธ
๋ฉ๋ด์ ์์ต๋๋ค. ๋จ์ถํค๋ Alt + F2
์
๋๋ค.
์ฑ๋ฅ ํ๋กํ์ผ๋ฌ๋ฅผ ํด๋ฆญํ๋ฉด, ์๋์ ๊ฐ์ด ๋ถ์ ๋์๊ณผ ์ฌ์ฉ ๊ฐ๋ฅํ ๋๊ตฌ๊ฐ ๋ณด์ ๋๋ค.
๋ถ์ ๋์์ ๋ณ๊ฒฝ ๋ฉ๋ด๋ฅผ ํด๋ฆญํ๋ฉด ๋ค์๊ณผ ๊ฐ์ด ์ฌ๋ฌ ์ต์ ์ด ํ์๋ฉ๋๋ค. ํ์ฌ ํ๋ก์ ํธ์ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋์ ์ ๊ฒํ๋ ค๋ฉด ๊ธฐ๋ณธ ๊ฐ์ธ '์์ ํ๋ก์ ํธ'๋ฅผ ์ฌ์ฉํ๋ฉด ๋ฉ๋๋ค. ๊ทธ ์ธ์ ์ต์ ๋ค์ ์๋ ์ค๋ช ๊ณผ ๋์ผํ์ฌ ๋ฐ๋ก ์ค๋ช ์ด ํ์ํ์ง ์๊ฒ ๋ค์.
์ด๋ฒ ์์ ์ฝ๋์์๋ Alloc ๋ฒํผ์ ํด๋ฆญํ๋ฉด, ๋ค์๊ณผ ๊ฐ์ด ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ ๋นํฉ๋๋ค.
void CMFCApplication1Dlg::OnBnClickedButton1()
{
m_pBuffer = new byte[100000];
}
๊ทธ๋ฆฌ๊ณ Free ๋ฒํผ์ ํด๋ฆญํ๋ฉด, ๋ค์๊ณผ ๊ฐ์ด ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํด์ ํฉ๋๋ค.
void CMFCApplication1Dlg::OnBnClickedButton2()
{
delete[]m_pBuffer;
m_pBuffer = nullptr;
}
์ฑ๋ฅ ํ๋กํ์ผ๋ฌ ์ต์ ์์ '์ฌ์ฉ ๊ฐ๋ฅํ ๋๊ตฌ'์์ '๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋'์ ์ฒดํฌํ๊ณ '์์' ๋ฒํผ์ ํด๋ฆญํ์ฌ ๋ฉ๋ชจ๋ฆฌ ๋ถ์์ ์์ํด ๋ณด๊ฒ ์ต๋๋ค.
์์์ ๋๋ฅด๋ฉด ์๋์ ๊ฐ์ ํ๋ฉด์ด ๋ณด์ฌ์ง๋๋ค. ์๊ฐ์ ๋ฐ๋ฅธ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋ ๊ทธ๋ํ๊ฐ ๋ณด์ด๊ณ , ์๋์๋ ์ค๋ ์ ๋ง๋ค๊ธฐ๋ผ๋ ๋ฒํผ์ด ๋ณด์ ๋๋ค.
'์ค๋ ์ ๋ง๋ค๊ธฐ'๋ฒํผ์ ํด๋ฆญํ๋ฉด, ํ์ฌ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋ ์ ๋ณด๋ฅผ ์ ์ฅํฉ๋๋ค. ๋ณธ๋ฌธ์์๋ ๋ฉ๋ชจ๋ฆฌ ํ ๋น ์ , ํ ๋น ํ, ํด์ ํ์ ์ค๋ ์ ์ ๋ณด๋ฅผ ์ ์ฅํ๋๋ก ํ๊ฒ ์ต๋๋ค.
๋ฉ๋ชจ๋ฆฌ ํ ๋น ์ ์๋ 418.71KB์ด๊ณ , ํ ๋น ํ์๋ 98.12KB๊ฐ ์ฆ๊ฐํ 516.83KB๋ก ํ์๋ฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ํด์ ํ์๋ 97.08KB๊ฐ ๊ฐ์ํ 419.74KB๊ฐ ๋ฉ๋๋ค. ๋ฉ๋ชจ๋ฆฌ ํ ๋น ์ ๊ณผ ํด์ ํ์ ์ฌ์ฉ๋์ด ๋ค๋ฆ ๋๋ค. ๋ง์น ๋ฉ๋ชจ๋ฆฌ๊ฐ ๋ชจ๋ ํด์ ๊ฐ ์๋ ๋ฏํ ๋ชจ์ต์ธ๋ฐ์. ์ด๋ ๋ณธ๋ฌธ ํ๋จ์์ ๋ค์ ์ค๋ช ํ๊ฒ ์ต๋๋ค.
์ค๋ ์ ๊ฐ์ ์ข ๋ ์์ธํ ์ ๋ณด๋ฅผ ์ทจ๋ํ๊ธฐ ์ํด์๋, ํน์ ์ค๋ ์์์ ์ฐ์ธก ๋ง์ฐ์ค๋ฅผ ํด๋ฆญํ์ฌ ๋ค๋ฅธ ์ค๋ ์๊ณผ ๋น๊ตํ ์ ์์ต๋๋ค.
์ค๋
์ #1๊ณผ #2์ ๋น๊ต ๊ฒฐ๊ณผ๋ฅผ ๋ณด๊ฒ ์ต๋๋ค. ์์ ํ๋ก์ ํธ์ ์ด๋ฆ์ด MFCApplication1์ด๋ฏ๋ก, ํด๋น ์ด๋ฆ๊ณผ ๊ด๋ จ๋ ์๋ณ์๋ฅผ ์ฐพ์๋ณด์์ต๋๋ค. ์ฐพ์ ๊ฒฐ๊ณผ CMFCApplication1Dlg::OnBnClickedButton1
์์ 100,036Byte
๊ฐ ์ฆ๊ฐํ ๋ชจ์ต์ด ๋ณด์
๋๋ค.
์ฐ์ธก ์๋จ์ 'ํ ์ฝํ
์ธ ๋ณด๊ธฐ'๋ฅผ ํด๋ฆญํ๋ฉด ์๋์ ๊ฐ์ ํ๋ฉด์ด ํ์๋ฉ๋๋ค. unsigned char[]
๋ก 100,000Byte
์ ํฌ๊ธฐ ์ฐจ์ด๊ฐ ์๋ค๊ณ ๋ณด์
๋๋ค.
๊ฐ์ ๋ฐฉ๋ฒ์ผ๋ก, ์ค๋ ์ #2์ #3์ ๋น๊ต๋ฅผ ์ค์ ํ ํ ๋ฉ๋ชจ๋ฆฌ ๊ฐ์๋์ ๋ถ์ํด๋ณด๋ฉด ์๋์ ํ๋ฉด์ด ํ์๋ฉ๋๋ค.
์, ๊ทธ๋ผ ์ฌ์ฉ์๊ฐ ์์ฑํ๊ณ ํด์ ํ ๋ฉ๋ชจ๋ฆฌ๋ ๋ง๋ํ ์ง์์ง ๊ฒ์ ํ์ธํ์ต๋๋ค. ๊ทธ๋ฐ๋ฐ ์ ์ ์ฒด ํ๋ก๊ทธ๋จ์ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋์๋ ์ฐจ์ด๊ฐ ์์๊น์? ์์์ ์๊ฐํ ๊ฐ์ ๋ฐฉ๋ฒ์ผ๋ก ์ถ์ ํด ๋ณด์๋๋ win32kfull.sys
๋ผ๋ ๊ณณ์์ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ์ด ์ฆ๊ฐํ ๊ฒ์ ํ์ธํ์ต๋๋ค. ์์ฝ์ง๋ง, ๋ ์ด์ ์๋ฏธ ์๋ ์ถ์ ์ ๋ถ๊ฐ๋ฅํ์ต๋๋ค. ์ ์ ์๋ ํ๋ ์์ด๋ผ๋ ์ ๋ณด๋ง ํ์๋๊ณ , ํ ์ฝํ
์ธ ์๋ ์ ๋ณด๊ฐ ํ์๋์ง ์์ต๋๋ค.
๊ฒฐ๋ก
MFC Dialog ํ๋ก์ ํธ ๊ธฐ์ค์ผ๋ก, win32kfull.sys
์์์ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋ ์ฆ๊ฐ์ ๋ํด์๋ ๋ช
ํํ ์ ์ ์์์ง๋ง, ์ ์ด๋ ์ฌ์ฉ์๊ฐ ์์ฑํ๊ณ ํด์ ํ ๋ฉ๋ชจ๋ฆฌ์ ์ ๊ฒ์ ๊ฐ๋ฅํ์ต๋๋ค. ์ด์ ํฌ์คํ
์์ ์ค๋ช
ํ CRT ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ณด๋ค ์ฌ์ฉํ๊ธฐ๋ ํธ๋ฆฌํ๊ณ , ๋ฌธ์ ์ ์ ์ฐพ๋ ๋ฐฉ๋ฒ๋ ๋์ฑ ์ฝ๋ค๋ ๊ฒ๋ ์ ์ ์์์ต๋๋ค. ๋ณธ๋ฌธ์์๋ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋ ์ ๊ฒ๋ง ํ์ง๋ง, CPU ๋ฐ GPU ์ ๊ฒ๋ ๊ฐ๋ฅํ๊ณ , ํ๋ก์ ํธ๋ฟ๋ง ์๋๋ผ ์คํ ํ์ผ ๋๋ ํ๋ก์ธ์ค๋ ๋ถ์๋ ๊ฐ๋ฅํ๋ค๋ ์ ์๊ณ ๊ณ์๊ธฐ ๋ฐ๋๋๋ค.
'Programming > Debugging' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋๊ธ
์ด ๊ธ ๊ณต์ ํ๊ธฐ
-
๊ตฌ๋
ํ๊ธฐ
๊ตฌ๋ ํ๊ธฐ
-
์นด์นด์คํก
์นด์นด์คํก
-
๋ผ์ธ
๋ผ์ธ
-
ํธ์ํฐ
ํธ์ํฐ
-
Facebook
Facebook
-
์นด์นด์ค์คํ ๋ฆฌ
์นด์นด์ค์คํ ๋ฆฌ
-
๋ฐด๋
๋ฐด๋
-
๋ค์ด๋ฒ ๋ธ๋ก๊ทธ
๋ค์ด๋ฒ ๋ธ๋ก๊ทธ
-
Pocket
Pocket
-
Evernote
Evernote
๋ค๋ฅธ ๊ธ
-
[๋๋ฒ๊น ] Visual Studio 2015 MFC ์๊ฒฉ ๋๋ฒ๊น (Remote Debugging)ํ๊ธฐ!
[๋๋ฒ๊น ] Visual Studio 2015 MFC ์๊ฒฉ ๋๋ฒ๊น (Remote Debugging)ํ๊ธฐ!
2020.07.16 -
[๋๋ฒ๊น ] ๋ฉ๋ชจ๋ฆฌ ๋์๋ฅผ ์ ๊ฒํ๋ ๋ฐฉ๋ฒ - ์์ ๊ด๋ฆฌ์
[๋๋ฒ๊น ] ๋ฉ๋ชจ๋ฆฌ ๋์๋ฅผ ์ ๊ฒํ๋ ๋ฐฉ๋ฒ - ์์ ๊ด๋ฆฌ์
2020.04.25 -
[๋๋ฒ๊น ] ๋ฉ๋ชจ๋ฆฌ ๋์๋ฅผ ์ ๊ฒํ๋ ๋ฐฉ๋ฒ - CRTDBG Snapshot(์์ ํฌํจ)
[๋๋ฒ๊น ] ๋ฉ๋ชจ๋ฆฌ ๋์๋ฅผ ์ ๊ฒํ๋ ๋ฐฉ๋ฒ - CRTDBG Snapshot(์์ ํฌํจ)
2020.04.14 -
[๋๋ฒ๊น ] ๋ฉ๋ชจ๋ฆฌ ๋์๋ฅผ ์ ๊ฒํ๋ ๋ฐฉ๋ฒ - CRTDBG (์์ ํฌํจ)
[๋๋ฒ๊น ] ๋ฉ๋ชจ๋ฆฌ ๋์๋ฅผ ์ ๊ฒํ๋ ๋ฐฉ๋ฒ - CRTDBG (์์ ํฌํจ)
2020.04.11