ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ java
Π ΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΏΠΎ ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²ΡΠΈΠΊΠ°ΠΌ Java
1. ΠΠ±Π·ΠΎΡ
ΠΠ½ΠΎΠ³Π΄Π° ΠΏΡΠΎΡΡΠΎ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΠΊΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠΎΡΡΠΎ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ, Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ. ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π½Π°ΠΌ Π·Π°Ρ ΠΎΡΠ΅ΡΡΡ ΡΠ·Π½Π°ΡΡ, ΡΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π²Π½ΡΡΡΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠ°ΠΊ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ ΠΏΠ°ΠΌΡΡΡ, ΠΏΠΎΡΠ»Π΅Π΄ΡΡΠ²ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Π° ΠΊ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Ρ Π΄ΡΡΠ³ΠΈΠΌ, ΠΏΠΎΡΠ»Π΅Π΄ΡΡΠ²ΠΈΡ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ, ΠΎΠ±Π»Π°ΡΡΠΈ Π΄Π»Ρ ΠΏΠΎΠ²ΡΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΈ Ρ. Π. ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²ΡΠΈΠΊΠΈ.
Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ ΠΎΠ±ΡΡΠ΄ΠΈΠΌ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²ΡΠΈΠΊΠΈ Java: JProfiler, YourKit, Java VisualVM ΠΈ Netbeans Profiler.
2. JProfiler
ΠΠ±Π»Π°Π΄Π°Ρ ΡΡΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ΅ΠΉ, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π»Π΅Π³ΠΊΠΎ ΡΠ·Π½Π°ΡΡ, ΡΡΠΎ Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ, ΠΈΡΠΊΠ»ΡΡΠΈΡΡ ΠΈΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ Π² Π±Π°Π·ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅.
ΠΠΎΡ ΠΊΠ°ΠΊ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ JProfiler:
ΠΠ±Π·ΠΎΡΠ½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ JProfiler Ρ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ
ΠΠ° ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π½ΠΈΠΆΠ΅ ΡΠ½ΠΈΠΌΠΊΠ΅ ΡΠΊΡΠ°Π½Π° ΠΏΠΎΠΊΠ°Π·Π°Π½ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ JDBC ΡΠΎ ΡΠΏΠΈΡΠΊΠΎΠΌ ΡΠ΅ΠΊΡΡΠΈΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ:
ΠΡΠΎΡΠΌΠΎΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ
JProfiler
ΠΡΠ»ΠΈ ΠΌΡ Ρ ΠΎΡΠΈΠΌ ΡΠ·Π½Π°ΡΡ ΠΎ Π΄Π΅ΡΠ΅Π²Π΅ Π²ΡΠ·ΠΎΠ²ΠΎΠ² Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠΉ Ρ Π½Π°ΡΠ΅ΠΉ Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½ΡΡ ΠΈ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ ΠΏΡΠΎΡΠΎΡΠΈΡΡΡΡ, JProfiler ΠΏΡΠ΅ΠΊΡΠ°ΡΠ½ΠΎ ΡΠΏΡΠ°Π²ΠΈΡΡΡ Ρ ΡΡΠΈΠΌ.
Π ΡΠ»ΡΡΠ°Π΅ Π΄Π΅ΡΠ΅Π²Π° Π²ΡΠ·ΠΎΠ²ΠΎΠ² ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π²ΡΠ±ΡΠ°ΡΡ ΠΏΡΠΎΡΠΌΠΎΡΡ Π΄Π΅ΡΠ΅Π²Π° Π²ΡΠ·ΠΎΠ²ΠΎΠ² ΠΆΠΈΠ²ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ², ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΡΠΎ ΡΠ±ΠΎΡΠΊΠΎΠΉ ΠΌΡΡΠΎΡΠ° ΠΈΠ»ΠΈ ΡΠΎΠ³ΠΎ ΠΈ Π΄ΡΡΠ³ΠΎΠ³ΠΎ. ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠ΅ΡΠΈΡΡ, Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π»ΠΈ ΡΡΠΎ Π΄Π΅ΡΠ΅Π²ΠΎ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ Π±ΡΡΡ Π΄Π»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° ΠΈΠ»ΠΈ ΠΏΠ°ΠΊΠ΅ΡΠ° ΠΈΠ»ΠΈ Π΄Π»Ρ Π²ΡΠ΅Ρ ΠΊΠ»Π°ΡΡΠΎΠ².
ΠΠ° ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π½ΠΈΠΆΠ΅ ΡΠΊΡΠ°Π½Π΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ Π²ΡΠ΅ΠΌΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ Ρ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎΠΌ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠΎΠ²:
ΠΡΠΎΡΠΌΠΎΡΡ ΠΆΠΈΠ²ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ JProfiler
3. YourKit
YourKit Java Profiler ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π½Π° ΠΌΠ½ΠΎΠ³ΠΈΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°Ρ ΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠ΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ (Windows, MacOS, Linux, Solaris, FreeBSD ΠΈ Ρ. Π.).
ΠΠΎΡ ΠΊΡΠ°ΡΠΊΠΈΠΉ ΠΎΠ±Π·ΠΎΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ² ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΠ°ΠΌΡΡΠΈ ΡΠ΅ΡΠ²Π΅ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Tomcat:
ΠΡΠΎΡΠΈΠ»Ρ ΠΏΠ°ΠΌΡΡΠΈ YourKit Java Profiler ΡΠ΅ΡΠ²Π΅ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Tomcat
YourKit ΠΈΠΌΠ΅Π΅Ρ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΡ ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π¦Π, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ΅Π»Π΅Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½Π½ΠΎ ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ ΠΎΠ±Π»Π°ΡΡΠΈ Π½Π°ΡΠ΅Π³ΠΎ ΠΊΠΎΠ΄Π°, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΈΠ»ΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠ΅Π²ΡΡ Π² ΠΏΠΎΡΠΎΠΊΠ°Ρ . ΠΡΠΎ ΠΎΡΠ΅Π½Ρ ΠΌΠΎΡΠ½ΡΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠΉ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΡΡΠ»ΠΎΠ²Π½ΠΎΠ΅ ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ Β«ΡΡΠΎ, Π΅ΡΠ»ΠΈΒ».
ΠΠ° ΡΠΈΡΡΠ½ΠΊΠ΅ 5 ΠΏΠΎΠΊΠ°Π·Π°Π½ ΠΏΡΠΈΠΌΠ΅Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΠΎΡΠΎΠΊΠΎΠ²:
Π ΠΈΡΡΠ½ΠΎΠΊ 5. ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΠΎΡΠΎΠΊΠΎΠ² YourKit Java Profiler
ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡ Π²ΡΠ·ΠΎΠ²Ρ Π±Π°Π· Π΄Π°Π½Π½ΡΡ SQL ΠΈ NoSQL Ρ ΠΏΠΎΠΌΠΎΡΡΡ YourKit. ΠΠ½ Π΄Π°ΠΆΠ΅ Π΄Π°Π΅Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½Π½ΡΡ Π·Π°ΠΏΡΠΎΡΠ°Ρ .
Π₯ΠΎΡΡ ΡΡΠΎ Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈΠΌ ΡΠΎΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ, ΠΌΠΎΠ΄Π΅Π»Ρ ΡΠ°Π·ΡΠ΅ΡΠ°ΡΡΠ΅Π³ΠΎ Π»ΠΈΡΠ΅Π½Π·ΠΈΡΠΎΠ²Π°Π½ΠΈΡ YourKit Π΄Π΅Π»Π°Π΅Ρ Π΅Π³ΠΎ Ρ ΠΎΡΠΎΡΠΈΠΌ Π²ΡΠ±ΠΎΡΠΎΠΌ Π΄Π»Ρ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ ΠΈΠ»ΠΈ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ Π³ΡΡΠΏΠΏ, Π° ΡΠ°ΠΊΠΆΠ΅ Π΄Π»Ρ ΠΏΠΎΠΊΡΠΏΠΎΠΊ Ρ ΠΎΠ΄Π½ΠΎΠΉ Π»ΠΈΡΠ΅Π½Π·ΠΈΠ΅ΠΉ.
4. Java VisualVM
ΠΠΈΠΆΠ΅ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΠΏΡΠΎΡΡΠΎΠΉ ΠΎΠ±Π·ΠΎΡΠ½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΡΠ΅Π°Π½ΡΠ° ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Java VisualVM:
ΠΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ΅ΡΠ²Π΅ΡΠ° Tomcat Java VisualVM
ΠΠΈΠΆΠ΅ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠ²ΠΈΠ΄Π΅ΡΡ Π²Π½Π΅ΡΠ½ΠΈΠΉ Π²ΠΈΠ΄ ΠΏΠ°ΠΌΡΡΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Java, ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Java VisualVM:
ΠΠΈΡΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΊΡΡΠΈ ΠΏΠ°ΠΌΡΡΠΈ Java VisualVM
5. ΠΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²ΡΠΈΠΊ NetBeans
ΠΡΠ΅ Π΄ΡΡΠ³ΠΈΠ΅ ΠΎΠΏΠΈΡΠ°Π½Π½ΡΠ΅ Π²ΡΡΠ΅ ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²ΡΠΈΠΊΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ ΠΏΠ»Π°Π³ΠΈΠ½Ρ Π΄Π»Ρ ΡΠ»ΡΡΡΠ΅Π½ΠΈΡ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΈ IDE.
ΠΠ° ΡΠ½ΠΈΠΌΠΊΠ΅ ΡΠΊΡΠ°Π½Π° Π½ΠΈΠΆΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ ΠΏΡΠΈΠΌΠ΅Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²ΡΠΈΠΊΠ° NetBeans:
ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΡΠ΅Π»Π΅ΠΌΠ΅ΡΡΠΈΠΈ Netbeans Profiler
6. ΠΡΡΠ³ΠΈΠ΅ ΡΠ²Π΅ΡΠ΄ΠΎΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²ΡΠΈΠΊΠΈ
7. ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ ΠΎΠ±ΡΡΠ΄ΠΈΠ»ΠΈ ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²ΡΠΈΠΊΠΈ Java. ΠΡ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π»ΠΈ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Profiler ΠΈ ΡΠΎ, ΡΡΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΡΠΉ Π²ΡΠ±ΠΎΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· Π½ΠΈΡ .
ΠΠΎΡΡΡΠΏΠ½ΠΎ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²ΡΠΈΠΊΠΎΠ² Java, Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ ΠΎΠ±Π»Π°Π΄Π°ΡΡ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΌΠΈ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠ°ΠΌΠΈ. ΠΡΠ±ΠΎΡ ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²ΡΠΈΠΊΠ° Java Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ, ΠΊΠ°ΠΊ ΠΌΡ Π²ΠΈΠ΄Π΅Π»ΠΈ Π² ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅, Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ², Π²ΡΠ±ΡΠ°Π½Π½ΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠΌ, ΡΡΠ΅Π±ΡΠ΅ΠΌΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ Π°Π½Π°Π»ΠΈΠ·Π° ΠΈ ΡΡΠ½ΠΊΡΠΈΠΉ ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²ΡΠΈΠΊΠ°.
Java VisualVM ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ Π΄Π°Π½Π½ΡΠ΅ Π΄Π»Ρ ΠΌΠ΅ΡΡΠ½ΡΡ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΈ ΡΠ΄Π°Π»Π΅Π½Π½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° Π²ΠΊΠ»Π°Π΄ΠΊΠ΅, ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ Π΄Π»Ρ ΡΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. Π£ ΠΠ°Ρ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΌΠ½ΠΎΠ³ΠΎΠΊΡΠ°ΡΠ½ΡΠ΅ ΠΎΡΠΊΡΡΡΡΠ΅ Π²ΠΊΠ»Π°Π΄ΠΊΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΠ°ΠΆΠ΄Π°Ρ Π²ΠΊΠ»Π°Π΄ΠΊΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΏΠΎΠ΄Π²ΠΊΠ»Π°Π΄ΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΡΠ²ΠΎΠ΄ΡΡ Π½Π° ΡΠΊΡΠ°Π½ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΠΈΠΏΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ.
ΠΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ
ΠΠΊΠ»Π°Π΄ΠΊΠ° Profiler ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΠ°ΠΌ Π·Π°ΠΏΡΡΡΠΈΡΡ ΠΈ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΠ΅Π°Π½Ρ ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΌΠ΅ΡΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ. ΠΡΠΎΡΠΈΠ»ΠΈΡΡΡΡΠΈΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ Π²ΡΠ²ΠΎΠ΄ΡΡΡΡ Π½Π° ΡΠΊΡΠ°Π½ Π½Π° Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ Profiler. ΠΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠ°Π½Π΅Π»Ρ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ², ΡΡΠΎΠ±Ρ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ, Π²ΡΠ·Π²Π°ΡΡ ΡΠ±ΠΎΡΠΊΡ «ΠΌΡΡΠΎΡΠ°» ΠΈ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ, ΠΏΠΎΠΊΠ° ΠΡ Π½Π΅ Π³ΠΎΡΠΎΠ²Ρ ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. ΠΠΎΠΆΠ½ΠΎ Π²ΡΠ±ΡΠ°ΡΡ ΠΈΠ· ΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΠΎΠΏΡΠΈΠΉ ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ:
ΠΠΎΠ³Π΄Π° ΠΡ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΠ΅ ΡΠ΅Π°Π½Ρ ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ, Java, VisualVM ΠΏΡΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ ΠΊ ΠΌΠ΅ΡΡΠ½ΠΎΠΌΡ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΈ Π½Π°ΡΠΈΠ½Π°Π΅Ρ ΡΠΎΠ±ΠΈΡΠ°ΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΠΎΠ³Π΄Π° ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ² Π΄ΠΎΡΡΡΠΏΠ½ΠΎ, ΠΎΠ½ΠΈ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π²ΡΠ²ΠΎΠ΄ΡΡΡΡ Π½Π° ΡΠΊΡΠ°Π½ Π½Π° Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ Profiler.
ΠΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΏΠ°Π½Π΅Π»Ρ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ²
ΠΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ Π½Π° ΠΏΠ°Π½Π΅Π»ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² Profiling Results, ΡΡΠΎΠ±Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ²:
Π€ΠΈΠ»ΡΡΡΠ°ΡΠΈΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ² ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ
ΠΠΎΠ»Π΅ ΡΠΈΠ»ΡΡΡΠ° Π½ΠΈΠΆΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ² ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΠ°ΠΌ ΡΠΈΠ»ΡΡΡΠΎΠ²Π°ΡΡ Π²ΡΠ²Π΅Π΄Π΅Π½Π½ΡΠ΅ Π½Π° ΡΠΊΡΠ°Π½ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ ΡΠΎΠ³Π»Π°ΡΠ½ΠΎ ΠΈΠΌΠ΅Π½ΠΈ ΠΌΠ΅ΡΠΎΠ΄Π°. Π§ΡΠΎΠ±Ρ ΡΠΈΠ»ΡΡΡΠΎΠ²Π°ΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ, Π²Π²Π΅Π΄ΠΈΡΠ΅ ΡΠ΅ΡΠΌΠΈΠ½ Π² ΠΏΠΎΠ»Π΅ ΡΠΈΠ»ΡΡΡΠ° ΠΈΠΌΠ΅Π½ΠΈ ΠΌΠ΅ΡΠΎΠ΄Π°, Π²ΡΠ±Π΅ΡΠΈΡΠ΅ ΠΊΠΎΡΠΎΡΡΠΉ, ΡΠΈΠ»ΡΡΡΡΡ ΠΌΠ΅ΡΠΎΠ΄, ΡΡΠΎΠ±Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈ Π½Π°ΠΆΠ°ΡΡ ΠΠΎΠ·Π²ΡΠ°Ρ. ΠΠΎΠΆΠ½ΠΎ Π²ΠΈΠ΄Π΅ΡΡ ΠΈ Π²ΡΠ±ΡΠ°ΡΡ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠ΅ ΡΡΠΎΠΊΠΈ ΡΠΈΠ»ΡΡΡΠ°, ΡΠ΅Π»ΠΊΠ°Ρ ΠΏΠΎ ΡΡΡΠ΅Π»ΠΊΠ΅ Π½Π°ΠΏΡΠ°Π²ΠΎ ΠΎΡ ΠΏΠΎΠ»Ρ ΡΠΈΠ»ΡΡΡΠ° ΠΈΠΌΠ΅Π½ΠΈ ΠΌΠ΅ΡΠΎΠ΄Π°.
ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π½Π°ΡΡΡΠΎΠ΅ΠΊ ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ
Java ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ VisualVM ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΡΠΌΠΎΡΡΠ΅ΡΡ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ, ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Ρ ΡΠ»Π°ΠΆΠΎΠΊ Settings Π½Π° Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ Profiler. ΠΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΊΠΎΠ³Π΄Π° Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ ΡΠ΅Π°Π½Ρ ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π½Π΅ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ.
ΠΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π¦Π
ΠΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΏΡΠΎΡΠΈΠ»Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΏΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ Π¦Π Π½Π° ΡΡΠΎΠ²Π½Π΅ ΠΌΠ΅ΡΠΎΠ΄Π° (Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ), ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Ρ ΠΏΠΎΠ»Π½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΈ ΡΠΈΡΠ»ΠΎ Π²ΡΠ·ΠΎΠ²ΠΎΠ² Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π°. ΠΠ½Π°Π»ΠΈΠ·ΠΈΡΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Java ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ VisualVM Π²ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΏΡΠΎΡΠΈΠ»ΠΈΡΡΠ΅ΠΌΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΠΎΡΠΎΠΊΠΈ ΠΈΡΠΏΡΡΠΊΠ°ΡΡ «ΡΠΎΠ±ΡΡΠΈΠ΅» Π·Π°ΠΏΠΈΡΠΈ ΠΌΠ΅ΡΠΎΠ΄Π°, Π²Π²ΠΎΠ΄Ρ ΠΌΠ΅ΡΠΎΠ΄ ΠΈ Π³Π΅Π½Π΅ΡΠΈΡΡΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅Π΅ «ΡΠΎΠ±ΡΡΠΈΠ΅» Π²ΡΡ ΠΎΠ΄Π° ΠΌΠ΅ΡΠΎΠ΄Π°, Π²ΡΡ ΠΎΠ΄Ρ ΠΈΠ· ΠΌΠ΅ΡΠΎΠ΄Π°. ΠΠ±Π° ΠΈΠ· ΡΡΠΈΡ ΡΠΎΠ±ΡΡΠΈΠΉ ΡΠΎΠ΄Π΅ΡΠΆΠ°Ρ ΠΌΠ΅ΡΠΊΠΈ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ. ΠΡΠΈ Π΄Π°Π½Π½ΡΠ΅ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡΡΡ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ ΡΠ΅Π°Π»ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ.
Π‘Π½ΠΈΠΌΠΎΠΊ ΡΠΊΡΠ°Π½Π° Π²ΠΊΠ»Π°Π΄ΠΊΠΈ Profiler, ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Ρ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π¦Π
Π‘Π½ΠΈΠΌΠΎΠΊ ΡΠΊΡΠ°Π½Π° Π²ΠΊΠ»Π°Π΄ΠΊΠΈ Profiler, ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π¦Π
ΠΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡΠΈ
ΠΠΎΠ³Π΄Π° ΠΡ Π°Π½Π°Π»ΠΈΠ·ΠΈΡΡΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡΠΈ, Java VisualVM Π½Π°ΡΠΈΠ½Π°Π΅Ρ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ²Π°ΡΡ Π·Π°Π³ΡΡΠΆΠ΅Π½Π½ΡΠ΅ ΠΊΠ»Π°ΡΡΡ ΠΈ Π²ΡΠ²ΠΎΠ΄ΠΈΡ Π½Π° ΡΠΊΡΠ°Π½ ΠΎΠ±ΡΠ΅Π΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ², Π²ΡΠ΄Π΅Π»Π΅Π½Π½ΡΡ ΠΊΠ°ΠΆΠ΄ΡΠΌ ΠΊΠ»Π°ΡΡΠΎΠΌ (Π²ΠΊΠ»ΡΡΠ°Ρ ΠΊΠ»Π°ΡΡΡ ΠΌΠ°ΡΡΠΈΠ²Π°) Π² ΡΠ°Π±Π»ΠΈΡΠ΅. ΠΠ»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° Π² Π½Π°ΡΡΠΎΡΡΠΈΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ Π·Π°Π³ΡΡΠΆΠ΅Π½Π½ΡΠΉ ΠΊΠ»Π°ΡΡ Π² Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Π΅ Java (JVM) ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π²ΡΠ²ΠΎΠ΄ΡΡ Π½Π° ΡΠΊΡΠ°Π½ ΡΠ°Π·ΠΌΠ΅Ρ ΠΈ ΡΠΈΡΠ»ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ², Π²ΡΠ΄Π΅Π»Π΅Π½Π½ΡΡ Π½Π°ΡΠΈΠ½Π°Ρ Ρ Π·Π°ΠΏΡΡΠ΅Π½Π½ΠΎΠ³ΠΎ ΡΠ΅Π°Π½ΡΠ° ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ. Π Π΅Π·ΡΠ»ΡΡΠ°ΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡΡΡΡ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π½ΠΎΠ²ΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ Π²ΡΠ΄Π΅Π»ΡΡΡΡΡ ΠΈ ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π½ΠΎΠ²ΡΠ΅ ΠΊΠ»Π°ΡΡΡ Π·Π°Π³ΡΡΠΆΠ°ΡΡΡΡ.
Java VisualVM Π²ΡΠ²ΠΎΠ΄ΠΈΡ Π½Π° ΡΠΊΡΠ°Π½ ΡΠΈΡΠ»ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΠΊΠ°ΠΊ Π°Π±ΡΠΎΠ»ΡΡΠ½ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ ΠΈ ΠΊΠ°ΠΊ ΠΏΡΠΎΡΠ΅Π½Ρ. ΠΡΠ΄Π΅Π»Π΅Π½Π½ΡΠ΅ Π±Π°ΠΉΡΡ ΡΠ°ΠΊΠΆΠ΅ Π²ΡΠ²ΠΎΠ΄ΡΡΡΡ Π½Π° ΡΠΊΡΠ°Π½ ΠΊΠ°ΠΊ Π³ΡΠ°ΡΠΈΠΊ, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡΠΈΠΉ ΠΏΡΠΎΡΠ΅Π½Ρ Π±Π°ΠΉΡΠΎΠ² ΡΠ°ΠΊ ΠΆΠ΅ ΠΊΠ°ΠΊ ΠΎΠ±ΡΠ΅Π΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π±Π°ΠΉΡΠΎΠ², Π²ΡΠ΄Π΅Π»Π΅Π½Π½ΡΡ ΠΊΠ°ΠΆΠ΄ΡΠΌ ΠΊΠ»Π°ΡΡΠΎΠΌ.
Π‘Π½ΠΈΠΌΠΎΠΊ ΡΠΊΡΠ°Π½Π° Π²ΠΊΠ»Π°Π΄ΠΊΠΈ Profiler, ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Ρ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΠ°ΠΌΡΡΠΈ
Π‘Π½ΠΈΠΌΠΎΠΊ ΡΠΊΡΠ°Π½Π° Π²ΠΊΠ»Π°Π΄ΠΊΠΈ Profiler, ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΠ°ΠΌΡΡΠΈ
ΠΠ·ΡΡΠΈΠ΅ Π‘Π½ΠΈΠΌΠΊΠΎΠ² ΠΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²ΡΠΈΠΊΠ°
Java VisualVM ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΠ°ΠΌ Π²Π·ΡΡΡ ΡΠ½ΠΈΠΌΠΊΠΈ ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²ΡΠΈΠΊΠ°, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ ΡΠ΅Π°Π½ΡΠ° ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ. Π‘Π½ΠΈΠΌΠΎΠΊ ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²ΡΠΈΠΊΠ° ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ Π² Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ, ΡΠ½ΠΈΠΌΠΎΠΊ Π±Π΅ΡΠ΅ΡΡΡ. Π§ΡΠΎΠ±Ρ Π²Π·ΡΡΡ ΡΠ½ΠΈΠΌΠΎΠΊ, Π½Π°ΠΆΠΌΠΈΡΠ΅ ΠΊΠ½ΠΎΠΏΠΊΡ Snapshot of Collected Results ΠΠ·ΡΡΠΈΡ Π½Π° ΠΏΠ°Π½Π΅Π»ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ², Π² ΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠ°ΠΊ ΡΠ΅Π°Π½Ρ ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ. ΠΠΎΠ³Π΄Π° ΠΡ Π±Π΅ΡΠ΅ΡΠ΅ ΡΠ½ΠΈΠΌΠΎΠΊ, ΡΠ½ΠΈΠΌΠΎΠΊ ΠΎΡΠΊΡΡΠ²Π°Π΅ΡΡΡ ΠΊΠ°ΠΊ Π²ΠΊΠ»Π°Π΄ΠΊΠ° Π½Π° Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. Π£Π·Π΅Π» Π΄Π»Ρ ΡΠ½ΠΈΠΌΠΊΠ° ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠΎΠ΄ ΡΠ·Π»ΠΎΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π² ΠΎΠΊΠ½Π΅ ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.
Π‘Π½ΠΈΠΌΠΎΠΊ ΡΠΊΡΠ°Π½Π° ΡΠ½ΠΈΠΌΠΊΠ° ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΠ°ΠΌΡΡΠΈ
Π‘Π½ΠΈΠΌΠΎΠΊ ΡΠΊΡΠ°Π½Π° ΡΠ½ΠΈΠΌΠΊΠ° ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π¦Π
ΠΠ»Ρ Π±ΠΎΠ»ΡΡΠ΅ ΠΎ ΡΠ½ΠΈΠΌΠΊΠ°Ρ ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²ΡΠΈΠΊΠ°, ΡΠΌ. ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ:
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΠΊΠ°ΠΊ Ρ ΠΌΠΎΠ³Ρ ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΡΠ²ΠΎΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Java?
Π― ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ»ΡΡΠ°Π» ΠΎ ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ. Π§ΡΠΎ Π²ΡΠ΅ ΡΡΠΎ Π·Π½Π°ΡΠΈΡ? ΠΠ°ΡΠΊΠΎΠ»ΡΠΊΠΎ Ρ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ, ΡΡΠΎ ΡΠ²ΠΎΠ΅Π³ΠΎ ΡΠΎΠ΄Π° ΠΈΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ, Π½ΠΎ ΠΌΠΎΠΆΠ΅Ρ Π»ΠΈ ΠΊΡΠΎ-Π½ΠΈΠ±ΡΠ΄Ρ Π±ΠΎΠ»Π΅Π΅ ΡΠ΅ΡΠΊΠΎ ΡΡΠΎΡΠΌΡΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΡΡΠΎ, ΡΡΠΎΠ±Ρ Π½ΠΎΠ²ΠΈΡΠΎΠΊ ΠΌΠΎΠ³ ΠΏΠΎΠ½ΡΡΡ ΡΡΡ ΠΈΠ΄Π΅Ρ. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Eclipse IDE Π΄Π»Ρ ΡΠ²ΠΎΠ΅ΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Java. ΠΠΎΠ³Ρ Π»ΠΈ Ρ ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΡΠ²ΠΎΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Eclipse IDE? ΠΠ°ΠΊΠΈΠ΅ ΡΠ°ΠΊΡΠΎΡΡ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΡΡΠΈΡΡΠ²Π°ΡΡ ΠΏΡΠΈ ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ (Ρ ΠΈΠΌΠ΅Ρ Π² Π²ΠΈΠ΄Ρ Π»ΡΡΡΠΈΠ΅ ΠΏΡΠ°ΠΊΡΠΈΠΊΠΈ)?
4 ΠΎΡΠ²Π΅ΡΠ°
Π― ΠΏΡΡΠ°ΡΡΡ ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π²Π΅Π±-ΠΏΠΎΠΈΡΠΊΠ° Java ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ Nutch ΠΈΠ· ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°. ΠΠ°ΡΠΊΠΎΠ»ΡΠΊΠΎ Ρ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ, Π΄Π»Ρ ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΌΠ½Π΅ Π½ΡΠΆΠ½ΠΎ Π²ΠΊΠ»ΡΡΠΈΡΡ ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π² ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ΅, ΡΡΠΎΠ±Ρ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°ΠΉΠ» ΠΏΡΠΎΡΠΈΠ»Ρ, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΠΎΡΠΊΡΡΡ Π² ΡΠ°ΠΊΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅, ΠΊΠ°ΠΊ GProf. ΠΠ°ΠΊ ΡΡΠΎ ΡΠ΄Π΅Π»Π°ΡΡ, Π΅ΡΠ»ΠΈ Π²ΡΠ΅, ΡΡΠΎ Ρ.
Π£ ΠΌΠ΅Π½Ρ Π΅ΡΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΡΡΠ΅Π½Π°ΡΠΈΠ΅Π² python. ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ· ΡΡΠΈΡ ΡΡΠ΅Π½Π°ΡΠΈΠ΅Π² Π²ΡΠ·ΡΠ²Π°ΡΡ ΠΊΠΎΠ΄ C. Π’Π΅ΠΏΠ΅ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π³ΠΎΡΠ°Π·Π΄ΠΎ ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅, ΡΠ΅ΠΌ ΡΠ°Π½ΡΡΠ΅, ΠΏΠΎΡΡΠΎΠΌΡ Ρ Ρ ΠΎΡΠ΅Π» Π±Ρ ΠΏΡΠΎΡΠ°ΠΉΠ»ΠΈΡΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ, ΡΡΠΎΠ±Ρ ΡΠ²ΠΈΠ΄Π΅ΡΡ, Π² ΡΠ΅ΠΌ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°. ΠΡΡΡ Π»ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ, ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΉ ΠΏΠ°ΠΊΠ΅Ρ ΠΈΠ»ΠΈ.
ΠΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΠΊΠ°ΠΊ ΡΠ°ΡΡΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π΄Π°Π½Π½Π°Ρ ΡΡΡΠΎΠΊΠ° ΠΊΠΎΠ΄Π° ΠΈ ΡΠΊΠΎΠ»ΡΠΊΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π±ΡΠ»ΠΎ ΠΏΠΎΡΡΠ°ΡΠ΅Π½ΠΎ Π½Π° Π½Π΅Π΅ (ΠΏΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΡΡΡΠΎΠΊΠ°ΠΌΠΈ). ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π»Π΅Π³ΠΊΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΌΠ΅ΡΡΠΎ, Π³Π΄Π΅ Π²Π°Ρ ΠΊΠΎΠ΄ ΠΏΡΠΎΠ²ΠΎΠ΄ΠΈΡ Π±ΠΎΠ»ΡΡΡΡ ΡΠ°ΡΡΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ.
ΠΡΠΎ, Π² Π΄Π²ΡΡ ΡΠ»ΠΎΠ²Π°Ρ , ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅.
Eclipse ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΈ ΠΌΠ½Π΅ ΡΠΊΠ°Π·Π°Π»ΠΈ, ΡΡΠΎ ΠΎΠ½ΠΈ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ Ρ ΠΎΡΠΎΡΠΈ, Π½ΠΎ ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Ρ ΠΈΡ Π½Π΅ Π·Π½Π°Ρ, ΠΏΡΡΡΡ ΠΊΡΠΎ-Π½ΠΈΠ±ΡΠ΄Ρ Π΄ΡΡΠ³ΠΎΠΉ ΠΎΡΠ²Π΅ΡΠΈΡ Π½Π° ΡΡΠΎΡ Π²ΠΎΠΏΡΠΎΡ.
ΠΠΎΠ½ΡΠ°Π΄ ΠΏΡΠ°Π², Π½ΠΎ ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΡ Π²Π°ΡΡΠ²Π°Π΅Ρ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ Π°ΡΠΏΠ΅ΠΊΡΡ Π²Π°ΡΠ΅ΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΠΏΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡΠΈ.
ΠΠΎΡ ΠΎΠΆΠΈΠ΅ Π²ΠΎΠΏΡΠΎΡΡ:
Π― ΡΠ°ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Java ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Ρ VisualVM, Π½ΠΎ Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ° Π½Π° ΠΌΠ°ΡΠΈΠ½Π΅ Π΅ΠΌΡ Π½ΡΠΆΠ΅Π½ X. Π― Π·Π½Π°Ρ, ΡΡΠΎ ΠΌΠΎΠ³Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡΡΡ ΡΠ΅ΡΠ΅Π· ΠΏΠΎΡΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ, Π½ΠΎ ΡΡΠΎ Π±ΡΠ΄Π΅Ρ Π°Π²ΡΠΎΠ½ΠΎΠΌΠ½ΠΎΠ΅ Π²ΡΠ±ΠΎΡΠΎΡΠ½ΠΎΠ΅ ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ.
Π£ ΠΌΠ΅Π½Ρ Π΅ΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ waaaay ΠΏΠΎ Π½ΠΎΠΌΠΈΠ½Π°Π»Ρ, ΠΈ Ρ Ρ ΠΎΡΠ΅Π» Π±Ρ Π΅Π΅ ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡ. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, ΠΎΠ½ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΡΠΉ, ΠΏΠΎΡΡΠΎΠΌΡ Ρ Π½Π΅ ΠΌΠΎΠ³Ρ Π½Π°ΠΉΡΠΈ Ρ ΠΎΡΠΎΡΠΈΠΉ ΡΠΏΠΎΡΠΎΠ± ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΡΡΡ Π²Π΅ΡΡ.
Π― ΠΏΡΡΠ°ΡΡΡ ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π²Π΅Π±-ΠΏΠΎΠΈΡΠΊΠ° Java ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ Nutch ΠΈΠ· ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°. ΠΠ°ΡΠΊΠΎΠ»ΡΠΊΠΎ Ρ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ, Π΄Π»Ρ ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΌΠ½Π΅ Π½ΡΠΆΠ½ΠΎ Π²ΠΊΠ»ΡΡΠΈΡΡ ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π² ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ΅, ΡΡΠΎΠ±Ρ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ.
Π£ ΠΌΠ΅Π½Ρ Π΅ΡΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΡΡΠ΅Π½Π°ΡΠΈΠ΅Π² python. ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ· ΡΡΠΈΡ ΡΡΠ΅Π½Π°ΡΠΈΠ΅Π² Π²ΡΠ·ΡΠ²Π°ΡΡ ΠΊΠΎΠ΄ C. Π’Π΅ΠΏΠ΅ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π³ΠΎΡΠ°Π·Π΄ΠΎ ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅, ΡΠ΅ΠΌ ΡΠ°Π½ΡΡΠ΅, ΠΏΠΎΡΡΠΎΠΌΡ Ρ Ρ ΠΎΡΠ΅Π» Π±Ρ.
Π― ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π» Firebug Π΄Π»Ρ ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΌΠΎΠ΄Π΅Π»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠΏΡΡΠ³ΠΈΡ ΡΠ°ΡΡΠΈΡ javascript. ΠΠΎΠΈΠΌ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ Π±ΡΠ»ΠΎ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° ΠΌΠΎΠ΄Π΅Π»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π² ΡΠ°Π±ΠΎΡΠΈΠΉ ΠΏΠΎΡΠΎΠΊ, ΠΎΡΠ΄Π΅Π»ΡΡΡΠΈΠΉ Π΅Π³ΠΎ ΠΎΡ ΠΊΠΎΠ΄Π° ΡΠ΅Π½Π΄Π΅ΡΠΈΠ½Π³Π°.
Π£ ΠΌΠ΅Π½Ρ Π΅ΡΡΡ Mex-ΡΡΠ½ΠΊΡΠΈΡ (ΡΡΠ½ΠΊΡΠΈΡ Π² c++, ΠΊΠΎΡΠΎΡΡΡ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΡΠ·Π²Π°ΡΡ ΠΈΠ· Matlab), ΠΊΠΎΡΠΎΡΡΡ Ρ Π½Π°ΠΏΠΈΡΠ°Π», ΠΈ Ρ Ρ ΠΎΡΡ ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡ Π΅Π΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ valgrind/kcachegrind. Ρ Π·Π½Π°Ρ, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ.
ΠΡΠΈ ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ°ΠΊΠΎΠ³ΠΎ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°, ΠΊΠ°ΠΊ VisualMV, Π² ΠΊΠ°ΠΊΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ? ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°, ΠΊΠΎΡΠΎΡΡΡ Ρ Ρ ΠΎΡΡ ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡ, ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π±ΡΡΡΡΠΎ ΠΈ Π½Π΅ ΠΆΠ΄Π΅Ρ, ΠΏΠΎΠΊΠ°.
ΠΠΎΠΆΠ½ΠΎ Π»ΠΈ ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ² java Π² AWS Lambda Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠ»Π°ΡΡΠΎΠ² ΠΈΠ»ΠΈ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² Π²ΡΠ΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Π² ΠΊΡΡΠ΅? ΠΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡΠΈ ΠΊΡΡΠΈ :
ΠΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³ ΠΈ ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Spring Boot ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
ΠΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³ ΠΎΡΠ΅Π½Ρ Π²Π°ΠΆΠ΅Π½ Π΄Π»Ρ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΏΠΎ ΡΠ²ΠΎΠ΅ΠΉ ΠΏΡΠΈΡΠΎΠ΄Π΅ ΡΠΈΠ»ΡΠ½ΠΎ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Ρ ΠΈ ΠΈΠΌΠ΅ΡΡ ΡΠ°Π·Π½ΡΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Π±Π°Π·Π° Π΄Π°Π½Π½ΡΡ , ΡΠ»ΡΠΆΠ±Ρ, ΠΊΠ΅ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄ΡΡΠ³ΠΎΠ΅. ΠΠΎΡΡΠΎΠΌΡ Π²ΡΠ΅ Π±ΠΎΠ»Π΅Π΅ Π²Π°ΠΆΠ½Ρ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΠ΅ ΠΈ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³ ΡΡΠΈΡ ΡΠ»ΡΠΆΠ±, ΡΡΠΎΠ±Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΡΠΈΠ΄Π΅ΡΠΆΠΈΠ²Π°Π»ΠΎΡΡ ΡΡΠ»ΠΎΠ²ΠΈΠΉ SLA ( Service Level Agreement). SLA β ΡΡΠΎ ΡΠΎΠ³Π»Π°ΡΠ΅Π½ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠΌ ΠΈ ΠΏΠΎΡΡΠ°Π²ΡΠΈΠΊΠΎΠΌ ΡΡΠ»ΡΠ³, Π² Π½Π΅ΠΌ ΡΡΠΈΡΡΠ²Π°ΡΡΡΡ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΡΡΡ, ΡΠΊΠΎΡΠΎΡΡΡ ΠΎΡΠΊΠ»ΠΈΠΊΠ° ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ ΡΡΠΎΠ²Π½Ρ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π½ΠΈΡ.
ΠΡ Π²ΡΠ΅Π³Π΄Π° ΡΡΠ°ΡΠ°Π΅ΠΌΡΡ Π½Π΅ Π½Π°ΡΡΡΠ°ΡΡ Π½ΠΈΠΊΠ°ΠΊΠΈΡ SLA, Π½Π°ΡΡΡΠ΅Π½ΠΈΠ΅ Π»ΡΠ±ΠΎΠΉ ΡΠ°ΡΡΠΈ SLA ΠΌΠΎΠΆΠ΅Ρ ΠΈΠΌΠ΅ΡΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΠ²ΠΈΠΉ. ΠΡΠ»ΠΈ ΡΡΠ»ΡΠ³Π° Π½Π΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΡΡΠ»ΠΎΠ²ΠΈΡΠΌ, ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΌ Π² SLA, ΠΎΠ½Π° ΠΌΠΎΠΆΠΊΡ Π½Π°Π½Π΅ΡΡΠΈ ΡΡΠ΅ΡΠ± ΡΠ΅ΠΏΡΡΠ°ΡΠΈΠΈ Π±ΡΠ΅Π½Π΄Π° ΠΈ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ ΠΏΠΎΡΠ΅ΡΠΈ Π΄ΠΎΡ ΠΎΠ΄Π°. Π₯ΡΠΆΠ΅ Π²ΡΠ΅Π³ΠΎ ΡΠΎ, ΡΡΠΎ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΡΠ΅ΡΡΡΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° Π² ΠΏΠΎΠ»ΡΠ·Ρ ΠΊΠΎΠ½ΠΊΡΡΠ΅Π½ΡΠ° ΠΈΠ·-Π·Π° ΡΠ²ΠΎΠ΅ΠΉ Π½Π΅ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΠΈ ΡΠ΄ΠΎΠ²Π»Π΅ΡΠ²ΠΎΡΠΈΡΡ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° ΠΊ ΡΡΠΎΠ²Π½Ρ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π½ΠΈΡ.
ΠΠ°ΠΊΠΈΠ΅ ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ Π½ΡΠΆΠ½ΠΎ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°ΡΡ?
ΠΠΎΡΡΡΠΏΠ½ΠΎΡΡΡ ΡΡΠ»ΡΠ³ΠΈ : Π²ΡΠ΅ΠΌΡ, Π² ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΡΡΠ»ΡΠ³Π° Π΄ΠΎΡΡΡΠΏΠ½Π° Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ. ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΠ·ΠΌΠ΅ΡΠ΅Π½ΠΎ Ρ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΎΡΠΊΠ»ΠΈΠΊΠ°, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠΎΡΠ΅Π½ΡΠΈΠ»Ρ X, ΡΠΎΠΊΡΠ°ΡΠ΅Π½Π½ΠΎ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ°Π΅ΠΌΡΠΉ ΠΊΠ°ΠΊ pX, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, p95, p99, p99.999. ΠΠ΅ Π΄Π»Ρ Π²ΡΠ΅Ρ ΡΠ΅ΡΠ²ΠΈΡΠΎΠ² ΡΡΠ΅Π±ΡΠ΅ΡΡΡ p99,999, ΡΠΈΡΡΠ΅ΠΌΡ Ρ Π³Π°ΡΠ°Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ Π²ΡΡΠΎΠΊΠΎΠΉ Π΄ΠΎΡΡΡΠΏΠ½ΠΎΡΡΡΡ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½Π°Ρ ΠΊΠΎΠΌΠΌΠ΅ΡΡΠΈΡ, ΠΏΠΎΠΈΡΠΊ, ΠΎΠΏΠ»Π°ΡΠ° ΠΈ Ρ. Π΄., Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΠΌΠ΅ΡΡ Π±ΠΎΠ»Π΅Π΅ Π²ΡΡΠΎΠΊΠΎΠ΅ SLA.
Π£ΡΠΎΠ²Π΅Π½Ρ Π΄Π΅ΡΠ΅ΠΊΡΠΎΠ²: Π½Π΅ΡΠΌΠΎΡΡΡ Π½Π° Π²ΡΠ΅ ΡΡΠΈΠ»ΠΈΡ ΠΏΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ, Π½ΠΈ ΠΎΠ΄Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ° Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΈΠ΄Π΅Π°Π»ΡΠ½ΠΎΠΉ Π½Π° 100%. ΠΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΠΎΠ΄ΡΡΠΈΡΡΠ²Π°ΡΡ ΠΏΡΠΎΡΠ΅Π½Ρ ΠΎΡΠΈΠ±ΠΎΠΊ Π² ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΠΏΠΎΡΠΎΠΊΠ°Ρ . Π ΡΡΡ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΡ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π²ΠΊΠ»ΡΡΠ΅Π½Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΡΠ±ΠΎΠΈ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΠΎΡΠΈΠ±ΠΊΠ° ΡΠ΅ΡΠ²Π΅ΡΠ°, ΠΎΡΠΈΠ±ΠΊΠ° Π·Π°ΠΏΡΠΎΡΠ° Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ , ΠΎΡΠΈΠ±ΠΊΠ° ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ, ΡΠ΅ΡΠ΅Π²ΡΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ ΠΈ ΠΏΡΠΎΠΏΡΡΠ΅Π½Π½ΡΠ΅ ΡΡΠΎΠΊΠΈ.
ΠΠ΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡ: Π² Π½Π°ΡΠΈ ΡΠ²Π΅ΡΡ ΡΠ΅Π³ΡΠ»ΠΈΡΡΠ΅ΠΌΡΠ΅ Π²ΡΠ΅ΠΌΠ΅Π½Π° Π½Π°ΡΡΡΠ΅Π½ΠΈΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ ΡΠ΅ΡΠΈ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π΄ΠΎΡΠΎΠ³ΠΎΡΡΠΎΡΡΠΈΠΌΠΈ. Π ΡΡΡ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΊΠ»ΡΡΠΈΡΡ ΠΈΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΡΠ΅ΠΌΡΡ ΠΌΠ΅Ρ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ, ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ Π΄ΠΎΡΡΡΠΏ ΠΊ ΡΠΈΡΡΠ΅ΠΌΠ΅, Π½Π΅ΡΠ°Π½ΠΊΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ Π΄ΠΎΡΡΡΠΏ ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ , ΠΌΠ°ΡΡΠΎΠ²Π°Ρ Π·Π°Π³ΡΡΠ·ΠΊΠ° Π·Π°ΠΏΠΈΡΠ΅ΠΉ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ ΠΈΠ»ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ Π±ΠΎΠ»ΡΡΠΈΡ ΠΎΠ±ΡΠ΅ΠΌΠΎΠ² Π΄Π°Π½Π½ΡΡ .
ΠΠΈΠ·Π½Π΅Ρ-ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ: ΠΠ’-ΠΊΠ»ΠΈΠ΅Π½ΡΡ Π²ΡΠ΅ ΡΠ°ΡΠ΅ Ρ ΠΎΡΡΡ Π²ΠΊΠ»ΡΡΠ°ΡΡ ΠΌΠ΅ΡΡΠΈΠΊΠΈ Π±ΠΈΠ·Π½Π΅Ρ-ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² Π² ΡΠ²ΠΎΠΈ SLA, ΡΡΠΎΠ±Ρ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ Π±ΠΎΠ»Π΅Π΅ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠ΅ Π±ΠΈΠ·Π½Π΅Ρ-ΡΠ΅ΡΠ΅Π½ΠΈΡ. Π ΡΡΠΎΠΉ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΈ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΡΠΎΠ±ΡΠ°Π½Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ, ΠΏΠΎΡΠ΅ΡΠΈΠ²ΡΠΈΡ ΡΡΡΠ°Π½ΠΈΡΡ, Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΡ Π²Ρ ΠΎΠ΄Π°, ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΡΡΡ ΠΊΡΠΏΠΎΠ½Π° ΠΈ Ρ. Π΄.
ΠΠ½Π°ΡΠ°Π»Π΅ Π²ΡΠ±ΠΎΡ Π½Π°Π±ΠΎΡΠ° ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΉ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π½Π΅ΡΡΠΈΠ²ΠΈΠ°Π»ΡΠ½ΠΎΠΉ Π·Π°Π΄Π°ΡΠ΅ΠΉ, ΡΠ°ΠΊΠΆΠ΅ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΡΠΎΠ»ΠΊΠ½ΡΡΡΡΡ Ρ Π΄ΠΈΠ»Π΅ΠΌΠΌΠΎΠΉ ΡΠΎΠ³ΠΎ, ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΉ Π½Π°ΠΌ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°ΡΡ. ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ Π½Π°ΡΠ°ΡΡ Ρ ΡΠ°ΠΌΠΎΠ³ΠΎ ΠΌΠΈΠ½ΠΈΠΌΡΠΌΠ° ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΡΠΎΠ»ΡΠΊΠΎ, ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ ΠΏΠΎΠ·ΠΆΠ΅.
ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³Π°
Π’ΠΈΠΏΠΈΡΠ½Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³Π° Π±ΡΠ΄Π΅Ρ ΡΠΎΡΡΠΎΡΡΡ ΠΈΠ· ΡΡΠ΅Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ²
ΠΠ°Π½Π΅Π»Ρ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² (ΠΏΠ°Π½Π΅Π»Ρ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π΄Π»Ρ Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π΄Π°Π½Π½ΡΡ , Ρ ΡΠ°Π½ΡΡΠΈΡ ΡΡ Π² Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ ΠΌΠ΅ΡΡΠΈΠΊ).
ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ΄ΡΡ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°ΡΡ ΠΎΡΠΏΡΠ°Π²Π»ΡΡΡ ΠΌΠ΅ΡΡΠΈΠΊΠΈ Π² Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ ΠΌΠ΅ΡΡΠΈΠΊ ΠΈΠ»ΠΈ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ ΠΌΠ΅ΡΡΠΈΠΊ, ΠΏΠ΅ΡΠΈΠΎΠ΄ΠΈΡΠ΅ΡΠΊΠΈ ΠΈΠ·Π²Π»Π΅ΠΊΠ°ΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ· Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
Π£ Π½Π°Ρ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΎΠΏΠΎΠ²Π΅ΡΠ΅Π½ΠΈΠ΅, Π³Π΄Π΅ ΠΊΠ°Π½Π°Π»Π°ΠΌΠΈ ΠΎΠΏΠΎΠ²Π΅ΡΠ΅Π½ΠΈΡ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½Π°Ρ ΠΏΠΎΡΡΠ°, Slack ΠΈΠ»ΠΈ Π»ΡΠ±ΡΠ΅ Π΄ΡΡΠ³ΠΈΠ΅. ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΠΎΠΏΠΎΠ²Π΅ΡΠ΅Π½ΠΈΡ Π±ΡΠ΄Π΅Ρ ΠΎΡΠΏΡΠ°Π²Π»ΡΡΡ ΠΎΠΏΠΎΠ²Π΅ΡΠ΅Π½ΠΈΡ Π²Π»Π°Π΄Π΅Π»ΡΡΠ°ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈΠ»ΠΈ ΠΏΠΎΠ΄ΠΏΠΈΡΡΠΈΠΊΠ°ΠΌ ΡΠΎΠ±ΡΡΠΈΠΉ. ΠΡ ΡΠΎΠ±ΠΈΡΠ°Π΅ΠΌΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Grafana ΠΊΠ°ΠΊ ΠΏΠ°Π½Π΅Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΈ ΡΠΈΡΡΠ΅ΠΌΡ ΠΎΠΏΠΎΠ²Π΅ΡΠ΅Π½ΠΈΠΉ, Prometheus ΠΊΠ°ΠΊ ΡΠΈΡΡΠ΅ΠΌΡ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΠΌΠ΅ΡΡΠΈΠΊ.
Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΠΏΡΠΎΠ΅ΠΊΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΠ° Spring Boot, Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ ΡΡΠΎΠ»ΡΠΊΠΎ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ, ΡΠΊΠΎΠ»ΡΠΊΠΎ Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ. ΠΡ ΡΠΎΠ±ΠΈΡΠ°Π΅ΠΌΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ Micrometer, ΡΡΠΎ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΡΠΉ ΡΠ°ΡΠ°Π΄, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΠΏΡΠΈΠ²ΡΠ·ΠΊΠΈ Π΄Π»Ρ ΠΌΠ½ΠΎΠ³ΠΈΡ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡ ΠΌΠ΅ΡΡΠΈΠΊ, ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ Prometheus, Datadog ΠΈ New Relic, ΠΈ ΡΡΠΎ Π»ΠΈΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ· Π½ΠΈΡ .
ΠΠ· ΠΊΠΎΡΠΎΠ±ΠΊΠΈ Micrometer ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ
ΠΠ΅ΡΡΠΈΠΊΠΈ, ΠΎΡΠ½ΠΎΡΡΡΠΈΠ΅ΡΡ ΠΊ ΡΠΈΡΡΠ΅ΠΌΠ΅ ΠΊΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ Ρ. Π΄.
ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠ΅ΡΡΠΈΠΊΠΈ Π²ΠΊΠ»ΡΡΠ΅Π½Ρ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ, ΡΠΎΠ³Π΄Π° ΠΊΠ°ΠΊ Π΄ΡΡΠ³ΠΈΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΊΠ»ΡΡΠΈΡΡ, ΠΎΡΠΊΠ»ΡΡΠΈΡΡ ΠΈΠ»ΠΈ Π½Π°ΡΡΡΠΎΠΈΡΡ. ΠΡ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ°ΠΉΠ» application.properties Π΄Π»Ρ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ, ΠΎΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΌΠ΅ΡΡΠΈΠΊ. ΠΠ°ΠΌ ΡΠ°ΠΊΠΆΠ΅ Π½ΡΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Spring boot actuator, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ ΠΎΡΠΊΡΠΎΠ΅Ρ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠΉ ΡΠΎΡΠΊΠ΅ Prometheus.
ΠΠΎΠ±Π°Π²ΡΡΠ΅ ΡΡΠΈ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ Π² ΡΠ°ΠΉΠ» build.gradle:
ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ Π²ΠΊΠ»ΡΡΠΈΡΡ ΡΠΊΡΠΏΠΎΡΡ Prometheus, Π΄ΠΎΠ±Π°Π²ΠΈΠ² ΡΠ»Π΅Π΄ΡΡΡΡΡ ΡΡΡΠΎΠΊΡ Π² ΡΠ°ΠΉΠ» ΡΠ²ΠΎΠΉΡΡΠ².
ΠΠΎΡΠ»Π΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ ΡΡΠΎΠΉ ΡΡΡΠΎΠΊΠΈ Micrometer Π½Π°ΡΠ½Π΅Ρ Π½Π°ΠΊΠ°ΠΏΠ»ΠΈΠ²Π°ΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ, ΠΈ ΡΡΠΈ Π΄Π°Π½Π½ΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΡΠΌΠΎΡΡΠ΅ΡΡ, ΠΏΠ΅ΡΠ΅ΠΉΠ΄Ρ Π½Π° ΠΊΠΎΠ½Π΅ΡΠ½ΡΡ ΡΠΎΡΠΊΡ actuator/Prometheus. ΠΡΠ° ΠΊΠΎΠ½Π΅ΡΠ½Π°Ρ ΡΠΎΡΠΊΠ° Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π² ΡΠΊΡΠΈΠΏΡΠ΅ Prometheus Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ Ρ Π½Π°ΡΠΈΡ ΡΠ΅ΡΠ²Π΅ΡΠΎΠ² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.
ΠΠ΅ΡΠΌΠΎΡΡΡ Π½Π° ΡΠΎ, ΡΡΠΎ ΠΌΡ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΡΡΡ ΡΡΡΠΎΠΊΡ Π² ΡΠ²ΠΎΠΉΡΡΠ²Π°Ρ , ΠΌΡ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡΠΎΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡ ΠΊΠΎΠ½Π΅ΡΠ½ΡΡ ΡΠΎΡΠΊΡ Prometheus, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΎΠ½Π° ΠΎΡΠΊΠ»ΡΡΠ΅Π½Π° ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΡΠΊΡΡΡΡ Π΅Π΅, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΊΠΎΠ½Π΅ΡΠ½ΡΡ ΡΠΎΡΠΊΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ, Π²ΠΊΠ»ΡΡΠΈΠ² Prometheus Π² ΡΠΏΠΈΡΠΎΠΊ.
ΠΠ ΠΠΠΠ§ΠΠΠΠ. ΠΠ΅ Π²ΠΊΠ»ΡΡΠ°ΠΉΡΠ΅ Π²ΡΠ΅ ΠΊΠΎΠ½Π΅ΡΠ½ΡΠ΅ ΡΠΎΡΠΊΠΈ actuator, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΎΡΠΊΡΡΡΡ Π»Π°Π·Π΅ΠΉΠΊΡ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ. ΠΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π²ΡΠ±ΠΈΡΠ°ΡΡ ΠΈΡ Π²ΡΠ±ΠΎΡΠΎΡΠ½ΠΎ, ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Π² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²Π΅Π½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅, Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ ΠΌΡ Ρ ΠΎΡΠΈΠΌ, Π½Π΅ ΡΠ°ΡΠΊΡΡΠ²Π°ΡΡ ΠΊΠΎΠ½Π΅ΡΠ½ΡΡ ΡΠΎΡΠΊΡ Π΄Π»Ρ Π²ΡΠ΅Π³ΠΎ ΠΌΠΈΡΠ°, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½Π° ΠΌΠΎΠΆΠ΅Ρ ΡΠ°ΡΠΊΡΡΡΡ Π±ΠΎΠ»ΡΡΠΎΠΉ ΠΎΠ±ΡΠ΅ΠΌ Π΄Π°Π½Π½ΡΡ ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ ΠΏΡΠΎΠΊΡΠΈ ΠΈΠ»ΠΈ ΠΊΠ°ΠΊΠΎΠ΅-ΡΠΎ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, ΡΡΠΎΠ±Ρ ΡΠΊΡΡΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΎΡ Π²Π½Π΅ΡΠ½Π΅Π³ΠΎ ΠΌΠΈΡΠ°.
Π Π°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΠ°ΡΡΠΈ HTTP-Π·Π°ΠΏΡΠΎΡΠΎΠ² Π½Π°ΡΡΡΠ°ΠΈΠ²Π°ΡΡΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ SLA, Π½Π°ΡΡΡΠΎΠΉΠΊΠ° ΠΏΡΠΈΠ·Π½Π°ΠΊΠ° Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ Π²ΡΡΠΈΡΠ»Π΅Π½Π° ΠΈΠ»ΠΈ Π½Π΅Ρ Π³ΠΈΡΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΏΡΠΎΡΠ΅Π½ΡΠΈΠ»Π΅ΠΉ Π΄Π΅Π»Π°Π΅ΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ²ΠΎΠΉΡΡΠ² metrics.distribution.
Π ΠΏΡΠΈΠΌΠ΅ΡΠ΅ application.properties ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΡΠ°ΠΊΠΈΠ΅ ΡΡΡΠΎΠΊΠΈ
Π’Π΅ΠΏΠ΅ΡΡ, Π΅ΡΠ»ΠΈ ΠΌΡ Π·Π°ΠΏΡΡΡΠΈΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ ΠΏΠ΅ΡΠ΅ΠΉΠ΄Π΅ΠΌ Π½Π° ΡΡΡΠ°Π½ΠΈΡΡ http://locahost:8080/actator/prometheus, Π±ΡΠ΄Π΅Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡΡΡ ΡΠ΅ΡΡΠΎΠ²ΡΠΊΠΈ ΠΌΠ½ΠΎΠ³ΠΎ Π΄Π°Π½Π½ΡΡ .
ΠΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠ΅ Π²ΡΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡ Π΄Π΅ΡΠ°Π»ΠΈ HTTP-Π·Π°ΠΏΡΠΎΡΠ°, exception=None ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π½Π΅ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ»ΠΎ, Π΅ΡΠ»ΠΈ ΠΎΠ½ΠΎ Π΅ΡΡΡ, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠΎ Π΄Π»Ρ ΡΠΈΠ»ΡΡΡΠ°ΡΠΈΠΈ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° Π·Π°ΠΏΡΠΎΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ ΡΠ΄Π°Π»ΠΎΡΡ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΈΠ·-Π·Π° ΡΡΠΎΠ³ΠΎ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ, method=GET ΠΈΠΌΡ ΠΌΠ΅ΡΠΎΠ΄Π° HTTP. status=200 HTTP ΡΡΠ°ΡΡΡ ΡΠ°Π²Π΅Π½ 200, uri=/actator/prometheus ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅Ρ ΠΏΡΡΡ URL, le=xyz ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅Ρ Π²ΡΠ΅ΠΌΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ, N.0 ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅Ρ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π²ΡΠ·ΠΎΠ²ΠΎΠ² ΡΡΠΎΠΉ ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠΉ ΡΠΎΡΠΊΠΈ.
ΠΡΠΈ Π΄Π°Π½Π½ΡΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΡΠΎΠ±ΠΎΠΉ Π³ΠΈΡΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΊΠΎΡΠΎΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΡΡΠΎΠΈΡΡ Π² Grafana, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΡΠΎΠ±Ρ ΠΏΠΎΡΡΡΠΎΠΈΡΡ Π³ΡΠ°ΡΠΈΠΊ p95 Π·Π° 5 ΠΌΠΈΠ½ΡΡ, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ Π·Π°ΠΏΡΠΎΡ.
Π Grafana ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΡΡΠΎΠΈΡΡ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ Π³ΡΠ°ΡΠΈΠΊΠΈ ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΉ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΠΊΡΡΠ³ΠΎΠ²ΡΡ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΡ ΠΈ Ρ. Π΄.
ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠ΅ ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ
Π§Π°ΡΡΠΎ Π½Π°ΠΌ Π½ΡΠΆΠ½Ρ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ ΠΌΠ΅ΡΡΠΈΠΊΠΈ, Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ· ΡΡΠ΅Π½Π°ΡΠΈΠ΅Π² ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ β ΡΡΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π²ΠΎΡΠ΅Π΄ΡΠΈΡ Π² ΡΠΈΡΡΠ΅ΠΌΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ, ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΎ Π·Π°ΠΏΠ°ΡΠ°Ρ Π΄ΠΎΡΡΡΠΏΠ½ΡΡ , Π² Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ, ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π·Π°ΠΊΠ°Π·ΠΎΠ² Π² ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ ΠΈ Ρ. Π΄. ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ· Π±ΠΈΠ·Π½Π΅Ρ ΡΡΠ΅Π½Π°ΡΠΈΠ΅Π² ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΡΠ΅ΡΠ΅Π½Ρ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ ΠΌΠ΅ΡΡΠΈΠΊ, ΠΌΠΈΠΊΡΠΎΠΌΠ΅ΡΡΠ°. ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΠΈΠΏΡ ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΉ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΡΠ°ΠΉΠΌΠ΅Ρ, Π΄Π°ΡΡΠΈΠΊ, ΡΡΠ΅ΡΡΠΈΠΊ, ΡΠ²ΠΎΠ΄ΠΊΠΈ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ, ΡΠ°ΠΉΠΌΠ΅ΡΡ Π΄Π»Ρ Π΄Π»ΠΈΡΠ΅Π»ΡΠ½ΡΡ Π·Π°Π΄Π°Ρ ΠΈ Ρ. Π΄. Π ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ ΠΌΡ ΡΠΎΡΡΠ΅Π΄ΠΎΡΠΎΡΠΈΠΌΡΡ Π½Π° Π΄Π°ΡΡΠΈΠΊΠ΅ ΠΈ ΡΡΠ΅ΡΡΠΈΠΊΠ΅. ΠΠ°ΡΡΠΈΠΊ Π΄Π°Π΅Ρ Π½Π°ΠΌ ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Π΄Π»ΠΈΠ½Π° ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ, ΡΠΎΠ³Π΄Π° ΠΊΠ°ΠΊ ΡΡΠ΅ΡΡΠΈΠΊ ΠΏΠΎΡ ΠΎΠΆ Π½Π° ΠΌΠΎΠ½ΠΎΡΠΎΠ½Π½ΠΎ ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°ΡΡΠ΅Π΅ΡΡ ΡΠΈΡΠ»ΠΎ, Π½Π°ΡΠΈΠ½Π°ΡΡΠ΅Π΅ΡΡ Ρ Π΅Π΄ΠΈΠ½ΠΈΡΡ.
ΠΠ»Ρ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠ°ΡΠΈΠΈ ΡΡΠΎΠ³ΠΎ ΠΌΡ ΡΠΎΠ±ΠΈΡΠ°Π΅ΠΌΡΡ ΡΠΎΠ·Π΄Π°ΡΡ ΠΏΡΠΈΠΌΠ΅Ρ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅ΡΠ° Π·Π°ΠΏΠ°ΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ Ρ ΡΠ°Π½ΠΈΡΡ Π΄Π΅ΡΠ°Π»ΠΈ Π² ΠΏΠ°ΠΌΡΡΠΈ ΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡ Π΄Π²Π΅ ΡΡΠ½ΠΊΡΠΈΠΈ:
Π Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠ΅Π»ΡΡ ΠΌΡ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π΄Π²Π΅ ΠΊΠΎΠ½Π΅ΡΠ½ΡΠ΅ ΡΠΎΡΠΊΠΈ Π΄Π»Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ ΡΠΎΠ²Π°ΡΠΎΠ² ΠΈ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠΎΠ²Π°ΡΠΎΠ².
ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΠ½Π°ΡΠ°Π»Π° Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π΄Π΅ΡΡΡΡ ΡΠΎΠ²Π°ΡΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π΄Π²Π° Π²ΡΠ·ΠΎΠ²Π° API:
Π’Π΅ΠΏΠ΅ΡΡ, Π΅ΡΠ»ΠΈ ΠΌΡ ΠΏΠ΅ΡΠ΅ΠΉΠ΄Π΅ΠΌ ΠΊ ΠΊΠΎΠ½Π΅ΡΠ½ΡΠΌ ΡΠΎΡΠΊΠ°ΠΌ Prometheus, ΡΠΎ ΡΠ²ΠΈΠ΄ΠΈΠΌ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ Π΄Π°Π½Π½ΡΠ΅, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡ, ΡΡΠΎ Π² Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ Ρ Π½Π°Ρ Π΅ΡΡΡ 10 ΡΠΎΠ²Π°ΡΠΎΠ² Π½Π° ΡΠΊΠ»Π°Π΄Π΅.
Π’Π΅ΠΏΠ΅ΡΡ ΠΌΡ ΡΠΎΠ±ΠΈΡΠ°Π΅ΠΌΡΡ ΡΠ°Π·ΠΌΠ΅ΡΡΠΈΡΡ Π·Π°ΠΊΠ°Π· Π½Π° 3 ΡΠΎΠ²Π°ΡΠ°:
Π’Π΅ΠΏΠ΅ΡΡ, Π΅ΡΠ»ΠΈ ΠΌΡ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ ΠΊΠΎΠ½Π΅ΡΠ½ΡΡ ΡΠΎΡΠΊΡ Prometheus, ΠΌΡ ΠΏΠΎΠ»ΡΡΠΈΠΌ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ Π΄Π°Π½Π½ΡΠ΅, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡ, ΡΡΠΎ ΡΠ°Π·ΠΌΠ΅Ρ Π·Π°ΠΏΠ°ΡΠ° Π±ΡΠ» ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ Π΄ΠΎ ΡΠ΅ΠΌΠΈ.
ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΌΡ Π²ΠΈΠ΄ΠΈΠΌ, ΡΡΠΎ Π½Π° ΡΡΠ΅ΡΡΠΈΠΊΠ΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ 1, ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ ΠΎΠ΄ΠΈΠ½ ΠΎΡΠ΄Π΅Ρ.
ΠΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅
Π§Π°ΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΠΏΡΠΎΡΠΈΠ»ΠΈΡΡΡΡΠ°Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. ΠΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π΄ΠΎΡΡΠΈΠ³Π°Π΅ΡΡΡ ΠΏΡΡΠ΅ΠΌ ΡΠ±ΠΎΡΠ° Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠΎΠ² (ΠΎΠ±ΡΡΠ½ΠΎ ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ), ΡΠΈΡΠ»ΠΎ Π²Π΅ΡΠ½ΠΎ ΠΏΡΠ΅Π΄ΡΠΊΠ°Π·Π°Π½Π½ΡΡ ΡΡΠ»ΠΎΠ²Π½ΡΡ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΎΠ², ΡΠΈΡΠ»ΠΎ ΠΊΡΡ-ΠΏΡΠΎΠΌΠ°Ρ ΠΎΠ² ΠΈ Ρ. Π΄. ΠΠ½ΡΡΡΡΠΌΠ΅Π½Ρ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΉ Π΄Π»Ρ Π°Π½Π°Π»ΠΈΠ·Π° ΡΠ°Π±ΠΎΡΡ, Π½Π°Π·ΡΠ²Π°ΡΡ ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²ΡΠΈΠΊΠΎΠΌ ΠΈΠ»ΠΈ ΠΏΡΠΎΡΠ°ΠΉΠ»Π΅ΡΠΎΠΌ (profiler). ΠΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²ΡΠΈΠΊΠΈ ΠΌΠΎΠ³ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠ΄ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ², ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ ΠΌΠ΅ΡΠΎΠ΄Ρ, ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΡΠ΅ Π½Π° ΡΠΎΠ±ΡΡΠΈΡΡ , ΡΡΠ°ΡΠΈΡΡΠΈΡΠ΅ΡΠΊΠΈΠ΅, ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΈ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΌΠΎΠ΄Π΅Π»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ. β ΠΠΈΠΊΠΈΠΏΠ΅Π΄ΠΈΡ
ΠΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΡΠ΅Π½Ρ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ ΠΏΡΠΈ Π΄ΠΈΠ°Π³Π½ΠΎΡΡΠΈΠΊΠ΅ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠΊΠΎΠ»ΡΠΊΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ HTTP-Π²ΡΠ·ΠΎΠ², Π΅ΡΠ»ΠΈ ΠΎΠ½ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ N ΡΠ΅ΠΊΡΠ½Π΄, Π° Π·Π°ΡΠ΅ΠΌ, Π³Π΄Π΅ Π²ΡΠ΅ ΡΡΠΎ Π²ΡΠ΅ΠΌΡ Π±ΡΠ»ΠΎ ΠΏΠΎΡΡΠ°ΡΠ΅Π½ΠΎ, ΠΊΠ°ΠΊΠΎΠ²ΠΎ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ N ΡΠ΅ΠΊΡΠ½Π΄ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌΠΈ Π·Π°ΠΏΡΠΎΡΠ°ΠΌΠΈ ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ , Π²ΡΠ·ΠΎΠ²Π°ΠΌΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΡΠ»ΡΠΆΠ± ΠΈ Ρ. Π΄. ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π³ΠΈΡΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π΄Π»Ρ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ Π³ΡΠ°ΡΠΈΠΊΠ° ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ Π½Π° ΠΏΠ°Π½Π΅Π»ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ², ΡΠ°ΠΊΠΆΠ΅ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠ΅ΡΡΠΈΠΊ Π΄Π»Ρ ΠΈΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° Π·Π°ΠΏΡΠΎΡΠΎΠ² ΠΊ ΠΠ ΠΈ Ρ. Π΄. ΠΠ»Ρ ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π½Π°ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π²Π½Π΅Π΄ΡΠΈΡΡ ΠΊΠΎΠ΄ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ΄ΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΠΊΠ°ΠΊ ΡΠ°ΡΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΌΠ΅ΡΠΎΠ΄Π°.
ΠΠ°ΠΆΠ½ΠΎ ΡΠΎ, ΡΡΠΎ Π²Π½Π΅Π΄ΡΡΠ΅ΠΌΠ°Ρ ΡΠ°ΡΡΡ ΠΊΠΎΠ΄Π° ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Π° Π΄Π»Ρ ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²ΡΠΈΠΊΠΎΠ² Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΡΡ ΡΠΈΠΏΠΎΠ², ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠΊΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ ΠΈ Π²ΡΡΠ°Π²ΠΈΡΡ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΡΠΉ ΠΊΠΎΠ΄ Π² ΡΡΡΡΡΠΈ ΠΌΠ΅ΡΡ, Π΅ΡΠ»ΠΈ Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΡΠΎ-ΡΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ, Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ ΡΠΎ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅. ΠΠΎΠ΄ ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²ΡΠΈΠΊΠ° Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΡΠ°ΠΉΠ»Π΅ ΠΈ, Π²Π΅ΡΠΎΡΡΠ½ΠΎ, Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ, ΡΡΠ΅Π±ΡΡΡΠ΅ΠΉ ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΏΠΎΠ²ΡΡΠΈΡ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΡ ΠΈ ΠΌΠΎΠΆΠ΅Ρ ΡΡΠ°ΡΡ ΡΠΎΠ·Π΄Π°ΡΡ ΠΏΠΎΠ»Π½ΡΠΉ Π±Π΅ΡΠΏΠΎΡΡΠ΄ΠΎΠΊ, Π²ΠΏΡΠΎΡΠ΅ΠΌ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ ΡΡΠΎΠ³ΠΎ Π±Π΅ΡΠΏΠΎΡΡΠ΄ΠΊΠ°, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π°ΡΠΏΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ (ΠΠΠ).
ΠΠΎΡΠΎΡΠ΅ Π³ΠΎΠ²ΠΎΡΡ, ΠΠΠ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΏΠΎ ΡΠ°Π±Π»ΠΎΠ½Ρ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠΎΠΊΡΠΈ, Ρ ΠΎΡΡ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ Π±Π°ΠΉΡΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°.
ΠΡΡΠΊΠΈΠΉ ΡΠ°Π·, ΠΊΠΎΠ³Π΄Π° Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ ΠΌΠ΅ΡΠΎΠ΄, ΠΌΡ ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌ, ΡΡΠΎ Π²ΡΠ·ΡΠ²Π°Π΅ΠΌΡΠΉ ΠΌΠ΅ΡΠΎΠ΄ Π±ΡΠ΄Π΅Ρ Π²ΡΠ·ΡΠ²Π°ΡΡΡΡ Π½Π°ΠΏΡΡΠΌΡΡ Π±Π΅Π· ΠΊΠ°ΠΊΠΈΡ -Π»ΠΈΠ±ΠΎ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΡΡ ΡΠ°Π³ΠΎΠ², Π½ΠΎ ΠΊΠΎΠ³Π΄Π° AOP ΠΏΠΎΠΌΠ΅ΡΠ°Π΅ΡΡΡ Π½Π° ΠΌΠ΅ΡΡΠΎ, ΡΠΎΠ³Π΄Π° Π²ΡΠ·ΠΎΠ² ΠΌΠ΅ΡΠΎΠ΄Π° ΠΏΠ΅ΡΠ΅Ρ Π²Π°ΡΡΠ²Π°Π΅ΡΡΡ ΠΏΡΠΎΠΊΡΠΈ-ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ, Π° ΠΏΡΠΎΠΊΡΠΈ-ΠΌΠ΅ΡΠΎΠ΄ Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΡΠ΅Π»Π΅Π²ΠΎΠΉ ΠΌΠ΅ΡΠΎΠ΄, ΠΏΡΠΎΠΊΡΠΈ-ΠΌΠ΅ΡΠΎΠ΄ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π΄Π»Ρ Π²ΡΠ·ΡΠ²Π°ΡΡΠ΅Π³ΠΎ Π°Π±ΠΎΠ½Π΅Π½ΡΠ°, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½Π° ΡΠΈΡΡΠ½ΠΊΠ΅ Π½ΠΈΠΆΠ΅.
Π‘ΠΈΡΡΠ΅ΠΌΠ° Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ Π΄ΡΡΠ³ΠΈΡ ΡΠΈΡΡΠ΅ΠΌ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π±ΡΡΡ Π·Π°ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠΎΠ²Π°Π½Ρ Π² ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² ΠΏΠΎ-ΡΠ°Π·Π½ΠΎΠΌΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π²ΡΠ·ΠΎΠ²ΠΎΠ² Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ , HTTP-Π·Π°ΠΏΡΠΎΡΠΎΠ², ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠΈΡ Π²ΡΠ·ΠΎΠ²ΠΎΠ² ΡΠ»ΡΠΆΠ± ΠΈΠ»ΠΈ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ²Π»ΡΡΡΡΡ ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ ΠΈΠ»ΠΈ Ρ ΠΎΡΠ΅Π»ΠΈ Π±Ρ ΡΠ²ΠΈΠ΄Π΅ΡΡ, ΡΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π² Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΡ ΠΌΠ΅ΡΠΎΠ΄Π°Ρ . ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡ ΠΆΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ Micrometer Π΄Π»Ρ ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ, Π½ΠΎ ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π½Π΅ ΡΠΎΠ²ΡΠ΅ΠΌ ΡΠΎ, ΡΡΠΎ Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΌΡ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠΌ ΠΊΠΎΠ΄.
Micrometer ΠΏΠΎΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ Ρ Π°Π½Π½ΠΎΡΠ°ΡΠΈΠ΅ΠΉ Timed, ΡΡΡ Π°Π½Π½ΠΎΡΠ°ΡΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΡΠΈΡΡ Π² Π»ΡΠ±ΠΎΠΌ public ΠΌΠ΅ΡΠΎΠ΄Π΅, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ, ΡΡΠΎ ΠΎΠ½Π° ΠΌΠΎΠΆΠ΅Ρ ΠΈΠ·ΠΌΠ΅ΡΡΡΡ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ, ΡΡΠΎ Π±ΡΠ΄Π΅Ρ ΠΈΠ·ΠΌΠ΅ΡΡΡΡ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅Π³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π°. ΠΠΌΠ΅ΡΡΠΎ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ Π½Π°ΠΏΡΡΠΌΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΡ Π°Π½Π½ΠΎΡΠ°ΡΠΈΡ, ΠΌΡ ΡΠ°ΡΡΠΈΡΠΈΠΌ ΡΡΡ Π°Π½Π½ΠΎΡΠ°ΡΠΈΡ Π΄Π»Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ Π΄ΡΡΠ³ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ, ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ Π²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΆΡΡΠ½Π°Π»Π°, ΠΏΠΎΠ²ΡΠΎΡΠ½Π°Ρ ΠΏΠΎΠΏΡΡΠΊΠ° ΠΈ Ρ. Π.
ΠΠ½Π½ΠΎΡΠ°ΡΠΈΡ Timed Π±Π΅ΡΠΏΠΎΠ»Π΅Π·Π½Π° Π±Π΅Π· Π±ΠΈΠ½Π° TimedAspect, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΌΡ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌ Π°Π½Π½ΠΎΡΠ°ΡΠΈΡTimed, ΠΏΠΎΡΡΠΎΠΌΡ ΠΌΡ ΡΠ°ΠΊΠΆΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΠΌ ΠΊΠ»Π°ΡΡ TimedAspect Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Ρ ΠΏΠΎΡΡΠ΅Π±Π½ΠΎΡΡΡΠΌΠΈ, ΡΠ°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ Π²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΆΡΡΠ½Π°Π»Π°, ΠΌΠ°ΡΡΠΎΠ²ΠΎΠ΅ ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ (ΠΏΡΠΎΡΠΈΠ»ΠΈΡΡΠΉΡΠ΅ Π²ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ Π² ΠΏΠ°ΠΊΠ΅ΡΠ΅ Π±Π΅Π· Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ ΠΊΠ°ΠΊΠΈΡ -Π»ΠΈΠ±ΠΎ Π°Π½Π½ΠΎΡΠ°ΡΠΈΠΉ ΠΊ Π»ΡΠ±ΠΎΠΌΡ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΈΠ»ΠΈ ΠΊΠ»Π°ΡΡΡ), ΠΏΠΎΠ²ΡΠΎΡΠΈΡΡ ΠΏΠΎΠΏΡΡΠΊΡ ΠΈ Ρ. Π΄. Π ΡΡΠΎΠΉ ΠΈΡΡΠΎΡΠΈΠΈ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΡΠΈ ΡΡΠ΅Π½Π°ΡΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ:
Π‘ΠΏΠ΅ΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π΄Π»Ρ ΠΏΡΠΎΡΠΈΠ»Ρ ΠΌΠ΅ΡΠΎΠ΄.
Π‘ΠΎΠ·Π°Π΄ΠΈΠΌ ΡΠ°ΠΉΠ» java MonitoringTimed.java, Π² ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΡ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π½ΠΎΠ²ΠΎΠ΅ ΠΏΠΎΠ»Π΅ Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ loggingEnabled, ΡΡΠΎ ΠΏΠΎΠ»Π΅ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ, Π²ΠΊΠ»ΡΡΠ΅Π½ΠΎ Π»ΠΈ Π²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΆΡΡΠ½Π°Π»Π° ΠΈΠ»ΠΈ Π½Π΅Ρ, Π΅ΡΠ»ΠΈ ΠΎΠ½ΠΎ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΎ, Π° Π·Π°ΡΠ΅ΠΌ ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°ΡΡ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ ΠΌΠ΅ΡΠΎΠ΄Π° ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ.
ΠΠ΅ΡΠΎΠ΄ TimedMethod Ρ Π°Π½Π½ΠΎΡΠ°ΡΠΈΠ΅ΠΉ Around ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΡΠΈΠ»ΡΡΡΠ°ΡΠΈΠΈ Π²ΡΠ΅Ρ Π²ΡΠ·ΠΎΠ²ΠΎΠ² ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ², Π°Π½Π½ΠΎΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ MonitoringTimed.
ΠΠ»Ρ ΠΌΠ°ΡΡΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΌΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΠΌ ΠΊΠ»Π°ΡΡ ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²ΡΠΈΠΊΠ°, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΡΠΈΠ»ΡΡΡΠ°ΡΠΈΠ΅ΠΉ Π½Π° ΡΡΠΎΠ²Π½Π΅ ΠΏΠ°ΠΊΠ΅ΡΠ°. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π»Ρ ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ HTTP-Π·Π°ΠΏΡΠΎΡΠ° ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ControllerProfiler, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π²ΡΠ΅Ρ ΠΎΠ±ΡΠ΅Π΄ΠΎΡΡΡΠΏΠ½ΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ², Π΄ΠΎΡΡΡΠΏΠ½ΡΡ Π² ΠΏΠ°ΠΊΠ΅ΡΠ΅ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ°.
ΠΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎΠΉ ΡΡΡΠΎΠΊΠΎΠΉ Π² ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²ΡΡΠ΅ ΠΊΠΎΠ΄Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ @Pointcut(βexecution(com.gitbub.sonus21.monitoring.controller...*(..))β), ΠΊΠΎΡΠΎΡΠ°Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ pointcut, Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ pointcut ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΎ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠ² Π²ΡΠΎΠ΄Π΅ not (!), or (||), and (&&). ΠΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΌΠ΅ΡΠΎΠ΄ ΠΊΠ²Π°Π»ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½ ΡΠΎΠ³Π»Π°ΡΠ½ΠΎ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ pointcut, ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠ·Π²Π°ΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ ΠΌΠ΅ΡΠΎΠ΄, ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΉ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π°Π½Π½ΠΎΡΠ°ΡΠΈΠΈ [at]Around. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΌΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΠ»ΠΈ ΠΌΠ΅ΡΠΎΠ΄ profile, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ Π²ΡΠ·ΡΠ²Π°ΡΡΡΡ, ΠΌΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ Π΄ΡΡΠ³ΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π°Π½Π½ΠΎΡΠ°ΡΠΈΠΈ [at]After, [at]Before ΠΈ Ρ. Π΄.
ΠΠΎΡΠ»Π΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Π° POST ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ Π΄Π°Π½Π½ΡΠ΅ Π² ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠΉ ΡΠΎΡΠΊΠ΅ Prometheus.
ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ Π½Π°ΠΏΡΡΠΌΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π°Π½Π½ΠΎΡΠ°ΡΠΈΡ MonitoringTimed ΡΠ°ΠΊΠΆΠ΅ Π΄Π»Ρ Π»ΡΠ±ΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π° Π΄Π»Ρ ΠΈΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π°Π²Π°ΠΉΡΠ΅ ΠΈΠ·ΠΌΠ΅ΡΠΈΠΌ, ΡΠΊΠΎΠ»ΡΠΊΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ StockManager ΠΌΠ΅ΡΠΎΠ΄ addItems ΡΡΠ°ΡΠΈΡ Π½Π° Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ².
ΠΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ ΠΌΡ Π·Π°ΠΏΡΡΡΠΈΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ², ΠΌΡ ΡΠ²ΠΈΠ΄ΠΈΠΌ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅ Π² ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠΉ ΡΠΎΡΠΊΠ΅ Prometheus.
MonitoringTimed ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ Π½Π°ΡΡΡΠΎΠΈΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΠΎΠ²ΡΠΎΡΠ½ΡΡ ΠΏΠΎΠΏΡΡΠΎΠΊ Π΄Π»Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ ΠΏΠΎΠ²ΡΠΎΡΠ½ΡΡ ΠΏΠΎΠΏΡΡΠΎΠΊ Π² ΡΠ»ΡΡΠ°Π΅ ΡΠ±ΠΎΡ, Π·Π°ΠΏΠΈΡΠ°ΡΡ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ Π² ΡΠ»ΡΡΠ°Π΅ ΡΠ±ΠΎΡ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ·ΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ ΠΏΡΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΏΡΠΈΡΠΈΠ½Ρ ΡΠ±ΠΎΡ.