TPTP - Clipmarks

Someone has sent you a clip...

 clipped from silent.springnote.com

์ถœ์ฒ˜ : 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์ผ

์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ํ”„๋กœํŒŒ์ผ๋ง

์ง€๊ธˆ์ฒ˜๋Ÿผ ์ œํ’ˆ์„ ๋งŒ๋“ค์–ด ๋‚ด๊ธฐ ์œ„ํ•œ ๋‹จ๊ธฐ์ ์ธ ๊ฐœ๋ฐœ ์‚ฌ์ดํด์„ ๋Œ๊ณ  ์žˆ๋Š” ์ƒํ™ฉ์—์„œ๋Š”, ๊ฐœ๋ฐœ์ž๋“ค์ด ํ…Œ์ŠคํŠธ, ๋””๋ฒ„๊น…, ์ฝ”๋“œ ์ˆ˜์ •์„ ํ†ตํ•œ ํ•จ์ˆ˜์˜ ๊ธฐ๋Šฅ์ ์ธ ์ธก๋ฉด์—๋งŒ ์ค‘์ ์„ ๋‘๋Š” ๊ฒฝํ–ฅ์ด ์žˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜, ๋Œ€๋‹ค์ˆ˜์˜ ๋ฌธ์ œ๋Š” ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์ด (ํ•˜๋ฃจ 24์‹œ๊ฐ„, ์ผ์ฃผ์ผ์— 7์ผ ๊ทธ๋ฆฌ๊ณ  ์˜ˆ์ƒ์น˜ ๋ชปํ•œ ํ”ผํฌ ํƒ€์ž„์—์˜ ํ•œ๊ณ„๊นŒ์ง€ ๋„๋‹ฌํ•˜๊ฒŒ ๋˜๋Š”) ์‹ค์ œ ์ œํ’ˆ์œผ๋กœ ๋™์ž‘ํ•  ๋•Œ๊นŒ์ง€ ์‰ฝ๊ฒŒ ๋“œ๋Ÿฌ๋‚˜์ง€ ์•Š๋Š”๋‹ค.

์ด๋Ÿฐ ๋ฅ˜์˜ ์„ฑ๋Šฅ ๋ฌธ์ œ๋Š” ๋””๋ฒ„๊น… ๋‹จ๊ณ„์—์„œ๋Š” ๋ณผ ์ˆ˜ ์—†๋Š” ๊ฒƒ๋“ค์ด๋‹ค. ์ œํ’ˆ์„ ๋ฐฐํฌํ•˜๊ธฐ ์ „์— ์‹ค์ œ ์ƒํ™ฉ์—์„œ ๋Œ๋ ค๋ณด๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•˜๋‹ค. ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๋™์ž‘์„ ๋ถ„์„ํ•˜๊ณ , ๋ณ‘๋ชฉํ˜„์ƒ, ๊ฐ์ฒด ๋ˆ„์ˆ˜, ์‹œ์Šคํ…œ ์ž์› ์ œํ•œ ๊ฐ™์€ ์„ฑ๋Šฅ ๋ฌธ์ œ๋ฅผ ์ฐพ์•„๋‚ด๊ธฐ ์œ„ํ•ด ํ”„๋กœํŒŒ์ผ๋ง ํˆด์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์€ ์ค‘์š”ํ•˜๋‹ค.
์ด ๋ฌธ์„œ๋Š” TPTP ํ”„๋กœํŒŒ์ผ๋ง ํˆด์„ ์†Œ๊ฐœํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ , ์„ฑ๋Šฅ ๋ฌธ์ œ๋ฅผ ํ™•์ธํ•˜๊ณ  ์ˆ˜์ •, ๊ฒ€์ฆํ•˜๊ธฐ ์œ„ํ•ด ์ž๋ฐ” ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ํ”„๋กœํŒŒ์ผ๋ง ํ•  ์ˆ˜ ์žˆ๋„๋ก TPTP ํ”„๋กœํŒŒ์ผ๋ง ํˆด์˜ ์‚ฌ์šฉ๋ฒ•์„ ์„ค๋ช…ํ•œ๋‹ค.

