Найти Π² Π”Π·Π΅Π½Π΅
89 подписчиков

πŸš€ VisualVM: ШвСйцарский Π½ΠΎΠΆ для Π°Π½Π°Π»ΠΈΠ·Π° Java-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ


πŸ”§ Π§Ρ‚ΠΎ ΡƒΠΌΠ΅Π΅Ρ‚ VisualVM?
β–ͺ πŸ“Š ΠœΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ JVM Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ:
β€” ΠŸΠΎΡ‚Ρ€Π΅Π±Π»Π΅Π½ΠΈΠ΅ памяти (Heap ΠΈ Non-Heap).
β€” ΠΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ², Π·Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ CPU, частоту GC.
β€” Π“Ρ€Π°Ρ„ΠΈΠΊΠΈ ΠΈ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ для Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊ.

β–ͺ πŸ” ΠŸΡ€ΠΎΡ„ΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Β«ΡƒΠ·ΠΊΠΈΡ… мСст»:
β€” Π’ΠΎΠΏ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΏΠΎ ΠΏΠΎΡ‚Ρ€Π΅Π±Π»Π΅Π½ΠΈΡŽ CPU/памяти.
β€” Π‘Ρ€Π°Π²Π½Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Ρ€Π°Π·Π½Ρ‹Ρ… участков ΠΊΠΎΠ΄Π°.

β–ͺ πŸ•΅οΈβ™‚οΈ Π”Π΅Ρ‚Π΅ΠΊΡ‚ΠΈΠ² для памяти:
β€” Анализ heap-Π΄Π°ΠΌΠΏΠΎΠ² (поиск ΡƒΡ‚Π΅Ρ‡Π΅ΠΊ, «тяТСлых» ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ²).
β€” ВрСйсинг ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ²: статусы (Π°ΠΊΡ‚ΠΈΠ²Π΅Π½, Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π½, ΠΎΠΆΠΈΠ΄Π°Π΅Ρ‚).

β–ͺ 🧩 ЭкосистСма ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ²:
β€” Π˜Π½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ с JConsole, JMX.
β€” ΠœΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ сСрвСров (Tomcat, Jetty).

πŸš€ Как Π½Π°Ρ‡Π°Ρ‚ΡŒ?

УстановитС:
β€” Для Java ≀8: встроСн Π² JDK.
β€” Для Java 9+: скачайтС ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ.

ЗапуститС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ β†’ ΠΎΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ VisualVM β†’ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ процСсс JVM Π² спискС.

πŸ”§ Когда ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ?
▫️ ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΡƒΠΏΠ°Π»Π° (ΠΌΠ΅Π΄Π»Π΅Π½Π½Ρ‹Π΅ ΠΎΡ‚Π²Π΅Ρ‚Ρ‹, Π»Π°Π³ΠΈ).
▫️ ΠŸΠΎΠ΄ΠΎΠ·Ρ€Π΅Π½ΠΈΠ΅ Π½Π° ΡƒΡ‚Π΅Ρ‡ΠΊΡƒ памяти (OOM-ошибки, рост Heap).
▫️ Π”Π΅Π΄Π»ΠΎΠΊΠΈ Π² ΠΏΠΎΡ‚ΠΎΠΊΠ°Ρ… (ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ «зависаСт»).
▫️ ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ ΠΊΠΎΠ΄Π° ΠΏΠ΅Ρ€Π΅Π΄ Ρ€Π΅Π»ΠΈΠ·ΠΎΠΌ.

πŸ’‘ Π›Π°ΠΉΡ„Ρ…Π°ΠΊ: Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Sampler для быстрого поиска Β«ΠΏΡ€ΠΎΠΆΠΎΡ€Π»ΠΈΠ²Ρ‹Ρ…Β» ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² Π±Π΅Π· ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ профилирования.



#tools #Π±Π°Π·Π°
πŸš€ VisualVM: ШвСйцарский Π½ΠΎΠΆ для Π°Π½Π°Π»ΠΈΠ·Π° Java-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ  πŸ”§ Π§Ρ‚ΠΎ ΡƒΠΌΠ΅Π΅Ρ‚ VisualVM? β–ͺ πŸ“Š ΠœΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ JVM Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ: β€” ΠŸΠΎΡ‚Ρ€Π΅Π±Π»Π΅Π½ΠΈΠ΅ памяти (Heap ΠΈ Non-Heap).
Около ΠΌΠΈΠ½ΡƒΡ‚Ρ‹