TPTP - Clipmarks
- ๊ณต์ ๋งํฌ ๋ง๋ค๊ธฐ
- X
- ์ด๋ฉ์ผ
- ๊ธฐํ ์ฑ
์ถ์ฒ : http://www.eclipse.org/articles/Article-TPTP-Profiling-Tool/tptpProfilingArticle.html
Copyright © 2006 International Business Machines Corp.
| Eclipse Corner Article |
TPTP ๋ฅผ ์ด์ฉํ ์๋ฐ ์ดํ๋ฆฌ์ผ์ด์ ํ๋กํ์ผ๋ง
์์ฝ
์ดํด๋ฆฝ์ค ํ ์คํธ & ์ฑ๋ฅ ํด ํ๋ซํผ (TPTP) ํ๋กํ์ผ๋ง ํด์ ์ดํด๋ฆฝ์ค ํ๋ฌ๊ทธ์ธ์ ํ๋กํ์ผํ๊ธฐ ์ํด ์ฌ์ฉํ ์ ์๋ค. ๋ก์ปฌ ์๋ฐ ์ดํ๋ฆฌ์ผ์ด์ ์ ๋ฌผ๋ก ์ฌ๋ฌ ๊ฐ์ ํธ์คํธ๋ ์๋ก ๋ค๋ฅธ ํ๋ซํผ์์ ๋์ํ๋ ๋ณต์กํ ์ดํ๋ฆฌ์ผ์ด์ ์๋ ๊ฐ๋ฅํ๋ค. ์ด ํด์ ์ดํด๋ฆฝ์ค์ ํตํฉ๋์ด ์์ผ๋ฉฐ, ์ดํด๋ฆฝ์ค ์์์ ๋์ํ๋ ์ดํ๋ฆฌ์ผ์ด์ ์ ํ๋กํ์ผ๋ง์ ํด์ค๋ค.
์ด ๋ฌธ์๋ TPTP ํ๋กํ์ผ๋ง ํด์ ๊ฐ์ง๊ณ ๋ฌธ์ ๊ฐ ์๋ ๋์์ ํ์ธํ๊ธฐ ์ํด ์๋ฐ ์ดํ๋ฆฌ์ผ์ด์ ์ ํ๋กํ์ผ ํ๋ ๋ฐฉ๋ฒ์ ์ค๋ช ํ๋ค. ํ๋กํ์ผ ์ธ์ ์ ์์ํ๋ ๋ฐฉ๋ฒ, ๋ฐ์ดํฐ ๋ถ์์ ์ํ ๋ค์ํ TPTP ๋ทฐ๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ, ์คํ ์๊ฐ์ด ๊ธด ๋ฉ์๋๋ฅผ ํ์ธํ์ฌ ์ฑ๋ฅ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ์์ค ์ฝ๋๋ก ์ด๋ํ๋ ๊ฒ๊น์ง ๋ณด์ฌ์ค๋ค.
By Valentina Popescu, IBM
February 21, 2006 (updated July 11, 2006)
๋ฒ์ญ : ์ด์ํ(calm1979@gmail.com)
2007๋ 4์ 7์ผ
์ดํ๋ฆฌ์ผ์ด์ ํ๋กํ์ผ๋ง
์ด๋ฐ ๋ฅ์ ์ฑ๋ฅ ๋ฌธ์ ๋ ๋๋ฒ๊น ๋จ๊ณ์์๋ ๋ณผ ์ ์๋ ๊ฒ๋ค์ด๋ค. ์ ํ์ ๋ฐฐํฌํ๊ธฐ ์ ์ ์ค์ ์ํฉ์์ ๋๋ ค๋ณด๋ ๊ฒ์ด ์ค์ํ๋ค. ์ดํ๋ฆฌ์ผ์ด์ ์ ๋์์ ๋ถ์ํ๊ณ , ๋ณ๋ชฉํ์, ๊ฐ์ฒด ๋์, ์์คํ ์์ ์ ํ ๊ฐ์ ์ฑ๋ฅ ๋ฌธ์ ๋ฅผ ์ฐพ์๋ด๊ธฐ ์ํด ํ๋กํ์ผ๋ง ํด์ ์ฌ์ฉํ๋ ๊ฒ์ ์ค์ํ๋ค.
์ด ๋ฌธ์๋ TPTP ํ๋กํ์ผ๋ง ํด์ ์๊ฐํ๋ค. ๊ทธ๋ฆฌ๊ณ , ์ฑ๋ฅ ๋ฌธ์ ๋ฅผ ํ์ธํ๊ณ ์์ , ๊ฒ์ฆํ๊ธฐ ์ํด ์๋ฐ ์ดํ๋ฆฌ์ผ์ด์ ์ ํ๋กํ์ผ๋ง ํ ์ ์๋๋ก TPTP ํ๋กํ์ผ๋ง ํด์ ์ฌ์ฉ๋ฒ์ ์ค๋ช ํ๋ค.
TPTP ํ๋กํ์ผ๋ง ํด
์ด ๋ฌธ์๋ ์ดํด๋ฆฝ์ค 3.2.0์ ํ์๋ก ํ๋ EMF 2.2.0 ๊ณผ XSD 2.2.0 ์ ๊ธฐ๋ฐ์ผ๋ก ํ๋ TPTP 4.2.0 ์ ์ฌ์ฉํด์ ์์ฑํ๋ค. ์ฌ๊ธฐ์์ ์ด๊ฒ๋ค์ ๊ตฌํ ์ ์๋ค. TPTP 4.2.0 ์ค์น๋ฅผ ์ํ ์ค๋ช ์ ๋ณด๋ ค๋ฉด TPTP ๋ค์ด๋ก๋ ํ์ด์ง ๋ก ๊ฐ๋ฉด๋๋ค.
TPTP ๋ฅผ ์ด์ฉํ ์๋ฐ ์ดํ๋ฆฌ์ผ์ด์ ํ๋กํ์ผ๋ง
์ด ๋ฌธ์์์ ์ฌ์ฉํ ์ ํ ์นดํ๋ก๊ทธ ์ํ ์ดํ๋ฆฌ์ผ์ด์ ์ ๊ฐ๊ฐ์ xml ํ์ผ์ ์ ์ฅ๋ ์ ํ ์ ๋ณด๋ฅผ ๋ถ์ํด์ ์ฝ์ ํ๋ฉด์ ๊ฒฐ๊ณผ๋ฅผ ์ถ๋ ฅํ๋ ๊ฐ๋จํ ์๋ฐ ์ดํ๋ฆฌ์ผ์ด์ ์ด๋ค. ์ ํ ์ ๋ณด๋ฅผ ํฌํจํ๋ xml ํ์ผ๋ค์ด ์์นํ ๋๋ ํ ๋ฆฌ ๊ฒฝ๋ก๋ Product.java ํ๋ก๊ทธ๋จ์ ์ธ์๋ก ์ฃผ์ด์ง๋ค. ์ ํ ์ ๋ณด๋ฅผ ํฌํจํ๊ณ ์๋ xml ํ์ผ๋ค์ ์์ ์คํํ๊ธฐ์์ ์ ๊ณตํ๋ค.
ํ๋กํ์ผ๋ง ๋ชจ๋๋ก ์ดํ๋ฆฌ์ผ์ด์ ์์ํ๊ธฐ
์ํ ์ดํ๋ฆฌ์ผ์ด์ ์ ์ค์นํ ํ์, ์ฒซ ๋จ๊ณ๋ก ์ ํ ์นดํ๋ก๊ทธ ์ดํ๋ฆฌ์ผ์ด์ ์ ํ๋กํ์ผ๋ง ๋ชจ๋๋ก ์คํํ๋ค. ์๋ ๊ทธ๋ฆผ 1์ฒ๋ผ Product.java ๋ฅผ ์ ํํ๊ณ ํ์ ๋ฉ๋ด์ Profile As > Java Application ๋ฅผ ์ ํํด์ ์ดํ๋ฆฌ์ผ์ด์ ์ ํ๋กํ์ผํ๋ค.
๊ทธ๋ฆผ 1 ์ ํ ์นดํ๋ก๊ทธ ์ดํ๋ฆฌ์ผ์ด์ ํ๋กํ์ผ ํ๊ธฐ
ํ๋กํ์ผ๋ง ๋ชจ๋๋ก ์ดํ๋ฆฌ์ผ์ด์
์ ์คํํ๋ ๋ค๋ฅธ ๋ฐฉ๋ฒ์ ์๋ฐ ํผ์คํํฐ๋ธ์ ํด๋ฐ ๋ฉ๋ด์ ์๋ Profile ์ก์
์ ์ฌ์ฉํ๋ ๊ฒ์ด๋ค. Run ์ด๋ Debug ํด๋ฐ ์ก์
์ฒ๋ผ, Profile ์ก์
์ ๋ฐ์น ์ค์ (launch configuration) ๋ค์ด์ผ๋ก๊ทธ๋ฅผ ๋ํ๋ผ ๊ฒ์ด๋ค. ๋ค์ด์ผ๋ก๊ทธ์์ ํ๋กํ์ผ ํ๊ณ ์ถ์ ์ดํ๋ฆฌ์ผ์ด์
์ ํ์
์ ์ ํํ ์ ์๋ค.
์๋ฐ ํ๋ก๊ทธ๋จ ์ธ์ ์ค์ ํ๊ธฐ
The Profile As > Java Application ์ ์ ํํ๋ฉด ๊ทธ๋ฆผ 2์ ๊ฐ์ ๋ฐ์น ์ค์ ๋ง๋ฒ์ฌ(Launch Configuration Properties wizard)๊ฐ ์ด๋ฆด ๊ฒ์ด๋ค.
์ด ์์ ์์๋ ์ ํ xml ํ์ผ์ ๊ฒฝ๋ก๋ฅผ ํ๋ก๊ทธ๋จ์ ์ธ์๋ก ๋๊ฒจ์ค๋ค. ์ด ๋ฌธ์์ ์ ์ผ ์๋์์ ์ ๊ณต๋๋ ํ์ผ์ x:\myPath ์ ํ์๋ค๊ณ ํ ๊ฒฝ์ฐ x:\myPath\products ๋ฅผ ์๋ ๊ทธ๋ฆผ 2์์ ๋ณด์ฌ์ง๋ ๊ฒ์ฒ๋ผ ํ๋ก๊ทธ๋จ ์ธ์๋ก ์ค์ ํ๋ค.
๊ทธ๋ฆผ 2 ์ ํ ์นดํ๋ก๊ทธ ์ํ – ํ๋ก๊ทธ๋จ ์ธ์(Program arguments)
ํ๋กํ์ผ๋ง ํํฐ ์ค์ ํ๊ธฐ
๋ค์ ๋จ๊ณ๋ก ๋ฉ์๋ ์คํ ์ ๋ณด๋ฅผ ์์งํ๊ธฐ ์ํ ํ๋กํ์ผ๋ง ์ต์
์ ์ค์ ํ๋ค.
์๋์์ ์ ํ ์นดํ๋ก๊ทธ ์ดํ๋ฆฌ์ผ์ด์ ์ ํ๋กํ์ผ ํ๊ธฐ ์ํด ์ฌ์ฉ๋๋ ์๋ก์ด ํํฐ ์ ์ ๋ง๋๋ ๋ฐฉ๋ฒ์ ์ค๋ช ํ๋ค. com.sample.product ๋ก ์์ํ๋ ํจํค์ง์ ๋ํด์๋ง ์ฌ์ฉํ๋ ProductFilterSet ์ด๋ผ๋ ์๋ก์ด ํํฐ ์ ์ ๋ง๋ค ๊ฒ์ด๋ค.
1. ์คํ ์ ๋ณด๋ฅผ ์์งํ๊ธฐ ์ํด ๋ชจ๋ํฐ(Monitor) ํญ์์ ์คํ ์๊ฐ ๋ถ์(Execution Time Analysis) ์ต์ ์ ์ ํํ๋ค.
๊ทธ๋ฆผ 3 ์คํ ์๊ฐ ๋ถ์(Execution Time Analysis) ์ต์
์ ๊ทธ๋ฆผ 3์์ ๋ณด๋ ๋ฐ์ ๊ฐ์ด ์คํ ์๊ฐ ๋ถ์(Execution Time Analysis) ์ต์ ์ ์ ํํ๋ค. ์ด๊ฒ์ ์ ํ ์นดํ๋ก๊ทธ ์ดํ๋ฆฌ์ผ์ด์ ์ ์ฐ์์ ์ธ ์คํ ์ค์ ์ฌ์ฉ๋ ์ ์๋ค. ์ด ์ดํ๋ฆฌ์ผ์ด์ ์ ๋ค์ ์คํ ๋์๋ "ํ๋กํ์ผ๋ง ํํฐ ์ค์ ํ๊ธฐ" ๋จ๊ณ๋ ๊ฑด๋๋ธ ์ ์๋ค.
2. ํ๋กํ์ผ๋ง ์คํ ์ต์ ์ ์ค์ ํ๊ธฐ ์ํด "์ต์ ์์ (Edit Options)" ๋ฒํผ์ ๋๋ฅธ๋ค.
2a. "Collect boundary classes excluded by the filter set" ์ต์ ์ ์ ํํ๊ณ Boundary class depth ๊ฐ์ผ๋ก 3์ ์ ๋ ฅํ๋ค.
์ด ์ต์ ์ ์ ํํจ์ผ๋ก์จ, ํํฐ ๋ฒ์ ๋ด์์ ์คํ๋๋ ๋ฉ์๋๋ค ์ค์ ์ ๋ ฅ๋ ๋จ๊ณ(depth)๊น์ง ํธ์ถ๋๋ ๋ฉ์๋์ ๋ํ ์ ๋ณด๋ฅผ ์์งํ๊ฒ ๋ค๊ณ ์ค์ ํ ๊ฒ์ด๋ค.
์๋ฅผ ๋ค์ด, MyMethod ๋ผ๋ ๋ฉ์๋์ ๋ํด ์ ๋ณด๋ฅผ ์์งํ๋๋ก ์ค์ ํ๊ณ , M1, M2, M3, M4 ๋ฉ์๋์ ๋ํด ํํฐ ์ค์ ์ ํ๋ค๊ณ ํ์.
๋ค์๊ณผ ๊ฐ์ invocation stack ์ด ์คํ๋์๋ค๊ณ ํ๋ค๋ฉด: MyMethod > M1 > M2 > M3 > M4 ( MyMethod ๊ฐ M1 ์ ํธ์ถํ๊ณ , M1์ด M2๋ฅผ ํธ์ถํ๊ณ , M2๊ฐ M3๋ฅผ ํธ์ถํ๊ณ , M3๊ฐ M4๋ฅผ ํธ์ถํ๋ค.), 2a ์์ ์ค์ ํ ํํฐ ๋ฒ์ ๊ฐ์ ๋ฐ๋ผ, ํ๋กํ์ผ๋ฌ๋ ์ฝ ์คํ์ ๋ค์๊ณผ ๊ฐ์ด ๋ณด์ฌ์ค ๊ฒ์ด๋ค: MyMethod > M1 > M2 > M3 ๊ทธ๋ฆฌ๊ณ ๋ง์ง๋ง M3>M4๋ ํ์๋์ง ์์ ๊ฒ์ด๋ค. (ํธ์ถ ๋จ๊ณ(depth)๊ฐ 3์ ์ด๊ณผํ๊ธฐ ๋๋ฌธ์ด๋ค).
๊ทธ๋ฆผ 4 ์คํ ์ ๋ณด ์์ง์ ์ํ ์ค์
3. ํ๋กํ์ผ ํ๊ธฐ ์ํ ํด๋์ค๋ค์ ์ ํํ๊ธฐ.
๋ชจ๋ํฐ(Monitor) ํญ์์, ์๋ฐ ํ๋กํ์ผ๋ง(Java Profiling) ์์ดํ
์ ์ ํํ๊ณ ์ต์
์์ (Edit Options)์ ์ ํํ๋ค. ๊ทธ๋ฌ๋ฉด ํํฐ ์
๋ง๋ฒ์ฌ(Filter Set wizard)๊ฐ ๋ฌ๋ค.
ํํฐ ์
ํ์ด์ง๋ ํ๋กํ์ผ ํ๊ณ ์ ํ๋ ํด๋์ค๋ฅผ ์ ํํ๊ธฐ ์ํด ์ฌ์ฉํ๋ค. ์ฌ์ฉ ๊ฐ๋ฅํ ํํฐ๋ค์ด ์ค์ ๋์ด ์์ ๊ฒ์ด๋ค. ๊ทธ๋ฌ๋ ์ด ์์ ์์๋ com.sample.product ๋ก ์์ํ์ง ์๋ ๋ชจ๋ ํจํค์ง๋ฅผ ์ ์ธํ๋ ProductFilterSet์ด๋ผ๊ณ ํ๋ ์๋ก์ด ํํฐ ์
์ ๋ง๋ค ๊ฒ์ด๋ค.
ํํฐ ์
์ ๋ง๋ค๊ธฐ ์ํ ๋จ๊ณ:
3a) ํํฐ ์ (filter set) ๋ชฉ๋ก์์ ์ถ๊ฐ(Add...) ๋ฒํผ์ ์ ํํ๋ค. ์๋ก์ด ํํฐ ์ ์ ์ด๋ฆ์ ProductFilterSet ์ ์ ๋ ฅํ๊ณ ํ์ธ(OK)์ ๋๋ฅธ๋ค.
3b) ๊ทธ๋ฆผ 5์์ ๋ณด๋ ๊ฒ ์ฒ๋ผ ๋ ๊ฐ์ ํํฐ๋ฅผ ์ถ๊ฐํ๊ธฐ ์ํด ์ ํ๋ ํํฐ ์ (Contents of selected filter set) ๋ชฉ๋ก์์ ์ถ๊ฐ(Add…) ๋ฒํผ์ ๋๋ฅธ๋ค.
๊ทธ๋ฆผ 5 ํ๋กํ์ผ ํ๊ณ ์ ํ๋ ํด๋์ค ์ ํํ๊ธฐ
์ดํ๋ฆฌ์ผ์ด์ ์คํํ๊ธฐ
๋ฐ์น ์ค์ ๋ง๋ฒ์ฌ(Launch Configuration wizard)์์ ํ์ธ(OK)์ ๋๋ฆ์ผ๋ก์จ ์ ํ ์นดํ๋ก๊ทธ ์ดํ๋ฆฌ์ผ์ด์
(Product catalog application)์ ์คํํ๋ค. ํ๋กํ์ผ๋ง & ๋ก๊น
(Profiling and Logging) ํผ์คํํฐ๋ธ๋ก ์ ํํ๊ฒ ๋๋ ๋ค์ด์ผ๋ก๊ทธ๊ฐ ๋จ๋ฉด ์(Yes)๋ฅผ ์ ํํ๋ค.
์๋ ๊ทธ๋ฆผ 6์์์ฒ๋ผ ์ฝ์ ํ๋ฉด์ ํ๋ก๊ทธ๋จ ์คํ ๊ฒฐ๊ณผ๊ฐ ์ถ๋ ฅ๋๋ ๊ฒ์ ๋ณผ ์ ์์ ๊ฒ์ด๋ค.
๊ทธ๋ฆผ 6 ์ ํ ์นดํ๋ก๊ทธ ์ดํ๋ฆฌ์ผ์ด์
(Product catalog application)์ด ์คํ๋์๋ค
TPTP ํ๋กํ์ผ๋ง ํด์ ์ดํ๋ฆฌ์ผ์ด์
๊ณผ์ ์ํธ ์์ฉ์ ํ ์ ์๋๋ก ํ๋ค. ๋ชจ๋ํฐ๋ง์ ์ผ์ ์ ์ง, ๋ค์ ์์ ํ ์ ์์ผ๋ฉฐ, GC(garbage collection)๋ฅผ ์คํํ ์๋ ์๊ณ ๊ฐ์ฒด ๋ ํผ๋ฐ์ค(object references)๋ฅผ ์์งํ๊ฑฐ๋ ์ดํ๋ฆฌ์ผ์ด์
์ ์ข
๋ฃํ ์๋ ์๋ค.
์คํ ํต๊ณ(Execution Statistics) ๋ทฐ๋ฅผ ์ด์ฉํ ์ฑ๋ฅ ๋ฌธ์ ํ์ธํ๊ธฐ
์ฑ๋ฅ ๋ฌธ์ ๋ฅผ ํ์ธํ๊ธฐ ์ํด ์คํ ํต๊ณ ๋ทฐ๋ฅผ ์ฌ์ฉํ๋ค. ๋ทฐ๋ฅผ ์ด๊ธฐ ์ํด, ํ๋กํ์ผ๋ง ๋ชจ๋ํฐ ๋ทฐ์์ ํ๋ก์ธ์ค(process)๋ฅผ ์ ํํ๊ณ Open with > Execution Statistics ๋ฅผ ์ ํํ๋ค.
์๋ ๊ทธ๋ฆผ 7 ์์ ๋ณด๋ ๋ฐ์ ๊ฐ์ด ์คํ ํต๊ณ ๋ทฐ์์๋ ์คํ๋ ๋ฉ์๋๋ค์ ๋์ ์๊ฐ(cumulative time)์ผ๋ก ์ ๋ ฌํด์ ๋ณผ ์ ์๋ค. ๋ฉ์๋์ ๋์ ์๊ฐ์ ๋ค๋ฅธ ๋ฉ์๋๋ฅผ ํธ์ถํ๋ ๊ฒ์ ํฌํจํ ์คํ ์๊ฐ์ด๋ค.
๊ทธ๋ฆผ 7 ์คํ ํต๊ณ(Execution Statistics) ๋ทฐ
์ผ๋จ ์ด ๊ฒ์ ํ์ธํ์ผ๋ฉด, createParser() ๋ฉ์๋์ ์์ธ ์คํ ์ ๋ณด๋ฅผ ๋ณด๊ธฐ ์ํด ๋๋ฆด ๋ค์ด(drill down) ํด๋ณด์.
createParser() ๋ฉ์๋์์ ๋ฉ์๋ ํธ์ถ ์์ธ(Method Invocation Details ) ๋ทฐ ์ด๊ธฐ
๋ค์์ผ๋ก ์ฐ๋ฆฌ๋ createParser() ์ฝ ์คํ
์ ์ด๋ค ๋ฉ์๋๊ฐ ์ด ๋ฉ์๋์ ์คํ ์๊ฐ์ ๋๋ฆฌ๊ฒ ํ๋์ง ๋ณด๊ธฐ ์ํด ๋ฉ์๋ ํธ์ถ ์์ธ ๋ทฐ๋ฅผ ์ฌ์ฉํ๋ค. ์คํ ํต๊ณ ๋ทฐ์์ createParser() ๋ฉ์๋๋ฅผ ๋๋ธ ํด๋ฆญํ์ฌ ๋ฉ์๋ ํธ์ถ ์์ธ ๋ทฐ๋ฅผ ์ด์.
๊ทธ๋ฆผ 8 ๋ฉ์๋ ํธ์ถ ์์ธ(Method Invocation Details) ๋ทฐ
๊ทธ๋ฆผ 8์์๋ createParser() ๋ฉ์๋์ ์คํ ์ ๋ณด๋ฅผ ๋ณด์ฌ์ค๋ค. ๋ณด๋ ๋ฐ์ ๊ฐ์ด ์ด ๋ฉ์๋๋ readData(java.lang.String)์ ์ํด์ ํ ๋ฒ ํธ์ถ๋์๊ณ 5๊ฐ์ ๋ค๋ฅธ ๋ฉ์๋๋ค์ ํธ์ถํจ์ ์ ์ ์๋ค. ํธ์ถํ ๋ฉ์๋(Selected method invokes) ํ
์ด๋ธ์ ๋ณด๋ฉด newSAXParser()์ newInstance() ๋ฉ์๋๊ฐ createParser() ๋ฉ์๋๋ฅผ ๋๋ฆฌ๊ฒ ํ๋ค๋ ๊ฒ์ ์ ์ ์๋ค. createParser() ๋ฉ์๋๊ฐ 24๋ฒ ํธ์ถ๋ ๊ฒ ์ฒ๋ผ ์ด ๋ ๋ฉ์๋๊ฐ 24๋ฒ์ด๋ ํธ์ถ๋์๋ค.
ํ์ธ๋ ์ฑ๋ฅ ๋ฌธ์ ๋ก๋ถํฐ ํด๊ฒฐ์ฑ ์ ์ ์ํ๊ธฐ
ํด๊ฒฐ์ฑ ์ ๋ชจ๋ ํ์ผ ๋ง๋ค ์๋ก์ด ํ์๋ฅผ ๋ง๋ค์ง ์๊ณ , ํ๋์ ํ์ ์ธ์คํด์ค๋ฅผ ๋ง๋ค๊ณ ์ด๊ฒ์ ์ฌ์ฌ์ฉํ๋ ๊ฒ์ด๋ค. ์์ค ์ฝ๋๋ฅผ ์ด๊ณ ์์ ํด๋ณด์.
์ด๋ฐ์์ ์ต์ ํ ๋ฐฉํฅ์ ๊ฒฐ์ ํ๊ธฐ ์ ์, ์ฝ๋ ์์์ ์ง์์ ํ๋์ง๋ฅผ ํ์คํ๊ฒ ํด๋ ํ์๊ฐ ์๋ค. ์๋ฅผ ๋ค์ด, SAXParser๋ ์ฌ๋ฌ ์ฐ๋ ๋์ ์ํด์ ๋์์ ์ฌ์ฉ๋ ์ ์๊ธฐ ๋๋ฌธ์ ์ธ์คํด์ค๋ฅผ ์ฌ์ฌ์ฉํ ์ ์๋ ๊ฒ์ด๋ค. ์๊ฒฉํ๊ฒ ๋งํ๋ฉด ์ธ์คํด์ค๋ ์ฌ์ฌ์ฉํ๊ธฐ ์ ์ reset()ํด์ฃผ์ด์ผ ํ๋ค. ๋ณ๊ฒฝ ๋ด์ฉ์ ์ ์ฉํ ์ ์๋ ์ฝ๋๋ฅผ ์์ฑํ๊ธฐ ์ ์ ํฌ๊ด์ ์ธ ๋จ์ ํ
์คํธ ์กฐํฉ์ ๊ตฌ์ฑํด๋๋ ๊ฒ๋ ์ข์ ์๊ฐ์ด๋ค.
์์ค ์ฝ๋๋ฅผ ์ด๊ณ ์ฑ๋ฅ ๋ฌธ์ ๋ฅผ ์์ ํ๊ธฐ
๊ทธ๋ฆผ 9 ์์ค ์ฝ๋
๊ทธ๋ฆผ 9์ createParser() ์ ๋ํ ์์ค ์ฝ๋๊ฐ ์๋ค. ์ด ๋ฉ์๋๊ฐ ๋งค๋ฒ ํธ์ถ๋ ๋ ๋ง๋ค ์๋ก์ด SAX ํ์ ์ธ์คํด์ค๋ฅผ ๋ง๋๋ ๊ฒ์ ์ ์ ์๋ค.
์๋ ๊ทธ๋ฆผ 10์ฒ๋ผ ํ๋์ ํ์ ์ธ์คํด์ค๋ฅผ ๋ง๋ค๊ณ ๋ชจ๋ xml ํ์ผ์ ํ์ฑํ๋๋ฐ์ ๊ทธ๊ฒ์ ์ฌ์ฌ์ฉํ๋๋ก ์ฝ๋๋ฅผ ์์ ํ์.
๊ทธ๋ฆผ 10 ์์ค ์ฝ๋ ์์
๊ทธ๋ฆผ 10์์ ๋ณด๋ ๊ฒ ์ฒ๋ผ ์ ์ญ SAXParser ์ธ์คํด์ค๋ฅผ ๋ง๋ค์ด์ ์ฑ๋ฅ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ค. createParser() ๋ฉ์๋๋ ํ์๋ฅผ ์ด๊ธฐํ ํ๊ณ ๋ฉ์๋๊ฐ ํธ์ถ๋ ๋ ๋ง๋ค ๋ง๋ค์ด์ง ์ธ์คํด์ค๋ฅผ ๋ฆฌํดํ๋ค.
๋ค์ ๋์๊ฐ์ ์ ํ ์นดํ๋ก๊ทธ ์ดํ๋ฆฌ์ผ์ด์ ์ ๋ค์ ํ๋กํ์ผ๋ง ๋ชจ๋๋ก ๋์์์ผ ์์ ๋ด์ฉ์ ๊ฒ์ฆํด๋ณด์.
์ฑ๋ฅ ๋ฌธ์ ํด๊ฒฐ ๊ฒ์ฆํ๊ธฐ
์ฑ๋ฅ ๋ฌธ์ ํด๊ฒฐ์ ๊ฒ์ฆํ๊ธฐ ์ํด, ์์์ ๋งํ ๊ฒ ์ฒ๋ผ Product ํด๋์ค๋ฅผ ์ ํํ๊ณ ์ฐํด๋ฆญํด์ Profile As > Java Application๋ฅผ ์ ํํ๋ค.
ํ๋กํ์ผ๋ง ์ต์
๋ง๋ฒ์ฌ๋ ๋ํ๋์ง ์์ ๊ฒ์ด๋ค. ์ด์ ์ ์ค์ ํ ํ๋กํ์ผ๋ง ์ต์
์ด ์ดํ๋ฆฌ์ผ์ด์
์คํ์์ ์ฌ์ฉ๋๋ค. ์ดํ๋ฆฌ์ผ์ด์
์ ์คํํ ํ์ ์คํ ํต๊ณ(Execution Statistics) ๋ทฐ๋ฅผ ์ด๊ณ ์คํ ์๊ฐ์ ๋น๊ตํด๋ณด์.
๊ทธ๋ฆผ 11์ ์์ ๋ ์ฝ๋๋ฅผ ์ ์ฉํ ํ์ ์คํ ์๊ฐ์ด ์๋ค:
๊ทธ๋ฆผ 11 ์คํ ํต๊ณ(Execution Statistics) ๋ทฐ
์ ๊ทธ๋ฆผ์์ ๋ณด๋ ๊ฒ์ฒ๋ผ, ์์ ํ๊ธฐ ์ด์ ์ ๊ฑฐ์ 43% ์๋ createParser() ๋ฉ์๋์ ์คํ ์๊ฐ์ด ๋จ์ง 19%๋ก ์ค์๋ค.
์ด ์ฑ๋ฅ ํฅ์์ ํ์ฑํด์ผ๋ xml ํ์ผ์ด ๋ง์์๋ก ๋ ์ปค์ง ๊ฒ์ด๋ค. ๋ฐ๋ผ์ ์นดํ๋ก๊ทธ์ ์ถ๊ฐ๋๋ ์ ํ ์ ๋ณด ํ์ผ์ด ๋ง์์ง์๋ก ์ดํ๋ฆฌ์ผ์ด์
์ ์คํ ์๊ฐ์ด ์์ฒญ๋๊ฒ ์ค์ด๋ค๊ฒ ๋ ๊ฒ ์ด๋ค.
๊ฒฐ๋ก
์ด ๋ฌธ์์์๋ TPTP ํ๋กํ์ผ๋ง ํด์ ์ฌ์ฉํด์ ์ฑ๋ฅ ๋ฌธ์ ๋ฅผ ํ์ธํ๊ณ ํด๊ฒฐํ๋ ๋ฐฉ๋ฒ์ ์ค๋ช ํ๋ค. ์ด ๋ฌธ์์์๋ ๋ค๋ฃจ์ง ๋ชปํ TPTP ํด์ ๋ง์ ๊ธฐ๋ฅ์ด ๋ ์๋ค. ๋ง์ฝ ์ด ํด์ ๊ธฐ๋ฅ์ ๋ ์๊ณ ์ถ๋ค๋ฉด ์ฌ๊ธฐ์ ์๋ ํํ ๋ฆฌ์ผ ์ฌ๋ผ์ด๋์ ์ฌ์ฉ์ ๊ฐ์ด๋๋ค์ ๋ณด๊ธฐ ๋ฐ๋๋ค.
์์ ์คํํ๊ธฐ
"ProductCatalog_example.zip" ํ์ผ์๋ ์ด ๋ฌธ์์ ๋์์๋ ์์ ์ ์์ค ์ฝ๋๋ฅผ ํฌํจํ๊ณ ์๋ค. ์ดํด๋ฆฝ์ค์ "plugins" ๋๋ ํ ๋ฆฌ์ ZIP ํ์ผ์ ํ๋ฉด๋๋ค. ๋ํ ์ ํ xml ํ์ผ๋ค์ products.zip ํ์ผ์ ์๋ค. products.zip ํ์ผ์ ์์คํ ์ ์ํ๋ ๊ณณ์ ํ์ด๋๊ณ , ๊ทธ ๊ฒฝ๋ก๋ฅผ ์ ํ ์นดํ๋ก๊ทธ ์ดํ๋ฆฌ์ผ์ด์ ์ ํ๋ก๊ทธ๋จ ์ธ์๋ก ์ ์ด์ฃผ๋ฉด ๋๋ค.
Java and all Java-based trademarks and logos are trademarks or registered trademarks of Sun Microsystems, Inc. in the United States, other countries, or both.
๋๊ธ