TPTP ํ”„๋กœํŒŒ์ผ๋ง ํˆด

์ดํด๋ฆฝ์Šค ํ…Œ์ŠคํŠธ & ์„ฑ๋Šฅ ํˆด ํ”Œ๋žซํผ (TPTP) ํ”„๋กœ์ ํŠธ๋Š” ๋ณ‘๋ชฉํ˜„์ƒ, ๊ฐ์ฒด ๋ˆ„์ˆ˜ ๊ทธ๋ฆฌ๊ณ  ์‹œ์Šคํ…œ ์ž์› ์ œํ•œ ๊ฐ™์€ ์„ฑ๋Šฅ ๋ฌธ์ œ๋ฅผ ํ™•์ธํ•˜๊ณ  ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ํ”„๋กœํŒŒ์ผ๋ง ํˆด์„ ์ œ๊ณตํ•œ๋‹ค. ์ด ํˆด์€ ๋‹จ์ˆœํ•œ ๋…๋ฆฝ์ ์ธ ์ž๋ฐ” ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜๋ถ€ํ„ฐ ์ดํด๋ฆฝ์Šค ํ”Œ๋Ÿฌ๊ทธ์ธ๊นŒ์ง€ ํ˜น์€ ์„œ๋กœ ๋‹ค๋ฅธ ํ”Œ๋žซํผ์ด๋‚˜ ๋‹ค์–‘ํ•œ ๋จธ์‹ ์—์„œ ๋Œ์•„๊ฐ€๋Š” ๋ณต์žกํ•œ ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜๊นŒ์ง€ ๋ชฉํ‘œ๋กœ ํ•œ๋‹ค.

์ดํด๋ฆฝ์Šค ํ”„๋กœ์ ํŠธ์™€ ์™„๋ฒฝํ•˜๊ฒŒ ํ†ตํ•ฉ๋˜์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์—, ์‚ฌ์šฉํ•˜๊ธฐ ์‰ฝ๊ณ  ํ™•์žฅํ•˜๊ธฐ๋„ ์‰ฝ๋‹ค. ์ด๊ฒƒ์€ ์‚ฌ์šฉ์ž๊ฐ€ ์ž์‹ ์˜ ๋ฐ์ดํ„ฐ ๋ถ„์„ ํ™”๋ฉด์„ ๋ถ™์ผ ์ˆ˜๋„ ์žˆ๊ณ , ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘ ์—์ด์ „ํŠธ์—์„œ ์ž์‹ ์˜ ๊ตฌํ˜„์„ ํ†ตํ•ด ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘ ๋ฉ”ํƒ€ํฌ์–ด(metaphor)๋ฅผ ํ™•์žฅํ•  ์ˆ˜ ์žˆ์Œ์„ ์˜๋ฏธํ•œ๋‹ค.

์ด ๋ฌธ์„œ๋Š” ์ดํด๋ฆฝ์Šค 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์—์„œ ๋ณด์—ฌ์ง€๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ํ”„๋กœ๊ทธ๋žจ ์ธ์ž๋กœ ์„ค์ •ํ•œ๋‹ค.

Program arguments

๊ทธ๋ฆผ 2 ์ œํ’ˆ ์นดํƒˆ๋กœ๊ทธ ์ƒ˜ํ”Œ – ํ”„๋กœ๊ทธ๋žจ ์ธ์ž(Program arguments)

ํ”„๋กœํŒŒ์ผ๋ง ํ•„ํ„ฐ ์„ค์ •ํ•˜๊ธฐ

๋‹ค์Œ ๋‹จ๊ณ„๋กœ ๋ฉ”์†Œ๋“œ ์‹คํ–‰ ์ •๋ณด๋ฅผ ์ˆ˜์ง‘ํ•˜๊ธฐ ์œ„ํ•œ ํ”„๋กœํŒŒ์ผ๋ง ์˜ต์…˜์„ ์„ค์ •ํ•œ๋‹ค.

