(+) VisualVM
μμ μ μμ μΆμΆμ νλ€κ° κ΄λ¦¬μκ° oomμΌλ‘ μκΎΈ λ΄λ €κ°μ κ·Έκ±Έ κ°μ ν΄μΌ νμλ μ μ΄ μλ€. ν΄κ²°μ νκΈ° μν΄μ μμΈμ λ¨Όμ μ°Ύμ보λ μ¬μ©νλ λΌμ΄λΈλ¬λ¦¬μμ μμ μ μΆμΆνλ κ³Όμ μμ row λ€μ μμ μ μ νλκ³ λκ° μ¬μ²λ¦¬λ₯Ό μν΄μ μ κ·Όμ ν μ μλλ‘ λ©λͺ¨λ¦¬ μμ κ³μ κ°μ§κ³ μλ λ°, μ΄ λ¨μμκ° λμμ§μλ‘ λ©λͺ¨λ¦¬λ₯Ό λ§μ΄ μ¬μ©νλ κ²μ΄μλ€.
κ·Έλμ row μ λν μ¬μ κ·Όμ ν¬κΈ°νκ³ λ³΄κ΄νλ rowλ₯Ό μ€μ΄λ©΄ λ©λͺ¨λ¦¬ μ¬μ©λμ΄ μ€μ΄λ€ κ²μΌλ‘ μΆμΈ‘λμ΄μ μ½λλ₯Ό κ·Έλ κ² λ°κΏ¨λλ°, λ¬Έμ λ μ€μ λ‘ λ©λͺ¨λ¦¬λ₯Ό μ κ² μ°λμ§λ₯Ό μ μ μμλ€.
κ·Έλ μ¬μ©νκ² VisualVM μΈλ° μ¬λ¬ μ©λκ° μλ€.
λͺ¨λν°λ§: VisualVMμ JVMμμ μ€ν μ€μΈ μ ν리μΌμ΄μ μ μνλ₯Ό λͺ¨λν°λ§ν μ μμ΅λλ€. CPU μ¬μ©λ, λ©λͺ¨λ¦¬ μ¬μ©λ, μ€λ λ μν, κ°λΉμ§ 컬λ μ (Garbage Collection) λ±μ μ€μκ°μΌλ‘ λͺ¨λν°λ§νμ¬ μ ν리μΌμ΄μ μ μ±λ₯κ³Ό 리μμ€ μ¬μ©μ νμ ν μ μμ΅λλ€.
νλ‘νμΌλ§: VisualVMμ μ ν리μΌμ΄μ μ μ€ν μκ° λμμ μ±λ₯ νλ‘νμΌλ§μ μ 곡ν©λλ€. CPU μ¬μ©λμ΄λ λ©λͺ¨λ¦¬ μ¬μ©λμ΄ λμ λΆλΆμ μλ³νκ³ , μ±λ₯ μ νμ μμΈμ λΆμν μ μμ΅λλ€. νλ‘νμΌλ§ κ²°κ³Όλ₯Ό ν΅ν΄ μ ν리μΌμ΄μ μ λ³λͺ© νμμ μ°Ύκ³ μ΅μ νν μ μμ΅λλ€.
μ€λ λ λΆμ: VisualVMμ μ ν리μΌμ΄μ λ΄μ μ€λ λ μνλ₯Ό λΆμν μ μμ΅λλ€. μ€λ λ λ€ν(Thread Dump)λ₯Ό ν΅ν΄ λ°λλ½(Deadlock)μ΄λ μ€λ λ μ°¨λ¨(Thread Blocking) λ±μ λ¬Έμ λ₯Ό μλ³νκ³ ν΄κ²°ν μ μμ΅λλ€.
ν λ€ν λΆμ: VisualVMμ ν λ€ν(Heap Dump)λ₯Ό μμ±νκ³ , μ ν리μΌμ΄μ μ ν λ©λͺ¨λ¦¬ μνλ₯Ό λΆμν μ μμ΅λλ€. κ°μ²΄μ μ, λ©λͺ¨λ¦¬ λμ(Memory Leak), κ°λΉμ§ 컬λ μ μ ν¨μ¨ λ±μ λΆμνμ¬ λ©λͺ¨λ¦¬ κ΄λ ¨ λ¬Έμ λ₯Ό ν΄κ²°ν μ μμ΅λλ€.
κ·Έ λ μ¬μ©νλ λ°©λ²μ μλ²μ ν μ©λμ μλμ μΌλ‘ μ κ² λμμ λμΌν μμ²μΌλ‘ κΈ°μ‘΄ μ½λ, μλ‘μ΄ μ½λμ μμ²νλ©΄μ λ©λͺ¨λ¦¬ μ¬μ©λμ 보면μ ν΄κ²°νλ€. κ°μ λ μ½λμμ μ€μ λ‘ ν μ¬μ©λμ μ¦κ°νμ΄ μ μλ€.
κ°μ λ μ½λλ‘ ν μ€νΈλ₯Ό ν΄λ³΄κ³ 'oomμ΄ μλλꡬλ, κ°μ λ거ꡬλ' νκ³ λ¬΄μμ λ°μνκΈ° 보λ€λ μ€μ λ‘ λ°μ΄ν°λ₯Ό κ°μ§κ³ 'μ΄λ κ² κ°μ λμλ€' λΌκ³ μ ννκ² κ·Όκ±°λ₯Ό ν΅ν΄ νλ¨νλκ² λ§λ€.
Last updated