Profiler Tools - zzragida/UnityDocs GitHub Wiki

Unity application profile tools

์œ ๋‹ˆํ‹ฐ ํ”„๋กœํŒŒ์ผ๋Ÿฌ(Unity Profiler)

  • CPU ์‚ฌ์šฉ๋Ÿ‰ ์˜์—ญ

    • Total : ์„ ํƒํ•œ ํ•จ์ˆ˜์™€ ๊ด€๋ จ๋œ ๋ชจ๋“  ํ•จ์ˆ˜์˜ ์‚ฌ์šฉ๋ฅ ์„ ๋ณด์—ฌ์คŒ
    • Self : ์„ ํƒํ•œ ํ•จ์ˆ˜์— ํ•œ์ •๋œ ์‚ฌ์šฉ๋ฅ ์„ ๋ณด์—ฌ์คŒ
    • Calls : ํ•จ์ˆ˜๊ฐ€ ๋ช‡ ๋ฒˆ ํ˜ธ์ถœ๋๋Š”์ง€ ๋ณด์—ฌ์คŒ
    • GC Alloc : ๊ฐ€๋น„์ง€ ์ปฌ๋ ‰์…˜์„ ์œ„ํ•ด ํ• ๋‹นํ•œ ๋ฉ”๋ชจ๋ฆฌ์–‘์„ ๋ณด์—ฌ์คŒ
    • Time ms : ์„ ํƒํ•œ ํ•จ์ˆ˜์™€ ๊ด€๋ จ๋œ ๋ชจ๋“  ํ•จ์ˆ˜์˜ ์ˆ˜ํ–‰ ์‹œ๊ฐ„์„ ํ‘œ์‹œ
    • Self ms : ํ•จ์ˆ˜์˜ ์ˆ˜ํ–‰ ์‹œ๊ฐ„์„ ํ‘œ์‹œ
    • Object : ํ•จ์ˆ˜๊ฐ€ ์†ํ•œ ๊ฒŒ์ž„ ์˜ค๋ธŒ์ ํŠธ๋ฅผ ํ‘œ์‹œ
  • GPU ์‚ฌ์šฉ๋Ÿ‰ ์˜์—ญ

    • Total : ์„ ํƒํ•œ ํ•จ์ˆ˜์™€ ๊ด€๋ จ๋œ ๋ชจ๋“  ํ•จ์ˆ˜์˜ ์‚ฌ์šฉ๋ฅ ์„ ๋ณด์—ฌ์คŒ
    • DrawCalls : ์„ ํƒํ•œ ํ•จ์ˆ˜์—์„œ ๋ฐœ์ƒํ•œ ๋“œ๋กœ์šฐ ์ฝœ ํšŸ์ˆ˜๋ฅผ ๋ณด์—ฌ์คŒ
    • GPU ms : ์„ ํƒํ•œ ํ•จ์ˆ˜์—์„œ ๋ฐœ์ƒํ•œ GPU ์ˆ˜ํ–‰ ์‹œ๊ฐ„์„ ๋ณด์—ฌ์คŒ
    • Object : ์„ ํƒํ•œ ํ•จ์ˆ˜์™€ ๊ด€๋ จ๋œ ๊ฒŒ์ž„ ์˜ค๋ธŒ์ ํŠธ๋ฅผ ๋ณด์—ฌ์คŒ
  • Rendering ์˜์—ญ

    • ๋“œ๋กœ์šฐ ์ฝœ ํšŸ์ˆ˜(Draw Calls)
      • ๋“œ๋กœ์šฐ ์ฝœ์ด๋ž€ ๋ฌผ์ฒด๋ฅผ ๊ทธ๋ฆฌ๊ธฐ ์œ„ํ•ด์„œ ๊ทธ๋ž˜ํ”ฝ API๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ์ž‘์—….
      • ๊ทธ๋ž˜ํ”ฝ API๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ์ž‘์—…์€ ๋ถ€ํ•˜๊ฐ€ ํฐ ์ž‘์—…์ด๋ฏ€๋กœ ์ด๋ฅผ ์ตœ์†Œํ™”ํ•˜๋Š” ๊ฒƒ์ด ์„ฑ๋Šฅ ํ–ฅ์ƒ์„ ๊ฐ€์ ธ์˜ด
    • ์‚ผ๊ฐํ˜• ์ˆ˜(Tris)
      • ํ˜„์žฌ ํ”„๋ ˆ์ž„์—์„œ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š” ์‚ผ๊ฐ๋ฉด์˜ ์ˆ˜๋ฅผ ๋ณด์—ฌ์คŒ
    • ์ •์ ์˜ ์ˆ˜(Verts)
      • ํ˜„์žฌ ํ”„๋ ˆ์ž„์—์„œ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š” ์ •์ ์˜ ์ˆ˜๋ฅผ ๋ณด์—ฌ์คŒ
    • ๋ฐฐ์น˜๋œ ๋“œ๋กœ์šฐ ์ฝœ ์ˆ˜(Batched Draw Calls)
      • ๋“œ๋กœ์šฐ ์ฝœ์˜ ํšŸ์ˆ˜๋ฅผ ์ตœ์†Œํ™”ํ•˜๊ธฐ ์œ„ํ•ด ๊ฐ™์€ ๋ฉ”์‹œ์™€ ์žฌ์งˆ์„ ์‚ฌ์šฉํ•˜๋Š” ๋ฌผ์ฒด๋“ค์„ ๋ชจ์•„์„œ ์ด๋“ค์„ ํ•œ ๋ฒˆ์˜ ๋“œ๋กœ์šฐ ์ฝœ๋กœ ๊ทธ๋ฆด ์ˆ˜ ์žˆ๊ฒŒ ์ตœ์ ํ™”๋ฅผ ์ˆ˜ํ–‰ํ•จ.
      • ์ด ํ•ญ๋ชฉ์€ ๊ฐ™์€ ๋จธํ‹ฐ๋ฆฌ์–ผ์„ ์‚ฌ์šฉํ•ด ์ ˆ์•ฝ๋œ ๋“œ๋กœ์šฐ ์ฝœ ์ˆ˜์น˜๋ฅผ ์˜๋ฏธํ•˜๋ฉฐ ์ด ์ˆ˜์น˜๊ฐ€ ๋†’์„์ˆ˜๋ก ์ตœ์ ํ™”๋‚˜ ์„ค๊ณ„๊ฐ€ ์ž˜๋ผ ์žˆ์Œ์„ ์˜๋ฏธํ•จ.
    • ์‚ฌ์šฉํ•œ ํ…์Šค์ฒ˜ ์ˆ˜(Used Textures)
      • ํ˜„์žฌ ํ™”๋ฉด์„ ๊ทธ๋ฆฌ๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋œ ํ…์Šค์ฒ˜์™€ ์ด ํ…์Šค์ฒ˜๋“ค์ด ์ฐจ์ง€ํ•˜๋Š” ๋ฉ”๋ชจ๋ฆฌ์–‘์„ ๋ณด์—ฌ์คŒ
    • ๋ Œ๋” ํ…์Šค์ฒ˜ ์ˆ˜(Render Textures)
      • ์‚ฌ์šฉํ•œ ๋ Œ๋” ํ…์Šค์ฒ˜์˜ ์ˆ˜์™€ ํฌ๊ธฐ, ๊ทธ๋ฆฌ๊ณ  ํ˜„์žฌ ํ”„๋ ˆ์ž„์—์„œ ์–ผ๋งˆ๋‚˜ ๋งŽ์€ ๋ Œ๋” ํ…์Šค์ฒ˜๋“ค์ด ๊ต์ฒด(Switches) ๋๋Š”์ง€๋ฅผ ๋ณด์—ฌ์คŒ.
      • ๋ Œ๋” ํ…์Šค์ฒ˜๋Š” ์ฃผ๋กœ ํฌ์ŠคํŠธ ์ด๋ฏธ์ง€ ์ดํŽ™ํŠธ์—์„œ ๋งŽ์ด ์‚ฌ์šฉ๋จ.
    • ์Šคํฌ๋ฆฐ(Screen)
      • ํ™”๋ฉด์˜ ํฌ๊ธฐ์™€ ํ™”๋ฉด์„ ๋‚˜ํƒ€๋‚ด๋Š” ๋ฐ ์‚ฌ์šฉํ•˜๋Š” ๋ฉ”๋ชจ๋ฆฌ์˜ ์–‘์„ ํ‘œ์‹œ
    • ๋น„๋””์˜ค ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰(VRAM usage)
      • ํ˜„์žฌ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š” ๋น„๋””์˜ค ๋ฉ”๋ชจ๋ฆฌ์˜ ์–‘์„ ์ถ”์ •ํ•ด ๋ณด์—ฌ์คŒ
    • ์ •์  ๋ฒ„ํผ์˜ ์ˆ˜์™€ ํฌ๊ธฐ(VBO total)
      • ๋ฉ”์‹œ๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๊ธฐ๋ณธ ์ •๋ณด๋“ค์˜ ์ง‘ํ•ฉ์„ ์ •์  ๋ฒ„ํผ(Vertex Buffer Object)๋ผ๊ณ  ํ•˜๋ฉฐ, ๋ฌผ์ฒด์˜ ์ˆ˜๋งŒํผ ์ •์  ๋ฒ„ํผ๊ฐ€ ๋งŒ๋“ค์–ด์ง.
      • ์•ž์˜ ์ˆซ์ž๋Š” ์ •์  ๋ฒ„ํผ์˜ ๊ฐœ์ˆ˜๋ฅผ ๋‚˜ํƒ€๋‚ด๊ณ , ๋’ค์˜ ์ˆซ์ž๋Š” ๋น„๋””์˜ค ์นด๋“œ ๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅ๋œ ์ •์  ๋ฒ„ํผ์˜ ํฌ๊ธฐ๋ฅผ ๋‚˜ํƒ€๋ƒ„
    • ๊ทธ๋ฆผ์ž ์ƒ์„ฑ์ž์˜ ์ˆ˜(Shadow Casters)
      • ๊ทธ๋ฆผ์ž๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๋ฌผ์ฒด์˜ ์ˆ˜๋ฅผ ๋ณด์—ฌ์คŒ
    • ์Šคํ‚จ๋“œ ๋ฉ”์‹œ์˜ ๊ฐœ์ˆ˜(Visible Skinned Meshes)
      • ํ˜„์žฌ ๋ณด์—ฌ์ง€๋Š” ์Šคํ‚จ๋“œ ๋ฉ”์‹œ๋ Œ๋”๋Ÿฌ ์ปดํฌ๋„ŒํŠธ์˜ ์ˆ˜๋ฅผ ๋‚˜ํƒ€๋ƒ„
      • ์Šคํฌ๋‹ ์ž‘์—…์€ ์—ฐ์‚ฐ๋Ÿ‰์ด ๋งŽ์œผ๋ฏ€๋กœ ์ด ์ˆ˜์น˜๋ฅผ ์ตœ๋Œ€ํ•œ ์ค„์—ฌ์•ผ ํ•จ
    • ์• ๋‹ˆ๋ฉ”์ด์…˜ ์ˆ˜(Animations)
      • ํ˜„์žฌ ๋™์ž‘ํ•˜๊ณ  ์žˆ๋Š” ์• ๋‹ˆ๋ฉ”์ด์…˜ ์ˆ˜๋ฅผ ๋ณด์—ฌ์คŒ
  • Memory ์˜์—ญ

    • ์”ฌ๊ณผ ์—์…‹์—์„œ ๊ฐ๊ฐ ์–ผ๋งˆ๋งŒํผ์˜ ๋ฉ”๋ชจ๋ฆฌ๋“ค์ด ์‚ฌ์šฉ๋๋Š”์ง€ ๋ณด์—ฌ์คŒ
  • Audio ์˜์—ญ

    • Playing Sources
      • ์„ ํƒํ•œ ํ”„๋ ˆ์ž„์—์„œ ๋™์ž‘ํ•˜๋Š” ์˜ค๋””์˜ค ์†Œ์Šค์˜ ๊ฐœ์ˆ˜๋ฅผ ๋ณด์—ฌ์คŒ
    • Paused Sources
      • ์„ ํƒํ•œ ํ”„๋ ˆ์ž„์—์„œ ์ž ์‹œ ์ค‘์ง€๋œ ์˜ค๋””์˜ค ์†Œ์Šค์˜ ๊ฐœ์ˆ˜๋ฅผ ๋ณด์—ฌ์คŒ
    • Audio Voices
      • ์„ ํƒํ•œ ํ”„๋ ˆ์ž„์—์„œ ์‚ฌ์šฉ๋˜๋Š” ์†Œ๋ฆฌ์˜ ์ˆ˜๋ฅผ ๋ณด์—ฌ์คŒ
    • Audio CPU Usage
      • ์˜ค๋””์˜ค ์žฌ์ƒ์— ์“ฐ์ธ CPU์˜ ์‚ฌ์šฉ๋ฅ ์„ ๋ณด์—ฌ์คŒ
    • Audio Memory
      • ์˜ค๋””์˜ค ์—”์ง„์—์„œ ์‚ฌ์šฉํ•˜๋Š” ์ „์ฒด ๋ฉ”๋ชจ๋ฆฌ์–‘์„ ๋ณด์—ฌ์คŒ
    • Max Audio Memory Usage
      • ์˜ค๋””์˜ค ์—”์ง„์—์„œ ์‚ฌ์šฉํ•˜๋Š” ์ตœ๋Œ€ ๋ฉ”๋ชจ๋ฆฌ์–‘์„ ๋ณด์—ฌ์คŒ
  • Physics ์˜์—ญ

    • Active Rigidbodies
      • ํ™œ๋™ ์ค‘์ธ ๋ฆฌ์ง€๋“œ๋ฐ”๋””์˜ ๊ฐœ์ˆ˜๋ฅผ ๋ณด์—ฌ์คŒ
    • Sleeping Rigidbodies
      • ํœด๋ฉด ์ค‘์ธ ๋ฆฌ์ง€๋“œ๋ฐ”๋””์˜ ๊ฐœ์ˆ˜๋ฅผ ๋ณด์—ฌ์คŒ
    • Number of Contacts
      • ์ถฉ๋Œ์ฒด ์‚ฌ์ด์— ๋ฐœ์ƒํ•œ ์ถฉ๋Œ์ (Contact Point)์˜ ๊ฐœ์ˆ˜๋ฅผ ๋ณด์—ฌ์คŒ
    • Static Colliders
      • ์”ฌ ๋‚ด์— ๋ฆฌ์ง€๋“œ๋ฐ”๋””๊ฐ€ ์—†๋Š” ๊ณ ์ •๋œ ์ถฉ๋Œ์ฒด์˜ ๊ฐœ์ˆ˜๋ฅผ ๋ณด์—ฌ์คŒ
    • Dynamic Colliders
      • ๋ฆฌ์ง€๋“œ๋ฐ”๋””๋ฅผ ๊ฐ€์ง€๊ณ  ์›€์ง์ด๊ณ  ์žˆ๋Š” ์ถฉ๋Œ์ฒด์˜ ๊ฐœ์ˆ˜๋ฅผ ๋ณด์—ฌ์คŒ
  • Internal Profiler

    • iOS, Android์˜ ๋‚ด์žฅ ํ”„๋กœํŒŒ์ผ๋Ÿฌ ์„ค์ •์„ ํ†ตํ•ด์„œ ๋ณด์—ฌ์ง€๋Š” ๋‚ด์šฉ
    • cpu-player
      • ํ˜„์žฌ ์—”์ง„๊ณผ ํ”„๋กœ๊ทธ๋žจ์—์„œ ์‚ฌ์šฉํ•œ CPU ์‹œ๊ฐ„์„ ๋ณด์—ฌ์คŒ.
      • ๋‹จ์œ„๋Š” ๋ฐ€๋ฆฌ์ดˆ
    • cpu-ogles-drv
      • OpenGL/ES ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํ˜ธ์ถœ์— ์‚ฌ์šฉํ•œ CPU ์‹œ๊ฐ„์„ ๋ณด์—ฌ์คŒ
      • ๋“œ๋กœ์šฐ ์ฝœ๊ณผ ๋ Œ๋” ์ƒํƒœ(Render State) ๋ณ€๊ฒฝ ๊ฐ™์€ CPU์—์„œ GPU๋กœ ์ž‘์—…์„ ์ด๋™ํ•˜๊ธฐ ์ „์— ์ค€๋น„ ๊ณผ์ •์— ์†Œ์š”๋œ ์‹œ๊ฐ„์„ ๋‚˜ํƒ€๋ƒ„
    • cpu-wait-gpu
      • GPU๊ฐ€ ์ž‘์—…์„ ๋๋‚ผ ๋•Œ๊นŒ์ง€ CPU๊ฐ€ ๊ธฐ๋‹ค๋ฆฌ๋Š” ์‹œ๊ฐ„์„ ๋ณด์—ฌ์คŒ
      • ์ด ์ˆ˜์น˜๊ฐ€ ๋†’์„์ˆ˜๋ก ๋ Œ๋”๋ง ์ž‘์—… GPU์˜ ์„ฑ๋Šฅ์— ๋น„ํ•ด ๊ณผ๋„ํ•˜๊ฒŒ ์„ค์ •๋œ ๊ฒƒ์„ ์˜๋ฏธ
      • 3๋ณด๋‹ค ํฌ๋ฉด ์ด ์ˆ˜์น˜๋ฅผ ๋‚ฎ์ถ”๊ฒŒ ๋…ธ๋ ฅํ•ด์•ผ ํ•จ
    • cpu-present
      • GPU๊ฐ€ ์ž‘์—…ํ•œ ๋ฐฑ ํ”„๋ ˆ์ž„ ๋ฒ„ํผ๋ฅผ ํ™”๋ฉด์— ์“ฐ๋Š” ํ”„๋ก ํŠธ ๋ฒ„ํ„ฐ๋กœ ๋ณ€๊ฒฝํ•˜๋Š”๋ฐ ๊ฑธ๋ฆฌ๋Š” ์‹œ๊ฐ„์„ ๋ณด์—ฌ์คŒ
    • frametime
      • ํ”„๋ ˆ์ž„ ์ œ์ž‘์— ๊ฑธ๋ฆฐ ์‹œ๊ฐ„์„ ๋ณด์—ฌ์คŒ
    • draw-call
      • ๋“œ๋กœ์šฐ ์ฝœ์ด ๋ฐœ์ƒํ•œ ํšŸ์ˆ˜๋ฅผ ๋ณด์—ฌ์คŒ
    • tris
      • ๋ Œ๋”๋ง์— ์‚ฌ์šฉ๋œ ์‚ผ๊ฐ๋ฉด์˜ ๊ฐœ์ˆ˜๋ฅผ ๋ณด์—ฌ์คŒ
    • verts
      • ๋ Œ๋”๋ง์— ์‚ฌ์šฉ๋œ ์ •์ ์˜ ๊ฐœ์ˆ˜๋ฅผ ๋ณด์—ฌ์คŒ
    • batched
      • ๋ฐฐ์นญ๋œ ๋„๋กœ์šฐ ์ฝœ์˜ ๊ฐœ์ˆ˜๋ฅผ ๋ณด์—ฌ์คŒ
    • physix
      • ๋ฌผ๋ฆฌ ์—”์ง„์ด ์‚ฌ์šฉ๋œ ์‹œ๊ฐ„์„ ๋‚˜ํƒ€๋ƒ„
    • animation
      • ๋ณธ ์• ๋‹ˆ๋ฉ”์ด์…˜์— ์‚ฌ์šฉ๋œ ์‹œ๊ฐ„์„ ๋‚˜ํƒ€๋ƒ„
    • culling
      • ์‹œ์•ผ ์ ˆ๋‘์ฒด ์ปฌ๋ง ์ž‘์—…์— ์†Œ์š”๋œ ์‹œ๊ฐ„์„ ๋‚˜ํƒ€๋ƒ„
    • skinning
      • ์Šคํ‚ค๋‹ ์• ๋‹ˆ๋ฉ”์ด์…˜ ์ž‘์—…์— ์†Œ์š”๋œ ์‹œ๊ฐ„์„ ๋ณด์—ฌ์คŒ
    • batching
      • ๋ฐฐ์นญ์— ์†Œ์š”๋œ ์‹œ๊ฐ„์„ ๋ณด์—ฌ์คŒ
    • render
      • ๊ฒŒ์ž„ ์˜ค๋ธŒ์ ํŠธ๋“ค์„ ๋ Œ๋”๋งํ•˜๋Š” ๋ฐ ์†Œ์š”๋œ ์‹œ๊ฐ„์„ ๋‚˜ํƒ€๋ƒ„
    • fixed-update-count
      • ํ”„๋ ˆ์ž„ ์‚ฌ์ด์— FixedUpdate ํ•จ์ˆ˜๊ฐ€ ๋ช‡ ๋ฒˆ ์ˆ˜ํ–‰๋๋Š”์ง€ ๋ณด์—ฌ์คŒ
    • update
      • Update ํ•จ์ˆ˜์˜ ์‹คํ–‰์— ์†Œ์š”๋œ ์‹œ๊ฐ„์„ ๋ณด์—ฌ์คŒ
    • fixedupdate
      • FixedUpdate ํ•จ์ˆ˜์˜ ์‹คํ–‰์— ์†Œ์š”๋œ ์‹œ๊ฐ„์„ ๋ณด์—ฌ์คŒ
      • FixedUpdate ํ•จ์ˆ˜๋Š” ๊ธฐ๋ณธ์œผ๋กœ 0.02์ดˆ๋งˆ๋‹ค ์„ค์ •๋˜๋Š” ์ž์ฃผ ์‹คํ–‰๋˜๋Š” ํ•จ์ˆ˜
      • ์ด ์ˆ˜์น˜๋Š” ์ตœ๋Œ€ํ•œ ์ค„์—ฌ์•ผ ํ•จ
    • coroutines
      • ์ฝ”๋ฃจํ‹ด์˜ ์‹คํ–‰์— ์†Œ์š”๋œ ์‹œ๊ฐ„์„ ๋ณด์—ฌ์คŒ
    • allocated heap
      • ๊ฐ€๋น„์ง€ ์ปฌ๋ ‰ํ„ฐ์— ์˜ํ•ด ํ• ๋‹น๋œ ๋ฉ”๋ชจ๋ฆฌ์˜ ์ด๋Ÿ‰์„ ๋ณด์—ฌ์คŒ
    • used heap
      • ํ• ๋‹น๋œ ๋ฉ”๋ชจ๋ฆฌ์—์„œ ์‚ฌ์šฉ๋˜๊ณ  ์žˆ๋Š” ๋ฉ”๋ชจ๋ฆฌ ์šฉ๋Ÿ‰์„ ๋ณด์—ฌ์คŒ
    • max number of collection
      • ์ตœ๊ทผ 30ํ”Œ๋ ˆ์ž„ ์ด๋‚ด์— ์ง„ํ–‰ํ•œ ๊ฐ€๋น„์ง€ ์ฝœ๋ ‰์…˜์˜ ํšŸ์ˆ˜๋ฅผ ๋ณด์—ฌ์คŒ
    • collection total duration
      • ๊ฐ€๋น„์ง€ ์ฝœ๋ ‰์…˜์— ์†Œ์š”๋œ ์‹œ๊ฐ„์„ ๋ณด์—ฌ์คŒ

GPU Vendors Profiler

Android Studio Monitor

Xcode Instruments