์ด ์˜ต์…˜์„ ์„ค์ •ํ•˜๊ธฐ ์œ„ํ•ด, ๋Ÿฐ์น˜ ์„ค์ • ๋งˆ๋ฒ•์‚ฌ(Launch Configuration Properties wizard)์˜ ๋ชจ๋‹ˆํ„ฐ(Monitor) ํƒญ์„ ์„ ํƒํ•˜๊ณ , ์ธก์ •ํ•˜๊ณ ์ž ํ•˜๋Š” ํ”„๋กœํŒŒ์ผ๋ง ์˜ต์…˜์„ ์„ค์ •ํ•œ๋‹ค.

ํ”„๋กœํŒŒ์ผ๋ง ํ•„ํ„ฐ ์…‹(Profiling filter set)์€ ํ”„๋กœํŒŒ์ผ๋ง ํ•„ํ„ฐ์˜ ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์…‹(set)์ด๋‹ค. ํ”„๋กœํŒŒ์ผ๋ง ํ•„ํ„ฐ ์…‹์„ ๋งŒ๋“œ๋Š” ์ด์œ ๋Š” ๊ฐ™์€ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์—ฐ์†์ ์œผ๋กœ ์‹คํ–‰ํ•˜๊ฑฐ๋‚˜, ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐ„์— ๊ฐ™์€ ์ข…๋ฅ˜์˜ ํ”„๋กœํŒŒ์ผ๋ง ์ •๋ณด๋ฅผ ์ˆ˜์ง‘ํ•˜๊ธฐ ์œ„ํ•ด ํ•„ํ„ฐ ์…‹์„ ์žฌ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•จ์ด๋‹ค.
์•„๋ž˜์—์„œ ์ œํ’ˆ ์นดํƒˆ๋กœ๊ทธ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ํ”„๋กœํŒŒ์ผ ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š” ์ƒˆ๋กœ์šด ํ•„ํ„ฐ ์…‹์„ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•œ๋‹ค. com.sample.product ๋กœ ์‹œ์ž‘ํ•˜๋Š” ํŒจํ‚ค์ง€์— ๋Œ€ํ•ด์„œ๋งŒ ์‚ฌ์šฉํ•˜๋Š” ProductFilterSet ์ด๋ผ๋Š” ์ƒˆ๋กœ์šด ํ•„ํ„ฐ ์…‹์„ ๋งŒ๋“ค ๊ฒƒ์ด๋‹ค.

1. ์‹คํ–‰ ์ •๋ณด๋ฅผ ์ˆ˜์ง‘ํ•˜๊ธฐ ์œ„ํ•ด ๋ชจ๋‹ˆํ„ฐ(Monitor) ํƒญ์—์„œ ์‹คํ–‰ ์‹œ๊ฐ„ ๋ถ„์„(Execution Time Analysis) ์˜ต์…˜์„ ์„ ํƒํ•œ๋‹ค.

Execution Time Analysis option

๊ทธ๋ฆผ 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์„ ์ดˆ๊ณผํ–ˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค).

Profiling Execution options

๊ทธ๋ฆผ 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…) ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅธ๋‹ค.

Select the classes to be profiled

๊ทธ๋ฆผ 5 ํ”„๋กœํŒŒ์ผ ํ•˜๊ณ ์ž ํ•˜๋Š” ํด๋ž˜์Šค ์„ ํƒํ•˜๊ธฐ

์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ์‹คํ–‰ํ•˜๊ธฐ


๋Ÿฐ์น˜ ์„ค์ • ๋งˆ๋ฒ•์‚ฌ(Launch Configuration wizard)์—์„œ ํ™•์ธ(OK)์„ ๋ˆ„๋ฆ„์œผ๋กœ์จ ์ œํ’ˆ ์นดํƒˆ๋กœ๊ทธ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜(Product catalog application)์„ ์‹คํ–‰ํ•œ๋‹ค. ํ”„๋กœํŒŒ์ผ๋ง & ๋กœ๊น…(Profiling and Logging) ํผ์ŠคํŽ™ํ‹ฐ๋ธŒ๋กœ ์ „ํ™˜ํ•˜๊ฒ ๋ƒ๋Š” ๋‹ค์ด์–ผ๋กœ๊ทธ๊ฐ€ ๋œจ๋ฉด ์˜ˆ(Yes)๋ฅผ ์„ ํƒํ•œ๋‹ค.
์•„๋ž˜ ๊ทธ๋ฆผ 6์—์„œ์ฒ˜๋Ÿผ ์ฝ˜์†” ํ™”๋ฉด์— ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰ ๊ฒฐ๊ณผ๊ฐ€ ์ถœ๋ ฅ๋˜๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ์„ ๊ฒƒ์ด๋‹ค.

Product application terminated

๊ทธ๋ฆผ 6 ์ œํ’ˆ ์นดํƒˆ๋กœ๊ทธ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜(Product catalog application)์ด ์‹คํ–‰๋˜์—ˆ๋‹ค

TPTP ํ”„๋กœํŒŒ์ผ๋ง ํˆด์€ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜๊ณผ์˜ ์ƒํ˜ธ ์ž‘์šฉ์„ ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•œ๋‹ค. ๋ชจ๋‹ˆํ„ฐ๋ง์„ ์ผ์‹œ ์ •์ง€, ๋‹ค์‹œ ์‹œ์ž‘ ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, GC(garbage collection)๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜๋„ ์žˆ๊ณ  ๊ฐ์ฒด ๋ ˆํผ๋Ÿฐ์Šค(object references)๋ฅผ ์ˆ˜์ง‘ํ•˜๊ฑฐ๋‚˜ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ข…๋ฃŒํ•  ์ˆ˜๋„ ์žˆ๋‹ค.


์‹คํ–‰ ํ†ต๊ณ„(Execution Statistics) ๋ทฐ๋ฅผ ์ด์šฉํ•œ ์„ฑ๋Šฅ ๋ฌธ์ œ ํ™•์ธํ•˜๊ธฐ


์„ฑ๋Šฅ ๋ฌธ์ œ๋ฅผ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด ์‹คํ–‰ ํ†ต๊ณ„ ๋ทฐ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. ๋ทฐ๋ฅผ ์—ด๊ธฐ ์œ„ํ•ด, ํ”„๋กœํŒŒ์ผ๋ง ๋ชจ๋‹ˆํ„ฐ ๋ทฐ์—์„œ ํ”„๋กœ์„ธ์Šค(process)๋ฅผ ์„ ํƒํ•˜๊ณ  Open with > Execution Statistics ๋ฅผ ์„ ํƒํ•œ๋‹ค.
์•„๋ž˜ ๊ทธ๋ฆผ 7 ์—์„œ ๋ณด๋Š” ๋ฐ”์™€ ๊ฐ™์ด ์‹คํ–‰ ํ†ต๊ณ„ ๋ทฐ์—์„œ๋Š” ์‹คํ–‰๋œ ๋ฉ”์†Œ๋“œ๋“ค์„ ๋ˆ„์  ์‹œ๊ฐ„(cumulative time)์œผ๋กœ ์ •๋ ฌํ•ด์„œ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. ๋ฉ”์†Œ๋“œ์˜ ๋ˆ„์  ์‹œ๊ฐ„์€ ๋‹ค๋ฅธ ๋ฉ”์†Œ๋“œ๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ๊ฒƒ์„ ํฌํ•จํ•œ ์‹คํ–‰ ์‹œ๊ฐ„์ด๋‹ค.

Execution statistics view

๊ทธ๋ฆผ 7 ์‹คํ–‰ ํ†ต๊ณ„(Execution Statistics) ๋ทฐ

๊ทธ๋ฆผ 7 ์„ ๋ณด๋ฉด, main(java.lang.String[]), readData(java.lang.String) ๊ทธ๋ฆฌ๊ณ  createParser()์˜ 3๊ฐ€์ง€ ๋ฉ”์†Œ๋“œ๊ฐ€ ๊ฐ€์žฅ ์˜ค๋žœ ์‹คํ–‰ ์‹œ๊ฐ„์„ ์‚ฌ์šฉํ•œ ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค. Main๊ณผ readData ๋ฉ”์†Œ๋“œ๊ฐ€ ์ƒ์œ„์— ์žˆ๋Š” ๊ฒƒ์€ ๊ฑฑ์ •ํ•  ๊ฒƒ์ด ์•„๋‹ˆ๋‹ค. ์ฒ˜์Œ ๊ฒƒ์€ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์‹œ์ž‘์ ์ด๊ณ , ๋‘๋ฒˆ์งธ ๊ฒƒ์€ xml ํŒŒ์ผ๋กœ๋ถ€ํ„ฐ ์ œํ’ˆ ์ •๋ณด๋ฅผ ์ฝ์–ด๋“ค์ด๋Š” ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

์šฐ๋ฆฌ๊ฐ€ ์ง€์ผœ๋ด์•ผํ•  ๊ฒƒ์€ ๋‹จ์ง€ xml ํŒŒ์ผ์„ ํŒŒ์‹ฑ(parsing) ํ•˜๊ธฐ ์œ„ํ•ด SAX ํŒŒ์„œ ์ธ์Šคํ„ด์Šค๋ฅผ ๋งŒ๋“œ๋Š” creatParser() ๋ฉ”์†Œ๋“œ๊ฐ€ ๋†’์€ ์‹คํ–‰ ์‹œ๊ฐ„์„ ๋‚˜ํƒ€๋‚ด๊ณ  ์žˆ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ์ด ๋ฉ”์†Œ๋“œ์˜ ์‹คํ–‰ ์‹œ๊ฐ„์ด ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์ „์ฒด ์‹คํ–‰ ์‹œ๊ฐ„์— 42.96%๋‚˜ ์ฐจ์ง€ํ•œ๋‹ค. ์‹คํ–‰ ํ†ต๊ณ„๋Š” ์ด ๋ฉ”์†Œ๋“œ๊ฐ€ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์„ฑ๋Šฅ์„ ์ตœ์ ํ™”ํ•˜๊ธฐ ์œ„ํ•œ ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ๋Š” ๋ถ€๋ถ„์ž„์„ ์•Œ๊ฒŒ ํ•ด์ค€๋‹ค.

์ผ๋‹จ ์ด ๊ฒƒ์„ ํ™•์ธํ–ˆ์œผ๋ฉด, createParser() ๋ฉ”์†Œ๋“œ์˜ ์ƒ์„ธ ์‹คํ–‰ ์ •๋ณด๋ฅผ ๋ณด๊ธฐ ์œ„ํ•ด ๋“œ๋ฆด ๋‹ค์šด(drill down) ํ•ด๋ณด์ž.

createParser() ๋ฉ”์†Œ๋“œ์—์„œ ๋ฉ”์†Œ๋“œ ํ˜ธ์ถœ ์ƒ์„ธ(Method Invocation Details ) ๋ทฐ ์—ด๊ธฐ

๋‹ค์Œ์œผ๋กœ ์šฐ๋ฆฌ๋Š” createParser() ์ฝœ ์Šคํ…์˜ ์–ด๋–ค ๋ฉ”์†Œ๋“œ๊ฐ€ ์ด ๋ฉ”์†Œ๋“œ์˜ ์‹คํ–‰ ์‹œ๊ฐ„์„ ๋А๋ฆฌ๊ฒŒ ํ•˜๋Š”์ง€ ๋ณด๊ธฐ ์œ„ํ•ด ๋ฉ”์†Œ๋“œ ํ˜ธ์ถœ ์ƒ์„ธ ๋ทฐ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. ์‹คํ–‰ ํ†ต๊ณ„ ๋ทฐ์—์„œ createParser() ๋ฉ”์†Œ๋“œ๋ฅผ ๋”๋ธ” ํด๋ฆญํ•˜์—ฌ ๋ฉ”์†Œ๋“œ ํ˜ธ์ถœ ์ƒ์„ธ ๋ทฐ๋ฅผ ์—ด์ž.

Method Invocation Details

๊ทธ๋ฆผ 8 ๋ฉ”์†Œ๋“œ ํ˜ธ์ถœ ์ƒ์„ธ(Method Invocation Details) ๋ทฐ


๊ทธ๋ฆผ 8์—์„œ๋Š” createParser() ๋ฉ”์†Œ๋“œ์˜ ์‹คํ–‰ ์ •๋ณด๋ฅผ ๋ณด์—ฌ์ค€๋‹ค. ๋ณด๋Š” ๋ฐ”์™€ ๊ฐ™์ด ์ด ๋ฉ”์†Œ๋“œ๋Š” readData(java.lang.String)์— ์˜ํ•ด์„œ ํ•œ ๋ฒˆ ํ˜ธ์ถœ๋˜์—ˆ๊ณ  5๊ฐœ์˜ ๋‹ค๋ฅธ ๋ฉ”์†Œ๋“œ๋“ค์„ ํ˜ธ์ถœํ•จ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค. ํ˜ธ์ถœํ•œ ๋ฉ”์†Œ๋“œ(Selected method invokes) ํ…Œ์ด๋ธ”์„ ๋ณด๋ฉด newSAXParser()์™€ newInstance() ๋ฉ”์†Œ๋“œ๊ฐ€ createParser() ๋ฉ”์†Œ๋“œ๋ฅผ ๋А๋ฆฌ๊ฒŒ ํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค. createParser() ๋ฉ”์†Œ๋“œ๊ฐ€ 24๋ฒˆ ํ˜ธ์ถœ๋œ ๊ฒƒ ์ฒ˜๋Ÿผ ์ด ๋‘ ๋ฉ”์†Œ๋“œ๊ฐ€ 24๋ฒˆ์ด๋‚˜ ํ˜ธ์ถœ๋˜์—ˆ๋‹ค.

ํ™•์ธ๋œ ์„ฑ๋Šฅ ๋ฌธ์ œ๋กœ๋ถ€ํ„ฐ ํ•ด๊ฒฐ์ฑ…์„ ์ •์˜ํ•˜๊ธฐ


์ด ๋ฐ์ดํ„ฐ๋ฅผ ๋ถ„์„ํ•จ์œผ๋กœ์จ, ์šฐ๋ฆฌ๋Š” createParser() ๋ฉ”์†Œ๋“œ์˜ ์‹คํ–‰ ์‹œ๊ฐ„ ํ–ฅ์ƒ์„ ์œ„ํ•ด์„œ๋Š” ๋‘ ๊ฐœ์˜ SAXParserFactory ๋ฉ”์†Œ๋“œ์˜ ์ƒํ–‰ ํ–ฅ์ƒ์„ ํ•ด์•ผํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ์•˜๋‹ค. ์šฐ๋ฆฌ๋Š” ์ด ๋ฉ”์†Œ๋“œ์˜ ๊ตฌํ˜„์— ๊ด€์—ฌํ•  ์ˆ˜ ์—†์œผ๋ฏ€๋กœ, ์šฐ๋ฆฌ์˜ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ์‹คํ–‰ ํ–ฅ์ƒ์„ ์œ„ํ•ด์„œ๋Š” ์ด ๋ฉ”์†Œ๋“ค์˜ ํ˜ธ์ถœ์„ ์ตœ๋Œ€ํ•œ ์ค„์—ฌ์•ผํ•œ๋‹ค.

ํ•ด๊ฒฐ์ฑ…์€ ๋ชจ๋“  ํŒŒ์ผ ๋งˆ๋‹ค ์ƒˆ๋กœ์šด ํŒŒ์„œ๋ฅผ ๋งŒ๋“ค์ง€ ์•Š๊ณ , ํ•˜๋‚˜์˜ ํŒŒ์„œ ์ธ์Šคํ„ด์Šค๋ฅผ ๋งŒ๋“ค๊ณ  ์ด๊ฒƒ์„ ์žฌ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ์—ด๊ณ  ์ˆ˜์ •ํ•ด๋ณด์ž.

์ด๋Ÿฐ์‹์˜ ์ตœ์ ํ™” ๋ฐฉํ–ฅ์„ ๊ฒฐ์ •ํ•˜๊ธฐ ์ „์—, ์ฝ”๋“œ ์ƒ์—์„œ ์ง€์›์„ ํ•˜๋Š”์ง€๋ฅผ ํ™•์‹คํ•˜๊ฒŒ ํ•ด๋‘˜ ํ•„์š”๊ฐ€ ์žˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, SAXParser๋Š” ์—ฌ๋Ÿฌ ์“ฐ๋ ˆ๋“œ์— ์˜ํ•ด์„œ ๋™์‹œ์— ์‚ฌ์šฉ๋  ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์— ์ธ์Šคํ„ด์Šค๋ฅผ ์žฌ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ด๋‹ค. ์—„๊ฒฉํ•˜๊ฒŒ ๋งํ•˜๋ฉด ์ธ์Šคํ„ด์Šค๋Š” ์žฌ์‚ฌ์šฉํ•˜๊ธฐ ์ „์— reset()ํ•ด์ฃผ์–ด์•ผ ํ•œ๋‹ค. ๋ณ€๊ฒฝ ๋‚ด์šฉ์„ ์ ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๊ธฐ ์ „์— ํฌ๊ด„์ ์ธ ๋‹จ์œ„ ํ…Œ์ŠคํŠธ ์กฐํ•ฉ์„ ๊ตฌ์„ฑํ•ด๋‘๋Š” ๊ฒƒ๋„ ์ข‹์€ ์ƒ๊ฐ์ด๋‹ค.

์†Œ์Šค ์ฝ”๋“œ๋ฅผ ์—ด๊ณ  ์„ฑ๋Šฅ ๋ฌธ์ œ๋ฅผ ์ˆ˜์ •ํ•˜๊ธฐ

createParser() ๋ฉ”์†Œ๋“œ์— ๋Œ€ํ•œ ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ์—ด๊ธฐ ์œ„ํ•ด ๋ฉ”์†Œ๋“œ ํ˜ธ์ถœ ์ƒ์„ธ(Method Invocation Details) ๋ทฐ์—์„œ ๋งˆ์šฐ์Šค ์šฐํด๋ฆญ์„ ํ•˜๊ณ  ํŒ์—… ๋ฉ”๋‰ด์—์„œ ์†Œ์Šค ์—ด๊ธฐ(Open Source)๋ฅผ ์„ ํƒํ•œ๋‹ค.

Source code


๊ทธ๋ฆผ 9 ์†Œ์Šค ์ฝ”๋“œ

๊ทธ๋ฆผ 9์— createParser() ์— ๋Œ€ํ•œ ์†Œ์Šค ์ฝ”๋“œ๊ฐ€ ์žˆ๋‹ค. ์ด ๋ฉ”์†Œ๋“œ๊ฐ€ ๋งค๋ฒˆ ํ˜ธ์ถœ๋  ๋•Œ ๋งˆ๋‹ค ์ƒˆ๋กœ์šด SAX ํŒŒ์„œ ์ธ์Šคํ„ด์Šค๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค.
์•„๋ž˜ ๊ทธ๋ฆผ 10์ฒ˜๋Ÿผ ํ•˜๋‚˜์˜ ํŒŒ์„œ ์ธ์Šคํ„ด์Šค๋ฅผ ๋งŒ๋“ค๊ณ  ๋ชจ๋“  xml ํŒŒ์ผ์„ ํŒŒ์‹ฑํ•˜๋Š”๋ฐ์— ๊ทธ๊ฒƒ์„ ์žฌ์‚ฌ์šฉํ•˜๋„๋ก ์ฝ”๋“œ๋ฅผ ์ˆ˜์ •ํ•˜์ž.

Source code

๊ทธ๋ฆผ 10 ์†Œ์Šค ์ฝ”๋“œ ์ˆ˜์ •

๊ทธ๋ฆผ 10์—์„œ ๋ณด๋Š” ๊ฒƒ ์ฒ˜๋Ÿผ ์ „์—ญ SAXParser ์ธ์Šคํ„ด์Šค๋ฅผ ๋งŒ๋“ค์–ด์„œ ์„ฑ๋Šฅ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ๋‹ค. createParser() ๋ฉ”์†Œ๋“œ๋Š” ํŒŒ์„œ๋ฅผ ์ดˆ๊ธฐํ™” ํ•˜๊ณ  ๋ฉ”์†Œ๋“œ๊ฐ€ ํ˜ธ์ถœ๋  ๋•Œ ๋งˆ๋‹ค ๋งŒ๋“ค์–ด์ง„ ์ธ์Šคํ„ด์Šค๋ฅผ ๋ฆฌํ„ดํ•œ๋‹ค.

๋‹ค์‹œ ๋Œ์•„๊ฐ€์„œ ์ œํ’ˆ ์นดํƒˆ๋กœ๊ทธ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋‹ค์‹œ ํ”„๋กœํŒŒ์ผ๋ง ๋ชจ๋“œ๋กœ ๋™์ž‘์‹œ์ผœ ์ˆ˜์ • ๋‚ด์šฉ์„ ๊ฒ€์ฆํ•ด๋ณด์ž.

์„ฑ๋Šฅ ๋ฌธ์ œ ํ•ด๊ฒฐ ๊ฒ€์ฆํ•˜๊ธฐ

์„ฑ๋Šฅ ๋ฌธ์ œ ํ•ด๊ฒฐ์„ ๊ฒ€์ฆํ•˜๊ธฐ ์œ„ํ•ด, ์œ„์—์„œ ๋งํ•œ ๊ฒƒ ์ฒ˜๋Ÿผ Product ํด๋ž˜์Šค๋ฅผ ์„ ํƒํ•˜๊ณ  ์šฐํด๋ฆญํ•ด์„œ Profile As > Java Application๋ฅผ ์„ ํƒํ•œ๋‹ค.

ํ”„๋กœํŒŒ์ผ๋ง ์˜ต์…˜ ๋งˆ๋ฒ•์‚ฌ๋Š” ๋‚˜ํƒ€๋‚˜์ง€ ์•Š์„ ๊ฒƒ์ด๋‹ค. ์ด์ „์— ์„ค์ •ํ•œ ํ”„๋กœํŒŒ์ผ๋ง ์˜ต์…˜์ด ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ์‹คํ–‰์‹œ์— ์‚ฌ์šฉ๋œ๋‹ค. ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‹คํ–‰ํ•œ ํ›„์— ์‹คํ–‰ ํ†ต๊ณ„(Execution Statistics) ๋ทฐ๋ฅผ ์—ด๊ณ  ์‹คํ–‰ ์‹œ๊ฐ„์„ ๋น„๊ตํ•ด๋ณด์ž.
๊ทธ๋ฆผ 11์— ์ˆ˜์ •๋œ ์ฝ”๋“œ๋ฅผ ์ ์šฉํ•œ ํ›„์˜ ์‹คํ–‰ ์‹œ๊ฐ„์ด ์žˆ๋‹ค:

Execution Statistics view

๊ทธ๋ฆผ 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.

Get Clipmarks - The easiest way to email text, images and videos you find on the web. It's free!
Sent with Clipmarks

๋Œ“๊ธ€

์ด ๋ธ”๋กœ๊ทธ์˜ ์ธ๊ธฐ ๊ฒŒ์‹œ๋ฌผ

ํ™”์ดํŠธํ•ด์ปค๋ฅผ ์œ„ํ•œ ์•”ํ˜ธ์™€ ํ•ดํ‚น

๊ตฌ์–ด์ฒด ํ‘œํ˜„ 85๊ฐ€์ง€

์ˆ˜ํ•™์˜ ์ •์„... ์•„ ์˜›๋‚ ์ด์—ฌ!!