Π£Π²Π΅Π»ΠΈΡΠΈΡΡ ΠΏΠ°ΠΌΡΡΡ java ΠΌΠ°ΡΠΈΠ½Ρ
Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡΡΡ Java
ΠΡΠΎ Π³Π»ΡΠ±ΠΎΠΊΠΎΠ΅ ΠΏΠΎΠ³ΡΡΠΆΠ΅Π½ΠΈΠ΅ Π² ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡΡΡ Java ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ ΡΠ°ΡΡΠΈΡΠΈΡΡ Π²Π°ΡΠΈ Π·Π½Π°Π½ΠΈΡ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΊΡΡΠ°, ΡΡΡΠ»ΠΎΡΠ½ΡΠ΅ ΡΠΈΠΏΡ ΠΈ ΡΠ±ΠΎΡΠΊΠ° ΠΌΡΡΠΎΡΠ°.
ΠΠ΅ΡΠΎΡΡΠ½ΠΎ, Π²Ρ ΠΌΠΎΠ³Π»ΠΈ ΠΏΠΎΠ΄ΡΠΌΠ°ΡΡ, ΡΡΠΎ Π΅ΡΠ»ΠΈ Π²Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ΅ΡΠ΅ Π½Π° Java, ΡΠΎ Π²Π°ΠΌ Π½Π΅Π·Π°ΡΠ΅ΠΌ Π·Π½Π°ΡΡ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΏΠ°ΠΌΡΡΡ. Π Java Π΅ΡΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡΡΡ, ΠΊΡΠ°ΡΠΈΠ²ΡΠΉ ΠΈ ΡΠΈΡ ΠΈΠΉ ΡΠ±ΠΎΡΡΠΈΠΊ ΠΌΡΡΠΎΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π² ΡΠΎΠ½ΠΎΠ²ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅ Π΄Π»Ρ ΠΎΡΠΈΡΡΠΊΠΈ Π½Π΅ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΠΈ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π΅Π½ΠΈΡ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ.
ΠΠΎΡΡΠΎΠΌΡ Π²Π°ΠΌ, ΠΊΠ°ΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΡ Π½Π° Java, Π½Π΅ Π½ΡΠΆΠ½ΠΎ Π±Π΅ΡΠΏΠΎΠΊΠΎΠΈΡΡΡΡ ΠΎ ΡΠ°ΠΊΠΈΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°Ρ , ΠΊΠ°ΠΊ ΡΠ½ΠΈΡΡΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ², ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΎΠ½ΠΈ Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ. ΠΠ΄Π½Π°ΠΊΠΎ, Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ Π² Java ΡΡΠΎΡ ΠΏΡΠΎΡΠ΅ΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ, ΠΎΠ½ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ Π³Π°ΡΠ°Π½ΡΠΈΡΡΠ΅Ρ. ΠΠ΅ Π·Π½Π°Ρ, ΠΊΠ°ΠΊ ΡΡΡΡΠΎΠ΅Π½ ΡΠ±ΠΎΡΡΠΈΠΊ ΠΌΡΡΠΎΡΠ° ΠΈ ΠΏΠ°ΠΌΡΡΡ Java, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΎΠ·Π΄Π°ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡ Π΄Π»Ρ ΡΠ±ΠΎΡΠ° ΠΌΡΡΠΎΡΠ°, Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ Π²Ρ ΠΈΡ Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅.
ΠΠ»Ρ Π½Π°ΡΠ°Π»Π° Π΄Π°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ, ΠΊΠ°ΠΊ ΠΎΠ±ΡΡΠ½ΠΎ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΠ°ΠΌΡΡΡ Π² Java:

Π‘ΡΠ΅ΠΊ (Stack)
Π‘ΡΠ΅ΠΊΠΎΠ²Π°Ρ ΠΏΠ°ΠΌΡΡΡ ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ Π·Π° Ρ ΡΠ°Π½Π΅Π½ΠΈΠ΅ ΡΡΡΠ»ΠΎΠΊ Π½Π° ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΊΡΡΠΈ ΠΈ Π·Π° Ρ ΡΠ°Π½Π΅Π½ΠΈΠ΅ ΡΠΈΠΏΠΎΠ² Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ (ΡΠ°ΠΊΠΆΠ΅ ΠΈΠ·Π²Π΅ΡΡΠ½ΡΡ Π² Java ΠΊΠ°ΠΊ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²Π½ΡΠ΅ ΡΠΈΠΏΡ), ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠ°Ρ ΡΠ°ΠΌΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, Π° Π½Π΅ ΡΡΡΠ»ΠΊΡ Π½Π° ΠΎΠ±ΡΠ΅ΠΊΡ ΠΈΠ· ΠΊΡΡΠΈ.
ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ Π² ΡΡΠ΅ΠΊΠ΅ ΠΈΠΌΠ΅ΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΡ, ΡΠ°ΠΊΠΆΠ΅ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΡ ΠΎΠ±Π»Π°ΡΡΡΡ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ. ΠΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΈΠ· Π°ΠΊΡΠΈΠ²Π½ΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Ρ, ΡΡΠΎ Ρ Π½Π°Ρ Π½Π΅Ρ Π½ΠΈΠΊΠ°ΠΊΠΈΡ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ (ΠΏΠΎΠ»Π΅ΠΉ) ΠΎΠ±Π»Π°ΡΡΠΈ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ, Π° ΡΠΎΠ»ΡΠΊΠΎ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅, Π΅ΡΠ»ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΡΠ΅Π»ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π°, ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΡΠΎΠ»ΡΠΊΠΎ ΠΊ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌ ΠΈΠ· ΡΡΠ΅ΠΊΠ°, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ Π²Π½ΡΡΡΠΈ ΡΠ΅Π»Π° ΠΌΠ΅ΡΠΎΠ΄Π°. ΠΠ½ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ Π΄ΡΡΠ³ΠΈΠΌ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠΌ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ Π½Π΅ Π²ΡΡ ΠΎΠ΄ΡΡ Π² ΠΎΠ±Π»Π°ΡΡΡ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ. ΠΠΎΠ³Π΄Π° ΠΌΠ΅ΡΠΎΠ΄ Π·Π°Π²Π΅ΡΡΠ°Π΅ΡΡΡ ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ, Π²Π΅ΡΡ Π½ΡΡ ΡΠ°ΡΡΡ ΡΡΠ΅ΠΊΠ° Π²ΡΡΠ°Π»ΠΊΠΈΠ²Π°Π΅ΡΡΡ, ΠΈ Π°ΠΊΡΠΈΠ²Π½Π°Ρ ΠΎΠ±Π»Π°ΡΡΡ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΡΡΡ.
ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π²Ρ Π·Π°ΠΌΠ΅ΡΠΈΠ»ΠΈ, ΡΡΠΎ Π½Π° ΠΊΠ°ΡΡΠΈΠ½ΠΊΠ΅ Π²ΡΡΠ΅ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΠ΅ΠΊΠΎΠ² ΠΏΠ°ΠΌΡΡΠΈ. ΠΡΠΎ ΡΠ²ΡΠ·Π°Π½ΠΎ Ρ ΡΠ΅ΠΌ, ΡΡΠΎ ΡΡΠ΅ΠΊΠΎΠ²Π°Ρ ΠΏΠ°ΠΌΡΡΡ Π² Java Π²ΡΠ΄Π΅Π»ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠΊΠ°. Π‘Π»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ, ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π·, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΡΠΎΠΊ ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΠΈ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ, ΠΎΠ½ ΠΈΠΌΠ΅Π΅Ρ ΡΠ²ΠΎΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΡ ΡΡΠ΅ΠΊΠΎΠ²ΡΡ ΠΏΠ°ΠΌΡΡΡ ΠΈ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ ΡΡΠ΅ΠΊΠΎΠ²ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ Π΄ΡΡΠ³ΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠΊΠ°.
ΠΡΡΠ° (Heap)
ΠΡΠ° ΡΠ°ΡΡΡ ΠΏΠ°ΠΌΡΡΠΈ Ρ ΡΠ°Π½ΠΈΡ Π² ΠΏΠ°ΠΌΡΡΠΈ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ, Π½Π° ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΡΠ»Π°ΡΡΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΈΠ· ΡΡΠ΅ΠΊΠ°. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π°Π²Π°ΠΉΡΠ΅ ΠΏΡΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡΡΠ΅ΠΌ, ΡΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π² ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΡΡΡΠΎΠΊΠ΅ ΠΊΠΎΠ΄Π°:
ΠΠ»ΡΡΠ΅Π²ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ new Π½Π΅ΡΠ΅Ρ ΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎΡΡΡ Π·Π° ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΠΎΠ³ΠΎ, Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π»ΠΈ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΌΠ΅ΡΡΠ° Π½Π° ΠΊΡΡΠ΅, ΡΠΎΠ·Π΄Π°Π²Π°Ρ ΠΎΠ±ΡΠ΅ΠΊΡ ΡΠΈΠΏΠ° StringBuilder Π² ΠΏΠ°ΠΌΡΡΠΈ ΠΈ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡ ΠΊ Π½Π΅ΠΌΡ ΡΠ΅ΡΠ΅Π· Β«BuilderΒ» ΡΡΡΠ»ΠΊΠΈ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠΏΠ°Π΄Π°Π΅Ρ Π² ΡΡΠ΅ΠΊ.
ΠΠ»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π·Π°ΠΏΡΡΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ° JVM ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄Π½Π° ΠΎΠ±Π»Π°ΡΡΡ ΠΏΠ°ΠΌΡΡΠΈ Π² ΠΊΡΡΠ΅. Π‘Π»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ, ΡΡΠΎ ΠΎΠ±ΡΠ°Ρ ΡΠ°ΡΡΡ ΠΏΠ°ΠΌΡΡΠΈ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ ΡΠΎΠ³ΠΎ, ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΠΎΠΊΠΎΠ² Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ. ΠΠ° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΡΡΡΡΠΊΡΡΡΠ° ΠΊΡΡΠΈ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ ΠΎΡ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½Π° ΠΊΠ°ΡΡΠΈΠ½ΠΊΠ΅ Π²ΡΡΠ΅. Π‘Π°ΠΌΠ° ΠΊΡΡΠ° ΡΠ°Π·Π΄Π΅Π»Π΅Π½Π° Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°ΡΡΠ΅ΠΉ, ΡΡΠΎ ΠΎΠ±Π»Π΅Π³ΡΠ°Π΅Ρ ΠΏΡΠΎΡΠ΅ΡΡ ΡΠ±ΠΎΡΠΊΠΈ ΠΌΡΡΠΎΡΠ°.
Π’ΠΈΠΏΡ ΡΡΡΠ»ΠΎΠΊ
ΠΡΠ»ΠΈ Π²Ρ Π²Π½ΠΈΠΌΠ°ΡΠ΅Π»ΡΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡΡΠΈΡΠ΅ Π½Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΡΡΡΡΠΊΡΡΡΡ ΠΏΠ°ΠΌΡΡΠΈ, Π²Ρ, Π²Π΅ΡΠΎΡΡΠ½ΠΎ, Π·Π°ΠΌΠ΅ΡΠΈΡΠ΅, ΡΡΠΎ ΡΡΡΠ΅Π»ΠΊΠΈ, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡΠΈΠ΅ ΡΡΡΠ»ΠΊΠΈ Π½Π° ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΈΠ· ΠΊΡΡΠΈ, Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΠΎΡΠ½ΠΎΡΡΡΡΡ ΠΊ ΡΠ°Π·Π½ΡΠΌ ΡΠΈΠΏΠ°ΠΌ. ΠΡΠΎ ΠΏΠΎΡΠΎΠΌΡ, ΡΡΠΎ Π² ΡΠ·ΡΠΊΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Java ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΡΠ°Π·Π½ΡΠ΅ ΡΠΈΠΏΡ ΡΡΡΠ»ΠΎΠΊ: ΡΠΈΠ»ΡΠ½ΡΠ΅, ΡΠ»Π°Π±ΡΠ΅, ΠΌΡΠ³ΠΊΠΈΠ΅ ΠΈ ΡΠ°Π½ΡΠΎΠΌΠ½ΡΠ΅ ΡΡΡΠ»ΠΊΠΈ. Π Π°Π·Π½ΠΈΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ ΡΠΈΠΏΠ°ΠΌΠΈ ΡΡΡΠ»ΠΎΠΊ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΡ Π² ΠΊΡΡΠ΅, Π½Π° ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ½ΠΈ ΡΡΡΠ»Π°ΡΡΡΡ, ΠΈΠΌΠ΅ΡΡ ΠΏΡΠ°Π²ΠΎ Π½Π° ΡΠ±ΠΎΡΠΊΡ ΠΌΡΡΠΎΡΠ° ΠΏΠΎ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌ ΠΊΡΠΈΡΠ΅ΡΠΈΡΠΌ. Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΠΊΠ°ΠΆΠ΄ΡΡ ΠΈΠ· Π½ΠΈΡ .
1. Π‘ΠΈΠ»ΡΠ½Π°Ρ ΡΡΡΠ»ΠΊΠ°
ΠΡΠΎ ΡΠ°ΠΌΡΠ΅ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΠ΅ ΡΡΡΠ»ΠΎΡΠ½ΡΠ΅ ΡΠΈΠΏΡ, ΠΊ ΠΊΠΎΡΠΎΡΡΠΌ ΠΌΡ Π²ΡΠ΅ ΠΏΡΠΈΠ²ΡΠΊΠ»ΠΈ. Π ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²ΡΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΡΠΎ StringBuilder ΠΌΡ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Ρ ΡΠ°Π½ΠΈΠΌ ΡΠΈΠ»ΡΠ½ΡΡ ΡΡΡΠ»ΠΊΡ Π½Π° ΠΎΠ±ΡΠ΅ΠΊΡ ΠΈΠ· ΠΊΡΡΠΈ. ΠΠ±ΡΠ΅ΠΊΡ Π² ΠΊΡΡΠ΅ Π½Π΅ ΡΠ΄Π°Π»ΡΠ΅ΡΡΡ ΡΠ±ΠΎΡΡΠΈΠΊΠΎΠΌ ΠΌΡΡΠΎΡΠ°, ΠΏΠΎΠΊΠ° Π½Π° Π½Π΅Π³ΠΎ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΡΠΈΠ»ΡΠ½Π°Ρ ΡΡΡΠ»ΠΊΠ° ΠΈΠ»ΠΈ Π΅ΡΠ»ΠΈ ΠΎΠ½ ΡΠ²Π½ΠΎ Π΄ΠΎΡΡΡΠΏΠ΅Π½ ΡΠ΅ΡΠ΅Π· ΡΠ΅ΠΏΠΎΡΠΊΡ ΡΠΈΠ»ΡΠ½ΡΡ ΡΡΡΠ»ΠΎΠΊ.
2. Π‘Π»Π°Π±Π°Ρ ΡΡΡΠ»ΠΊΠ°
ΠΠΎΠΏΡΠΎΡΡΡ Π³ΠΎΠ²ΠΎΡΡ, ΡΠ»Π°Π±Π°Ρ ΡΡΡΠ»ΠΊΠ° Π½Π° ΠΎΠ±ΡΠ΅ΠΊΡ ΠΈΠ· ΠΊΡΡΠΈ, ΡΠΊΠΎΡΠ΅Π΅ Π²ΡΠ΅Π³ΠΎ, Π½Π΅ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡΡ ΠΏΠΎΡΠ»Π΅ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΡΠ±ΠΎΡΠΊΠΈ ΠΌΡΡΠΎΡΠ°. Π‘Π»Π°Π±Π°Ρ ΡΡΡΠ»ΠΊΠ° ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
ΠΠΎΡΠ»Π΅ ΡΠ±ΠΎΡΠ° ΠΌΡΡΠΎΡΠ° ΠΊΠ»ΡΡΠ° ΠΈΠ· WeakHashMap Π²ΡΡ Π·Π°ΠΏΠΈΡΡ ΡΠ΄Π°Π»ΡΠ΅ΡΡΡ ΠΈΠ· ΠΊΠ°ΡΡΡ.
3. ΠΡΠ³ΠΊΠ°Ρ ΡΡΡΠ»ΠΊΠ°
ΠΠΎΠ΄ΠΎΠ±Π½ΠΎ ΡΠ»Π°Π±ΡΠΌ ΡΡΡΠ»ΠΊΠ°ΠΌ, ΠΌΡΠ³ΠΊΠ°Ρ ΡΡΡΠ»ΠΊΠ° ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
4. Π€Π°Π½ΡΠΎΠΌΠ½Π°Ρ ΡΡΡΠ»ΠΊΠ°
Π‘ΡΡΠ»ΠΊΠΈ Π½Π° String
Π‘ΡΡΠ»ΠΊΠΈ Π½Π° ΡΠΈΠΏ String Π² Java ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡΡΡ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎ- Π΄ΡΡΠ³ΠΎΠΌΡ. Π‘ΡΡΠΎΠΊΠΈ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΡ, ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π·, ΠΊΠΎΠ³Π΄Π° Π²Ρ Π΄Π΅Π»Π°Π΅ΡΠ΅ ΡΡΠΎ-ΡΠΎ ΡΠΎ ΡΡΡΠΎΠΊΠΎΠΉ, Π² ΠΊΡΡΠ΅ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ Π΄ΡΡΠ³ΠΎΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ. ΠΠ»Ρ ΡΡΡΠΎΠΊ Java ΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ ΠΏΡΠ»ΠΎΠΌ ΡΡΡΠΎΠΊ Π² ΠΏΠ°ΠΌΡΡΠΈ. ΠΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ Java ΡΠΎΡ ΡΠ°Π½ΡΠ΅Ρ ΠΈ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΡΡΠΎΠΊΠΈ, ΠΊΠΎΠ³Π΄Π° ΡΡΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ. Π ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ ΡΡΠΎ Π²Π΅ΡΠ½ΠΎ Π΄Π»Ρ ΡΡΡΠΎΠΊΠΎΠ²ΡΡ Π»ΠΈΡΠ΅ΡΠ°Π»ΠΎΠ². ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
ΠΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ ΡΡΠΎΡ ΠΊΠΎΠ΄ ΡΠ°ΡΠΏΠ΅ΡΠ°ΡΡΠ²Π°Π΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅:
Π‘Π»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ, ΠΎΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ, ΡΡΠΎ Π΄Π²Π΅ ΡΡΡΠ»ΠΊΠΈ ΡΠΈΠΏΠ° String Π½Π° ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΠ΅ ΡΡΡΠΎΠΊΠΎΠ²ΡΠ΅ Π»ΠΈΡΠ΅ΡΠ°Π»Ρ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ Π½Π° ΠΎΠ΄Π½ΠΈ ΠΈ ΡΠ΅ ΠΆΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ Π² ΠΊΡΡΠ΅. ΠΠ΄Π½Π°ΠΊΠΎ ΡΡΠΎ Π½Π΅ Π΄Π΅ΠΉΡΡΠ²ΡΠ΅Ρ Π΄Π»Ρ Π²ΡΡΠΈΡΠ»ΡΠ΅ΠΌΡΡ ΡΡΡΠΎΠΊ. ΠΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, ΡΡΠΎ Ρ Π½Π°Ρ Π΅ΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π² ΡΡΡΠΎΠΊΠ΅ // 1 ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠ³ΠΎ Π²ΡΡΠ΅ ΠΊΠΎΠ΄Π°.
Strings are different
ΠΡΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠΈ Π²ΡΡΠ΅ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ:
ΠΡΠΎΡΠ΅ΡΡ ΡΠ±ΠΎΡΠΊΠΈ ΠΌΡΡΠΎΡΠ°
ΠΠ°ΠΊ ΠΎΠ±ΡΡΠΆΠ΄Π°Π»ΠΎΡΡ ΡΠ°Π½Π΅Π΅, Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠΈΠΏΠ° ΡΡΡΠ»ΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ ΠΈΠ· ΡΡΠ΅ΠΊΠ° ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π½Π° ΠΎΠ±ΡΠ΅ΠΊΡ ΠΈΠ· ΠΊΡΡΠΈ, Π² ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΡΡΠΎΡ ΠΎΠ±ΡΠ΅ΠΊΡ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠΈΠΌ Π΄Π»Ρ ΡΠ±ΠΎΡΡΠΈΠΊΠ° ΠΌΡΡΠΎΡΠ°.

ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π²ΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ, ΠΎΡΠΌΠ΅ΡΠ΅Π½Π½ΡΠ΅ ΠΊΡΠ°ΡΠ½ΡΠΌ ΡΠ²Π΅ΡΠΎΠΌ, ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΡΠΎΠ±ΡΠ°Π½Ρ ΡΠ±ΠΎΡΡΠΈΠΊΠΎΠΌ ΠΌΡΡΠΎΡΠ°. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°ΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ Π² ΠΊΡΡΠ΅ Π΅ΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΠΌΠ΅Π΅Ρ ΡΡΡΠΎΠ³ΠΈΠ΅ ΡΡΡΠ»ΠΊΠΈ Π½Π° Π΄ΡΡΠ³ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ°ΠΊΠΆΠ΅ Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ Π² ΠΊΡΡΠ΅ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠΏΠΈΡΠΎΠΊ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΠΌΠ΅Π΅Ρ ΡΡΡΠ»ΠΊΠΈ Π½Π° Π΅Π³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ, ΠΈΠ»ΠΈ ΠΎΠ±ΡΠ΅ΠΊΡ, ΠΈΠΌΠ΅ΡΡΠΈΠΉ Π΄Π²Π° ΠΏΠΎΠ»Ρ ΡΠΈΠΏΠ°, Π½Π° ΠΊΠΎΡΠΎΡΡΠ΅ Π΅ΡΡΡ ΡΡΡΠ»ΠΊΠΈ). ΠΠ΄Π½Π°ΠΊΠΎ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΡΡΠ»ΠΊΠ° ΠΈΠ· ΡΡΠ΅ΠΊΠ° ΠΏΠΎΡΠ΅ΡΡΠ½Π°, ΠΊ Π½Π΅ΠΉ Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅Π»ΡΠ·Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ, ΡΠ°ΠΊ ΡΡΠΎ ΡΡΠΎ ΡΠΎΠΆΠ΅ ΠΌΡΡΠΎΡ.
Π§ΡΠΎΠ±Ρ ΡΠ³Π»ΡΠ±ΠΈΡΡΡΡ Π² Π΄Π΅ΡΠ°Π»ΠΈ, Π΄Π°Π²Π°ΠΉΡΠ΅ ΡΠ½Π°ΡΠ°Π»Π° ΡΠΏΠΎΠΌΡΠ½Π΅ΠΌ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π²Π΅ΡΠ΅ΠΉ:
ΠΡΠΎΡ ΠΏΡΠΎΡΠ΅ΡΡ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Java, ΠΈ Java ΡΠ΅ΡΠ°Π΅Ρ, Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΠΈΠ»ΠΈ Π½Π΅Ρ ΡΡΠΎΡ ΠΏΡΠΎΡΠ΅ΡΡ.
ΠΠ° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΡΡΠΎ Π΄ΠΎΡΠΎΠ³ΠΎΡΡΠΎΡΡΠΈΠΉ ΠΏΡΠΎΡΠ΅ΡΡ. ΠΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ ΡΠ±ΠΎΡΡΠΈΠΊΠ° ΠΌΡΡΠΎΡΠ° Π²ΡΠ΅ ΠΏΠΎΡΠΎΠΊΠΈ Π² Π²Π°ΡΠ΅ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΏΡΠΈΠΎΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡΡΡ (Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠΈΠΏΠ° GC, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΠΎΠ±ΡΡΠΆΠ΄Π°ΡΡΡΡ ΠΏΠΎΠ·ΠΆΠ΅).
ΠΠ° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΡΡΠΎ Π±ΠΎΠ»Π΅Π΅ ΡΠ»ΠΎΠΆΠ½ΡΠΉ ΠΏΡΠΎΡΠ΅ΡΡ, ΡΠ΅ΠΌ ΠΏΡΠΎΡΡΠΎ ΡΠ±ΠΎΡ ΠΌΡΡΠΎΡΠ° ΠΈ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡΠΈ.
ΠΠ΅ΡΠΌΠΎΡΡΡ Π½Π° ΡΠΎ, ΡΡΠΎ Java ΡΠ΅ΡΠ°Π΅Ρ, ΠΊΠΎΠ³Π΄Π° Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΡΠ±ΠΎΡΡΠΈΠΊ ΠΌΡΡΠΎΡΠ°, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ²Π½ΠΎ Π²ΡΠ·Π²Π°ΡΡ System.gc() ΠΈ ΠΎΠΆΠΈΠ΄Π°ΡΡ, ΡΡΠΎ ΡΠ±ΠΎΡΡΠΈΠΊ ΠΌΡΡΠΎΡΠ° Π±ΡΠ΄Π΅Ρ Π·Π°ΠΏΡΡΠΊΠ°ΡΡΡΡ ΠΏΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΡΡΠΎΠΉ ΡΡΡΠΎΠΊΠΈ ΠΊΠΎΠ΄Π°, Π²Π΅ΡΠ½ΠΎ?
ΠΡΠΎ ΠΎΡΠΈΠ±ΠΎΡΠ½ΠΎΠ΅ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.
ΠΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΊΠ°ΠΊ Π±Ρ ΠΏΡΠΎΡΠΈΡΠ΅ Java Π·Π°ΠΏΡΡΡΠΈΡΡ ΡΠ±ΠΎΡΡΠΈΠΊ ΠΌΡΡΠΎΡΠ°, Π½ΠΎ, ΠΎΠΏΡΡΡ ΠΆΠ΅, Java ΡΠ΅ΡΠ°ΡΡ, Π΄Π΅Π»Π°ΡΡ ΡΡΠΎ ΠΈΠ»ΠΈ Π½Π΅Ρ. Π Π»ΡΠ±ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΠ²Π½ΠΎ Π²ΡΠ·ΡΠ²Π°ΡΡ System.gc() Π½Π΅ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ.
ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΡΠΎ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΡΠ»ΠΎΠΆΠ½ΡΠΉ ΠΏΡΠΎΡΠ΅ΡΡ ΠΈ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ²Π»ΠΈΡΡΡ Π½Π° Π²Π°ΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ, ΠΎΠ½ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ ΡΠ°Π·ΡΠΌΠ½ΠΎ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠ°ΠΊ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΠΉ ΠΏΡΠΎΡΠ΅ΡΡ Β«Mark and SweepΒ». Java Π°Π½Π°Π»ΠΈΠ·ΠΈΡΡΠ΅Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΈΠ· ΡΡΠ΅ΠΊΠ° ΠΈ Β«ΠΎΡΠΌΠ΅ΡΠ°Π΅ΡΒ» Π²ΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ Π² ΡΠ°Π±ΠΎΡΠ΅ΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ. ΠΠ°ΡΠ΅ΠΌ Π²ΡΠ΅ Π½Π΅ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΎΡΠΈΡΠ°ΡΡΡΡ.
Π’Π°ΠΊ ΡΡΠΎ Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ Java Π½Π΅ ΡΠΎΠ±ΠΈΡΠ°Π΅Ρ ΠΌΡΡΠΎΡ. Π€Π°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ, ΡΠ΅ΠΌ Π±ΠΎΠ»ΡΡΠ΅ ΠΌΡΡΠΎΡΠ° ΠΈ ΡΠ΅ΠΌ ΠΌΠ΅Π½ΡΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΠΏΠΎΠΌΠ΅ΡΠ΅Π½Ρ ΠΊΠ°ΠΊ ΠΆΠΈΠ²ΡΠ΅, ΡΠ΅ΠΌ Π±ΡΡΡΡΠ΅Π΅ ΠΈΠ΄Π΅Ρ ΠΏΡΠΎΡΠ΅ΡΡ. Π§ΡΠΎΠ±Ρ ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΎ Π΅ΡΠ΅ Π±ΠΎΠ»Π΅Π΅ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ, ΠΏΠ°ΠΌΡΡΡ ΠΊΡΡΠΈ Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΡΠ°ΡΡΠ΅ΠΉ. ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡΠΈ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΠΏΠΎΠ»Π΅Π·Π½ΡΠ΅ Π²Π΅ΡΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ JVisualVM, ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°, ΠΏΠΎΡΡΠ°Π²Π»ΡΠ΅ΠΌΠΎΠ³ΠΎ Ρ Java JDK. ΠΠ΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΠΎΠ΅, ΡΡΠΎ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ, ΡΡΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΏΠ»Π°Π³ΠΈΠ½ Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ Visual GC, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ²ΠΈΠ΄Π΅ΡΡ, ΠΊΠ°ΠΊ Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΡΡΡΡΠΊΡΡΡΠΈΡΠΎΠ²Π°Π½Π° ΠΏΠ°ΠΌΡΡΡ. ΠΠ°Π²Π°ΠΉΡΠ΅ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ²Π΅Π»ΠΈΡΠΈΠΌ ΠΌΠ°ΡΡΡΠ°Π± ΠΈ ΡΠ°Π·Π±Π΅ΡΠ΅ΠΌ ΠΎΠ±ΡΡΡ ΠΊΠ°ΡΡΠΈΠ½Ρ:

ΠΠΎΠ³Π΄Π° ΠΎΠ±ΡΠ΅ΠΊΡ ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ, ΠΎΠ½ ΡΠ°Π·ΠΌΠ΅ΡΠ°Π΅ΡΡΡ Π² ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π΅ Eden (1). ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ Eden Π½Π΅ ΡΠ°ΠΊΠΎΠ΅ ΡΠΆ Π±ΠΎΠ»ΡΡΠΎΠ΅, ΠΎΠ½ΠΎ Π·Π°ΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ Π±ΡΡΡΡΠΎ. Π‘Π±ΠΎΡΡΠΈΠΊ ΠΌΡΡΠΎΡΠ° ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π² ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π΅ Eden ΠΈ ΠΏΠΎΠΌΠ΅ΡΠ°Π΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΊΠ°ΠΊ ΠΆΠΈΠ²ΡΠ΅.
ΠΡΠ»ΠΈ ΠΎΠ±ΡΠ΅ΠΊΡ Π²ΡΠΆΠΈΠ²Π°Π΅Ρ Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΡΠ±ΠΎΡΠΊΠΈ ΠΌΡΡΠΎΡΠ°, ΠΎΠ½ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°Π΅ΡΡΡ Π² ΡΠ°ΠΊ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΠΎΠ΅ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ Π²ΡΠΆΠΈΠ²ΡΠ΅Π³ΠΎ S0(2). ΠΠΎ Π²ΡΠΎΡΠΎΠΉ ΡΠ°Π·, ΠΊΠΎΠ³Π΄Π° ΡΠ±ΠΎΡΡΠΈΠΊ ΠΌΡΡΠΎΡΠ° Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ Π² ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π΅ Eden, ΠΎΠ½ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°Π΅Ρ Π²ΡΠ΅ ΡΡΠ΅Π»Π΅Π²ΡΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ Π² ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ S1(3). ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Π²ΡΠ΅, ΡΡΠΎ Π² Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π½Π° S0(2), ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°Π΅ΡΡΡ Π² ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ S1(3).
ΠΡΠ»ΠΈ ΠΎΠ±ΡΠ΅ΠΊΡ Π²ΡΠΆΠΈΠ²Π°Π΅Ρ Π² ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ X ΡΠ°ΡΠ½Π΄ΠΎΠ² ΡΠ±ΠΎΡΠΊΠΈ ΠΌΡΡΠΎΡΠ° (X Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ JVM, Π² ΠΌΠΎΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΡΠΎ 8), ΡΠΊΠΎΡΠ΅Π΅ Π²ΡΠ΅Π³ΠΎ, ΠΎΠ½ Π²ΡΠΆΠΈΠ²Π΅Ρ Π²Π΅ΡΠ½ΠΎ ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°Π΅ΡΡΡ Π² ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ Old(4).
ΠΡΠΈΠ½ΠΈΠΌΠ°Ρ Π²ΡΠ΅ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ΅ Π²ΡΡΠ΅, Π΅ΡΠ»ΠΈ Π²Ρ ΠΏΠΎΡΠΌΠΎΡΡΠΈΡΠ΅ Π½Π° Π³ΡΠ°ΡΠΈΠΊ ΡΠ±ΠΎΡΡΠΈΠΊΠ° ΠΌΡΡΠΎΡΠ° (6), ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π·, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ²ΠΈΠ΄Π΅ΡΡ, ΡΡΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°ΡΡΡΡ Π½Π° ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ Π²ΡΠΆΠΈΠ²ΡΠΈΡ ΠΈ ΡΡΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ ΠΠ΄Π΅ΠΌΠ° ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°Π»ΠΎΡΡ. Π ΡΠ°ΠΊ Π΄Π°Π»Π΅Π΅. Π‘ΡΠ°ΡΠΎΠ΅ ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΠ΅ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°Π½ΠΎ ΡΠ±ΠΎΡΡΠΈΠΊΠΎΠΌ ΠΌΡΡΠΎΡΠ°, Π½ΠΎ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΡΠΎ Π±ΠΎΠ»ΡΡΠ°Ρ ΡΠ°ΡΡΡ ΠΏΠ°ΠΌΡΡΠΈ ΠΏΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Ρ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎΠΌ Eden, ΡΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π½Π΅ ΡΠ°ΠΊ ΡΠ°ΡΡΠΎ. ΠΠ΅ΡΠ°ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ (5) ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΡΡ ΠΎ Π²Π°ΡΠΈΡ Π·Π°Π³ΡΡΠΆΠ΅Π½Π½ΡΡ ΠΊΠ»Π°ΡΡΠ°Ρ Π² JVM.
ΠΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π½ΠΎΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ Java 8. ΠΠΎ Java 8 ΡΡΡΡΠΊΡΡΡΠ° ΠΏΠ°ΠΌΡΡΠΈ Π±ΡΠ»Π° Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΡΡΠ³ΠΎΠΉ. ΠΠ΅ΡΠ°ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ PermGen ΠΎΠ±Π»Π°ΡΡΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π² Java 6 ΡΡΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ ΡΠ°ΠΊΠΆΠ΅ Ρ ΡΠ°Π½ΠΈΡ ΠΏΠ°ΠΌΡΡΡ Π΄Π»Ρ ΠΏΡΠ»Π° ΡΡΡΠΎΠΊ. ΠΠΎΡΡΠΎΠΌΡ, Π΅ΡΠ»ΠΈ Π² Π²Π°ΡΠ΅ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Java 6 ΡΠ»ΠΈΡΠΊΠΎΠΌ ΠΌΠ½ΠΎΠ³ΠΎ ΡΡΡΠΎΠΊ, ΠΎΠ½ΠΎ ΠΌΠΎΠΆΠ΅Ρ Π°Π²Π°ΡΠΈΠΉΠ½ΠΎ Π·Π°Π²Π΅ΡΡΠΈΡΡ ΡΠ°Π±ΠΎΡΡ.
Π’ΠΈΠΏΡ ΡΠ±ΠΎΡΡΠΈΠΊΠΎΠ² ΠΌΡΡΠΎΡΠ°
Π€Π°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ, JVM ΠΈΠΌΠ΅Π΅Ρ ΡΡΠΈ ΡΠΈΠΏΠ° ΡΠ±ΠΎΡΡΠΈΠΊΠΎΠ² ΠΌΡΡΠΎΡΠ°, ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠ±ΡΠ°ΡΡ, ΠΊΠ°ΠΊΠΎΠΉ ΠΈΠ· Π½ΠΈΡ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ. ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Java Π²ΡΠ±ΠΈΡΠ°Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΉ ΡΠΈΠΏ ΡΠ±ΠΎΡΡΠΈΠΊΠ° ΠΌΡΡΠΎΡΠ° Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠ±ΠΎΡΡΠ΄ΠΎΠ²Π°Π½ΠΈΡ.
3. Mostly concurrent GC (Π ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΡΠΉ ΡΠ±ΠΎΡΡΠΈΠΊ ΠΌΡΡΠΎΡΠ°). ΠΡΠ»ΠΈ Π²Ρ ΠΏΠΎΠΌΠ½ΠΈΡΠ΅, ΡΠ°Π½Π΅Π΅ Π² ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΡΠΏΠΎΠΌΠΈΠ½Π°Π»ΠΎΡΡ, ΡΡΠΎ ΠΏΡΠΎΡΠ΅ΡΡ ΡΠ±ΠΎΡΠ° ΠΌΡΡΠΎΡΠ° Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ Π΄ΠΎΡΠΎΠ³ΠΎΡΡΠΎΡΡΠΈΠΉ, ΠΈ ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ, Π²ΡΠ΅ ΠΏΠΎΡΠΎΠΊΠΈ ΠΏΡΠΈΠΎΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡΡΡ. ΠΠ΄Π½Π°ΠΊΠΎ Ρ Π½Π°Ρ Π΅ΡΡΡ Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΡΠΉ ΡΠΈΠΏ GC, ΠΊΠΎΡΠΎΡΡΠΉ ΡΡΠ²Π΅ΡΠΆΠ΄Π°Π΅Ρ, ΡΡΠΎ ΠΎΠ½ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ. ΠΠ΄Π½Π°ΠΊΠΎ Π΅ΡΡΡ ΠΏΡΠΈΡΠΈΠ½Π°, ΠΏΠΎ ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΎΠ½ Β«Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌΒ» ΠΏΠ°ΡΠ°Π»Π»Π΅Π»Π΅Π½. ΠΠ½ Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π½Π° 100% ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ. ΠΡΡΡ ΠΏΠ΅ΡΠΈΠΎΠ΄ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, Π½Π° ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ΅ΠΏΠΎΡΠΊΠΈ ΠΏΡΠΈΠΎΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡΡΡ. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, ΠΏΠ°ΡΠ·Π° Π΄Π΅Π»Π°Π΅ΡΡΡ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΊΠΎΡΠΎΡΠ΅ Π΄Π»Ρ Π΄ΠΎΡΡΠΈΠΆΠ΅Π½ΠΈΡ Π½Π°ΠΈΠ»ΡΡΡΠ΅ΠΉ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΡΠ±ΠΎΡΡΠΈΠΊΠ° ΠΌΡΡΠΎΡΠ°. ΠΠ° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ 2 ΡΠΈΠΏΠ° Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΡΡ ΡΠ±ΠΎΡΡΠΈΠΊΠΎΠ² ΠΌΡΡΠΎΡΠ°:
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΡΠΈΠΊΠ°. ΠΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΏΡΠΎ ΡΠ±ΠΎΡΡΠΈΠΊΠΈ ΠΌΡΡΠΎΡΠ° Π΄Π»Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ Π²Π΅ΡΡΠΈΠΉ Java ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π° Π² ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄Π΅:
Π‘ΠΎΠ²Π΅ΡΡ ΠΈ ΠΏΡΠΈΠ΅ΠΌΡ
Π§ΡΠΎΠ±Ρ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΎΠ±ΡΠ΅ΠΌ ΠΏΠ°ΠΌΡΡΠΈ, ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ ΠΎΠ³ΡΠ°Π½ΠΈΡΡΡΠ΅ ΠΎΠ±Π»Π°ΡΡΡ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ . ΠΠΎΠΌΠ½ΠΈΡΠ΅, ΡΡΠΎ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π·, ΠΊΠΎΠ³Π΄Π° Π²ΡΡΠΊΠ°ΠΊΠΈΠ²Π°Π΅Ρ Π²Π΅ΡΡ Π½ΡΡ ΠΎΠ±Π»Π°ΡΡΡ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΈΠ· ΡΡΠ΅ΠΊΠ°, ΡΡΡΠ»ΠΊΠΈ ΠΈΠ· ΡΡΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ ΡΠ΅ΡΡΡΡΡΡ, ΠΈ ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΡΠ΄Π΅Π»Π°ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΏΡΠΈΠ³ΠΎΠ΄Π½ΡΠΌΠΈ Π΄Π»Ρ ΡΠ±ΠΎΡΠ° ΠΌΡΡΠΎΡΠ°.
Π―Π²Π½ΠΎ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΠΉΡΠ΅ Π² null ΡΡΡΠ°ΡΠ΅Π²ΡΠΈΠ΅ ΡΡΡΠ»ΠΊΠΈ. ΠΡΠΎ ΡΠ΄Π΅Π»Π°Π΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡΡ, Π½Π° ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΡΠ»Π°ΡΡΡΡ, ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠΈΠΌΠΈ Π΄Π»Ρ ΡΠ±ΠΎΡΠ° ΠΌΡΡΠΎΡΠ°.
ΠΠ·Π±Π΅Π³Π°ΠΉΡΠ΅ ΡΠΈΠ½Π°Π»ΠΈΠ·Π°ΡΠΎΡΠΎΠ² (finalizer). ΠΠ½ΠΈ Π·Π°ΠΌΠ΅Π΄Π»ΡΡΡ ΠΏΡΠΎΡΠ΅ΡΡ ΠΈ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ Π³Π°ΡΠ°Π½ΡΠΈΡΡΡΡ. Π€Π°Π½ΡΠΎΠΌΠ½ΡΠ΅ ΡΡΡΠ»ΠΊΠΈ ΠΏΡΠ΅Π΄ΠΏΠΎΡΡΠΈΡΠ΅Π»ΡΠ½Ρ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ ΠΏΠΎ ΠΎΡΠΈΡΡΠΊΠ΅ ΠΏΠ°ΠΌΡΡΠΈ.
JVisualVM ΡΠ°ΠΊΠΆΠ΅ ΠΈΠΌΠ΅Π΅Ρ ΡΡΠ½ΠΊΡΠΈΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π΄Π°ΠΌΠΏΠ° ΠΊΡΡΠΈ Π² ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ, ΡΡΠΎΠ±Ρ Π²Ρ ΠΌΠΎΠ³Π»ΠΈ Π°Π½Π°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°, ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΠ°ΠΌΡΡΠΈ ΠΎΠ½ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ.
ΠΠ°ΡΡΡΠΎΠΉΡΠ΅ JVM Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Ρ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡΠΌΠΈ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. Π―Π²Π½ΠΎ ΡΠΊΠ°ΠΆΠΈΡΠ΅ ΡΠ°Π·ΠΌΠ΅Ρ ΠΊΡΡΠΈ Π΄Π»Ρ JVM ΠΏΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΡΠΎΡΠ΅ΡΡ Π²ΡΠ΄Π΅Π»Π΅Π½ΠΈΡ ΠΏΠ°ΠΌΡΡΠΈ ΡΠ°ΠΊΠΆΠ΅ ΡΠ²Π»ΡΠ΅ΡΡΡ Π΄ΠΎΡΠΎΠ³ΠΎΡΡΠΎΡΡΠΈΠΌ, ΠΏΠΎΡΡΠΎΠΌΡ Π²ΡΠ΄Π΅Π»ΠΈΡΠ΅ ΡΠ°Π·ΡΠΌΠ½ΡΠΉ Π½Π°ΡΠ°Π»ΡΠ½ΡΠΉ ΠΈ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ ΠΎΠ±ΡΠ΅ΠΌ ΠΏΠ°ΠΌΡΡΠΈ Π΄Π»Ρ ΠΊΡΡΠΈ. ΠΡΠ»ΠΈ Π²Ρ Π·Π½Π°Π΅ΡΠ΅ Π΅Π³ΠΎ, ΡΠΎ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ ΡΠΌΡΡΠ»Π° Π½Π°ΡΠΈΠ½Π°ΡΡ Ρ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠ³ΠΎ Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠ° ΠΊΡΡΠΈ Ρ ΡΠ°ΠΌΠΎΠ³ΠΎ Π½Π°ΡΠ°Π»Π°, JVM ΡΠ°ΡΡΠΈΡΠΈΡ ΡΡΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ ΠΏΠ°ΠΌΡΡΠΈ. Π£ΠΊΠ°Π·Π°Π½ΠΈΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΠΏΠ°ΠΌΡΡΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ²:
ΠΡΠ»ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Java Π²ΡΠ΄Π°Π΅Ρ ΠΎΡΠΈΠ±ΠΊΡ OutOfMemoryError ΠΈ Π²Π°ΠΌ Π½ΡΠΆΠ½Π° Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½Π°Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π΄Π»Ρ ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΈΡ ΡΡΠ΅ΡΠΊΠΈ, Π·Π°ΠΏΡΡΡΠΈΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΡ Ρ βXX:HeapDumpOnOutOfMemory ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ°ΠΉΠ» Π΄Π°ΠΌΠΏΠ° ΠΊΡΡΠΈ, ΠΊΠΎΠ³Π΄Π° ΡΡΠ° ΠΎΡΠΈΠ±ΠΊΠ° ΠΏΡΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ Π² ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΡΠ°Π·.
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
ΠΠ°ΠΊ Π²ΡΠ΄Π΅Π»ΠΈΡΡ Java Π±ΠΎΠ»ΡΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ
ΠΠ·-Π·Π° Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° Java Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½Π½ΡΠΌΠΈ ΠΏΡΠΎΠ΄ΡΠΊΡΠ°ΠΌΠΈ ΠΌΠΎΠ³ΡΡ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡ ΠΎΡΠΈΠ±ΠΊΠΈ, ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΡΠΎΡΡΡ Π»Π΅ΠΆΠΈΡ Π½Π° ΠΏΠ»Π΅ΡΠ°Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ. ΠΠ½ΠΎ Π΄ΠΎΡΡΠΈΠ³Π°Π΅ΡΡΡ Π΄Π²ΡΠΌΡ ΠΏΡΡΡΠΌΠΈ: ΠΏΠ΅ΡΠ΅ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΎΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΈ Π²ΡΠ΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ Java. Π‘ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΠΈΡΡΠ°ΡΠΈΠ΅ΠΉ ΡΡΠΎΠΈΡ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ.
ΠΠ°ΡΠ΅ΠΌ ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°ΡΡ ΠΏΠ°ΠΌΡΡΡ Java
ΠΠ°Π΄Π°ΡΡ ΠΏΠΎ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΡ Java ΠΏΠ°ΠΌΡΡΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ ΡΡΠ°Π²ΡΡ ΠΏΠ΅ΡΠ΅Π΄ ΡΠΎΠ±ΠΎΠΉ Π² ΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΡΠ»ΡΡΠ°ΡΡ :
ΠΡΠΏΡΠ°Π²ΠΈΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΠΌΠΎΠΆΠ½ΠΎ Π΄Π²ΡΠΌΡ ΡΠΏΠΎΡΠΎΠ±Π°ΠΌΠΈ.
ΠΠ°ΠΊ Π²ΡΠ΄Π΅Π»ΠΈΡΡ ΠΏΠ°ΠΌΡΡΡ Java
ΠΡΠ΄Π΅Π»ΠΈΡΡ ΠΠΆΠ°Π²Π°-ΠΌΠΎΠ΄ΡΠ»Ρ Π±ΠΎΠ»ΡΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΅ΡΠ΅Π· Β«ΠΠ°Π½Π΅Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡΒ». Π‘ΠΏΠΎΡΠΎΠ± ΡΠ΄ΠΎΠ±Π½Π΅Π΅ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅ΡΡ Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌ Ρ Π·Π°ΠΏΡΡΠΊΠΎΠΌ ΠΈΠ³ΡΡ Minecraft.
ΠΠ½ΡΡΡΡΠΊΡΠΈΡ:
ΠΡΠ»ΠΈ ΡΡΠΎ Π½Π΅ ΠΏΠΎΠΌΠΎΠ³Π»ΠΎ Π·Π°ΠΏΡΡΡΠΈΡΡ Minecraft, ΠΏΠ΅ΡΠ΅ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ ΠΌΠΎΠ΄ΡΠ»Ρ Java ΠΈ ΠΈΠ³ΡΡ. ΠΠΎΡΠ»Π΅ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ ΠΎΡΠΈΡΡΠΈΡΠ΅ ΡΠ΅Π΅ΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ CCleaner.
Π£Π²Π΅Π»ΠΈΡΠ΅Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΡΡΠ΅Π΄Ρ
Π§ΡΠΎΠ±Ρ ΡΠΈΡΡΠ΅ΠΌΠ° Π²ΠΎΡΠΏΡΠΈΠ½ΠΈΠΌΠ°Π»Π° Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΠ΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ, Π½ΡΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Ρ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ Β«_JAVA_OPTIONSΒ».
ΠΡΠ»ΠΈ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΠ°ΠΌΡΡΠΈ, ΠΎΡΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΉ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Java, Π² Π΄Π²Π° ΡΠ°Π·Π° ΠΌΠ΅Π½ΡΡΠ΅ ΠΈΠΌΠ΅ΡΡΠ΅ΠΉΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²ΠΊΠΈ, ΡΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΏΡΠΎΠΏΠΈΡΡΠ²Π°ΡΡΡΡ ΠΏΠΎ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ:
Π ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΎΠ±ΡΠ΅ΠΌ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²ΠΊΠΈ ΡΠΎΡΡΠ°Π²Π»ΡΠ» 1 ΠΠ±.
ΠΠΈΠ΄Π΅ΠΎ: 3 ΡΠΏΠΎΡΠΎΠ±Π° Π²ΡΠ΄Π΅Π»ΠΈΡΡ Π±ΠΎΠ»ΡΡΠ΅ ΠΏΠ°ΠΌΡΡΠΈ Java.
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ Π² ΡΡΠ°ΡΡΠ΅ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½ΠΎ Π΄Π²Π° ΠΌΠ΅ΡΠΎΠ΄Π° ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ, Π²ΡΠ΄Π΅Π»ΡΠ΅ΠΌΠΎΠΉ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Java-ΠΌΠΎΠ΄ΡΠ»Ρ.
Π Π°Π·Π²Π΅ΠΈΠ²Π°Π΅ΠΌ ΠΌΠΈΡΡ ΠΎΠ± ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠΈ ΠΏΠ°ΠΌΡΡΡΡ Π² JVM
Π‘ΡΡΡΠΊΡΡΡΠ° ΠΏΠ°ΠΌΡΡΠΈ JVM
Π‘Π½Π°ΡΠ°Π»Π° Π΄Π°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ Π½Π° ΡΡΡΡΠΊΡΡΡΡ ΠΏΠ°ΠΌΡΡΠΈ JVM. ΠΡΠ° ΡΡΡΡΠΊΡΡΡΠ° ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π½Π°ΡΠΈΠ½Π°Ρ Ρ JDK 11. ΠΠΎΡ ΠΊΠ°ΠΊΠ°Ρ ΠΏΠ°ΠΌΡΡΡ Π΄ΠΎΡΡΡΠΏΠ½Π° ΠΏΡΠΎΡΠ΅ΡΡΡ JVM, ΠΎΠ½Π° Π²ΡΠ΄Π΅Π»ΡΠ΅ΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ:
ΠΡΠΎ Π½Π°ΡΠΈΠ²Π½Π°Ρ ΠΏΠ°ΠΌΡΡΡ, Π²ΡΠ΄Π΅Π»ΡΠ΅ΠΌΠ°Ρ ΠΠ‘, ΠΈ Π΅Ρ ΡΠ°Π·ΠΌΠ΅Ρ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΡΠΈΡΡΠ΅ΠΌΡ, ΠΏΡΠΎΡΠ΅ΡΡΠΎΡ ΠΈ JRE. ΠΠ°ΠΊΠΈΠ΅ ΠΎΠ±Π»Π°ΡΡΠΈ ΠΈ Π΄Π»Ρ ΡΠ΅Π³ΠΎ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Ρ?
ΠΡΡΠ° (heap)
ΠΠ΄Π΅ΡΡ JVM Ρ ΡΠ°Π½ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΈ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π΄Π°Π½Π½ΡΠ΅. ΠΡΠΎ ΡΠ°ΠΌΠ°Ρ ΠΊΡΡΠΏΠ½Π°Ρ ΠΎΠ±Π»Π°ΡΡΡ ΠΏΠ°ΠΌΡΡΠΈ, Π² Π½Π΅ΠΉ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΠ±ΠΎΡΡΠΈΠΊ ΠΌΡΡΠΎΡΠ°. Π Π°Π·ΠΌΠ΅ΡΠΎΠΌ ΠΊΡΡΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΏΡΠ°Π²Π»ΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ»Π°Π³ΠΎΠ² Xms (Π½Π°ΡΠ°Π»ΡΠ½ΡΠΉ ΡΠ°Π·ΠΌΠ΅Ρ) ΠΈ Xmx (ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ ΡΠ°Π·ΠΌΠ΅Ρ). ΠΡΡΠ° Π½Π΅ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Π΅ ΡΠ΅Π»ΠΈΠΊΠΎΠΌ, ΠΊΠ°ΠΊΠ°Ρ-ΡΠΎ ΡΠ°ΡΡΡ ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΡΠ΅ΡΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π°, Π·Π° ΡΡΡΡ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΊΡΡΠ° ΠΌΠΎΠΆΠ΅Ρ Π² Π±ΡΠ΄ΡΡΠ΅ΠΌ ΡΠ°ΡΡΠΈ. ΠΡΡΠ° Π΄Π΅Π»ΠΈΡΡΡ Π½Π° ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π° Β«ΠΌΠΎΠ»ΠΎΠ΄ΠΎΠ³ΠΎΒ» ΠΈ Β«ΡΡΠ°ΡΠΎΠ³ΠΎΒ» ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΡ.
Π‘ΡΠ΅ΠΊΠΈ ΠΏΠΎΡΠΎΠΊΠΎΠ² ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ
ΠΠ΅ΡΠ°ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ
ΠΠ΅Ρ ΠΊΠΎΠ΄Π°
ΠΠ΄Π΅ΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Just In Time (JIT) Ρ ΡΠ°Π½ΠΈΡ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ Π±Π»ΠΎΠΊΠΈ ΠΊΠΎΠ΄Π°, ΠΊ ΠΊΠΎΡΠΎΡΡΠΌ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡΡ ΡΠ°ΡΡΠΎ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ. ΠΠ±ΡΡΠ½ΠΎ JVM ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠΈΡΡΠ΅Ρ Π±Π°ΠΉΡΠΊΠΎΠ΄ Π² Π½Π°ΡΠΈΠ²Π½ΡΠΉ ΠΌΠ°ΡΠΈΠ½Π½ΡΠΉ ΠΊΠΎΠ΄, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΊΠΎΠ΄, ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ JIT-ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠΎΠΌ, Π½Π΅ Π½ΡΠΆΠ½ΠΎ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠΈΡΠΎΠ²Π°ΡΡ, ΠΎΠ½ ΡΠΆΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ Π² Π½Π°ΡΠΈΠ²Π½ΠΎΠΌ ΡΠΎΡΠΌΠ°ΡΠ΅ ΠΈ Π·Π°ΠΊΠ΅ΡΠΈΡΠΎΠ²Π°Π½ Π² ΡΡΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ ΠΏΠ°ΠΌΡΡΠΈ.
ΠΠ±ΡΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ
ΠΠ΄Π΅ΡΡ Ρ ΡΠ°Π½ΠΈΡΡΡ Π½Π°ΡΠΈΠ²Π½ΡΠΉ ΠΊΠΎΠ΄ Π΄Π»Ρ Π»ΡΠ±ΡΡ ΠΎΠ±ΡΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ. ΠΡΠ° ΠΎΠ±Π»Π°ΡΡΡ ΠΏΠ°ΠΌΡΡΠΈ Π·Π°Π³ΡΡΠΆΠ°Π΅ΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ Π»ΠΈΡΡ ΠΎΠ΄ΠΈΠ½ ΡΠ°Π· Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ°.
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡΠΈ JVM: ΡΡΠ΅ΠΊ ΠΈ ΠΊΡΡΠ°
Π’Π΅ΠΏΠ΅ΡΡ Π΄Π°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΠ°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΠ°ΠΌΡΠ΅ Π²Π°ΠΆΠ½ΡΠ΅ ΡΠ°ΡΡΠΈ ΠΏΠ°ΠΌΡΡΠΈ. ΠΠΎΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ Π½ΠΈΠΆΠ΅ΠΏΡΠΈΠ²Π΅Π΄ΡΠ½Π½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ. ΠΠ½ Π½Π΅ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½ Ρ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΡΡΠΈ, ΡΠ°ΠΊ ΡΡΠΎ ΠΈΠ³Π½ΠΎΡΠΈΡΡΠΉΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π²ΡΠΎΠ΄Π΅ Π½Π΅Π½ΡΠΆΠ½ΡΡ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ , Π½Π΅ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΡΡ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠ² ΠΈ ΠΏΡΠΎΡΠ΅Π³ΠΎ. ΠΠ³ΠΎ Π·Π°Π΄Π°ΡΠ° β Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΠ΅ΠΊΠ° ΠΈ ΠΊΡΡΠΈ.
ΠΠ΄Π΅ΡΡ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ²ΠΈΠ΄Π΅ΡΡ, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π²ΡΡΠ΅ΠΏΡΠΈΠ²Π΅Π΄ΡΠ½Π½Π°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΈ ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΡΡΠ΅ΠΊ ΠΈ ΠΊΡΡΠ°:
Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡΡΡ JVM: ΡΠ±ΠΎΡΠΊΠ° ΠΌΡΡΠΎΡΠ°
ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΠ°Π·Π±Π΅ΡΡΠΌΡΡ Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΊΡΡΠ΅ΠΉ, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΈΠ³ΡΠ°Π΅Ρ ΠΎΡΠ΅Π½Ρ Π²Π°ΠΆΠ½ΡΡ ΡΠΎΠ»Ρ Ρ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΠΎΠ³Π΄Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΏΡΡΠ°Π΅ΡΡΡ Π²ΡΠ΄Π΅Π»ΠΈΡΡ Π² ΠΊΡΡΠ΅ Π±ΠΎΠ»ΡΡΠ΅ ΠΏΠ°ΠΌΡΡΠΈ, ΡΠ΅ΠΌ Π΄ΠΎΡΡΡΠΏΠ½ΠΎ (Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Xmx ), ΠΌΡ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ ΠΎΡΠΈΠ±ΠΊΠΈ Π½Π΅Ρ Π²Π°ΡΠΊΠΈ ΠΏΠ°ΠΌΡΡΠΈ.
JVM ΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ ΠΊΡΡΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ±ΠΎΡΠΊΠΈ ΠΌΡΡΠΎΡΠ°. Π§ΡΠΎΠ±Ρ ΠΎΡΠ²ΠΎΠ±ΠΎΠ΄ΠΈΡΡ ΠΌΠ΅ΡΡΠΎ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ°, JVM ΠΎΡΠΈΡΠ°Π΅Ρ ΠΏΠ°ΠΌΡΡΡ, Π·Π°Π½ΡΡΡΡ ΠΏΠΎΡΠ΅ΡΡΠ½Π½ΡΠΌΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ, ΡΠΎ Π΅ΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ, Π½Π° ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅Ρ ΠΏΡΡΠΌΡΡ ΠΈΠ»ΠΈ ΠΎΠΏΠΎΡΡΠ΅Π΄ΠΎΠ²Π°Π½Π½ΡΡ ΡΡΡΠ»ΠΎΠΊ ΠΈΠ· ΡΡΠ΅ΠΊΠ°.
Π‘Π±ΠΎΡΡΠΈΠΊ ΠΌΡΡΠΎΡΠ° Π² JVM ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ Π·Π°:
Π‘Π±ΠΎΡΡΠΈΠΊ ΠΌΡΡΠΎΡΠ° Mark & Sweep
JVM ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ ΠΏΠΎΡΠΎΠΊ Π΄Π΅ΠΌΠΎΠ½Π°, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π² ΡΠΎΠ½Π΅ Π΄Π»Ρ ΡΠ±ΠΎΡΠΊΠΈ ΠΌΡΡΠΎΡΠ°. ΠΡΠΎΡ ΠΏΡΠΎΡΠ΅ΡΡ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ ΠΏΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΡΡ ΡΡΠ»ΠΎΠ²ΠΈΠΉ. Π‘Π±ΠΎΡΡΠΈΠΊ Mark & Sweep ΠΎΠ±ΡΡΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π² Π΄Π²Π° ΡΡΠ°ΠΏΠ°, ΠΈΠ½ΠΎΠ³Π΄Π° Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ ΡΡΠ΅ΡΠΈΠΉ, Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠ³ΠΎ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ°.
JVM ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ Π½Π° Π²ΡΠ±ΠΎΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°Π·Π½ΡΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠ² ΡΠ±ΠΎΡΠΊΠΈ ΠΌΡΡΠΎΡΠ°, ΠΈ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ Π²Π°ΡΠ΅Π³ΠΎ JDK ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π΅ΡΡ Π±ΠΎΠ»ΡΡΠ΅ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ² (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ±ΠΎΡΡΠΈΠΊ Shenandoah Π² OpenJDK). ΠΠ²ΡΠΎΡΡ ΡΠ°Π·Π½ΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΉ ΡΡΡΠ΅ΠΌΡΡΡΡ ΠΊ ΡΠ°Π·Π½ΡΠΌ ΡΠ΅Π»ΡΠΌ:
Π‘Π±ΠΎΡΡΠΈΠΊΠΈ Π² JDK 11
ΠΡΠΎΡΠ΅ΡΡ ΡΠ±ΠΎΡΠΊΠΈ ΠΌΡΡΠΎΡΠ°
ΠΠ½Π΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊΠΎΠΉ Π²ΡΠ±ΡΠ°Π½ ΡΠ±ΠΎΡΡΠΈΠΊ, Π² JVM ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π²Π° Π²ΠΈΠ΄Π° ΡΠ±ΠΎΡΠΊΠΈ β ΠΌΠ»Π°Π΄ΡΠΈΠΉ ΠΈ ΡΡΠ°ΡΡΠΈΠΉ ΡΠ±ΠΎΡΡΠΈΠΊ.
ΠΠ»Π°Π΄ΡΠΈΠΉ ΡΠ±ΠΎΡΡΠΈΠΊ
ΠΠ½ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΠΈΡΡΠΎΡΡ ΠΈ ΠΊΠΎΠΌΠΏΠ°ΠΊΡΠ½ΠΎΡΡΡ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π° ΠΌΠΎΠ»ΠΎΠ΄ΠΎΠ³ΠΎ ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΡ. ΠΠ°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ ΡΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° JVM Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π² ΡΠ°Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΡ ΠΏΠ°ΠΌΡΡΡ Π΄Π»Ρ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ°. ΠΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ Π²ΡΠ΅ ΠΎΠ±Π»Π°ΡΡΠΈ ΠΊΡΡΠΈ ΠΏΡΡΡΡ. Π Π°ΠΉ Π·Π°ΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΏΠ΅ΡΠ²ΡΠΌ, Π·Π° Π½ΠΈΠΌ ΠΎΠ±Π»Π°ΡΡΡ Π²ΡΠΆΠΈΠ²ΡΠΈΡ , ΠΈ Π² ΠΊΠΎΠ½ΡΠ΅ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅.
ΠΠ΄Π΅ΡΡ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΠΏΡΠΎΡΠ΅ΡΡ ΡΠ°Π±ΠΎΡΡ ΡΡΠΎΠ³ΠΎ ΡΠ±ΠΎΡΡΠΈΠΊΠ°:
Π‘ΡΠ°ΡΡΠΈΠΉ ΡΠ±ΠΎΡΡΠΈΠΊ
Π‘Π»Π΅Π΄ΠΈΡ Π·Π° ΡΠΈΡΡΠΎΡΠΎΠΉ ΠΈ ΠΊΠΎΠΌΠΏΠ°ΠΊΡΠ½ΠΎΡΡΡΡ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π° ΡΡΠ°ΡΠΎΠ³ΠΎ ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΡ (Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ΠΌ). ΠΠ°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ ΠΏΡΠΈ ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· ΡΠ°ΠΊΠΈΡ ΡΡΠ»ΠΎΠ²ΠΈΠΉ:
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
ΠΡ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π»ΠΈ ΡΡΡΡΠΊΡΡΡΡ ΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡΡΡ JVM. ΠΡΠΎ Π½Π΅ ΠΈΡΡΠ΅ΡΠΏΡΠ²Π°ΡΡΠ°Ρ ΡΡΠ°ΡΡΡ, ΠΌΡ Π½Π΅ Π³ΠΎΠ²ΠΎΡΠΈΠ»ΠΈ ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ Π±ΠΎΠ»Π΅Π΅ ΡΠ»ΠΎΠΆΠ½ΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΡΡ ΠΈ ΡΠΏΠΎΡΠΎΠ±Π°Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΏΠΎΠ΄ ΠΎΡΠΎΠ±ΡΠ΅ ΡΡΠ΅Π½Π°ΡΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ. ΠΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΡΠΈΡΠ°ΡΡ Π·Π΄Π΅ΡΡ.
ΠΠΎ Π΄Π»Ρ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π° JVM-ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² (Java, Kotlin, Scala, Clojure, JRuby, Jython) ΡΡΠΎΠ³ΠΎ ΠΎΠ±ΡΡΠΌΠ° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ Π±ΡΠ΄Π΅Ρ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ. ΠΠ°Π΄Π΅ΡΡΡ, ΡΠ΅ΠΏΠ΅ΡΡ Π²Ρ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΈΡΠ°ΡΡ Π±ΠΎΠ»Π΅Π΅ ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠΉ ΠΊΠΎΠ΄, ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π±ΠΎΠ»Π΅Π΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΈΠ·Π±Π΅Π³Π°Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ Ρ ΡΡΠ΅ΡΠΊΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ.
Π Π°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡΠΈ Π² JVM
ΠΡΠ΅ΠΌ ΠΏΡΠΈΠ²Π΅Ρ! ΠΠ΅ΡΠ΅Π²ΠΎΠ΄ ΡΠ΅Π³ΠΎΠ΄Π½ΡΡΠ½Π΅Π³ΠΎ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»Π° ΠΌΡ Ρ ΠΎΡΠΈΠΌ ΠΏΡΠΈΡΡΠΎΡΠΈΡΡ ΠΊ Π·Π°ΠΏΡΡΠΊΡ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠΊΠ° ΠΏΠΎ ΠΊΡΡΡΡ Β«Π Π°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ JavaΒ», ΠΊΠΎΡΠΎΡΡΠΉ ΡΡΠ°ΡΡΡΠ΅Ρ ΡΠΆΠ΅ Π·Π°Π²ΡΡΠ°. Π§ΡΠΎ ΠΆ Π½Π°ΡΠ½ΡΠΌ.
JVM ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠ»ΠΎΠΆΠ½ΡΠΌ Π·Π²Π΅ΡΠ΅ΠΌ. Π ΡΡΠ°ΡΡΡΡ, Π±ΠΎΠ»ΡΡΠ°Ρ ΡΠ°ΡΡΡ ΡΡΠΎΠΉ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠΈ ΡΠΊΡΡΡΠ° ΠΏΠΎΠ΄ ΠΊΠ°ΠΏΠΎΡΠΎΠΌ, ΠΈ ΠΌΡ, ΠΊΠ°ΠΊ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ ΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΡΠ΅ Π·Π° Π΄Π΅ΠΏΠ»ΠΎΠΉ, ΡΠ°ΡΡΠΎ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΎΠ± ΡΡΠΎΠΌ ΡΠΈΠ»ΡΠ½ΠΎ Π±Π΅ΡΠΏΠΎΠΊΠΎΠΈΡΡΡΡ. Π₯ΠΎΡΡ ΠΈΠ·-Π·Π° ΡΠΎΡΡΠ° ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΎΡΡΠΈ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π² ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°Ρ , ΡΡΠΎΠΈΡ ΠΎΠ±ΡΠ°ΡΠΈΡΡ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡΠΈ Π² JVM.
ΠΠ°ΠΊ Π²Ρ Π²ΠΈΠ΄ΠΈΡΠ΅, Π½Π° ΠΏΠ°ΠΌΡΡΡ Π²Π½Π΅ ΠΊΡΡΠΈ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡΡ Π±ΠΎΠ»ΡΡΠ°Ρ ΡΠ°ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ JVM, ΠΏΡΠΈΡΠ΅ΠΌ ΠΏΠ°ΠΌΡΡΡ ΠΊΡΡΠΈ ΡΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄Π½Ρ ΡΠ΅ΡΡΡΡ ΡΠ°ΡΡΡ ΠΎΡ ΠΎΠ±ΡΠ΅Π³ΠΎ ΠΎΠ±ΡΡΠΌΠ°. Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΡΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ 44 ΠΠ (ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ 33 ΠΠ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΎΡΡ ΡΡΠ°Π·Ρ ΠΏΠΎΡΠ»Π΅ ΡΠ±ΠΎΡΠΊΠΈ ΠΌΡΡΠΎΡΠ°). ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡΠΈ Π²Π½Π΅ ΠΊΡΡΠΈ ΡΠΎΡΡΠ°Π²ΠΈΠ»ΠΎ Π² ΡΡΠΌΠΌΠ΅ 223 ΠΠ.
ΠΠ±Π»Π°ΡΡΠΈ Π½Π°ΡΠΈΠ²Π½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ
ΠΡΡΡΠ΄Π°:
If UseCompressedOops is turned on and UseCompressedClassesPointers is used, then two logically different areas of native memory are used for class metadataβ¦
A region is allocated for these compressed class pointers (the 32-bit offsets). The size of the region can be set with CompressedClassSpaceSize and is 1 gigabyte (GB) by defaultβ¦
The MaxMetaspaceSize applies to the sum of the committed compressed class space and the space for the other class metadata
ΠΠ»Ρ ΡΠΆΠ°ΡΡΡ
ΡΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΉ Π²ΡΠ΄Π΅Π»ΡΠ΅ΡΡΡ ΠΎΠ±Π»Π°ΡΡΡ ΠΏΠ°ΠΌΡΡΠΈ (32-Π±ΠΈΡΠ½ΡΠ΅ ΡΠΌΠ΅ΡΠ΅Π½ΠΈΡ). Π Π°Π·ΠΌΠ΅Ρ ΡΡΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ CompressedClassSpaceSize ΠΈ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΎΠ½ 1 ΠΠβ¦
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ MaxMetaspaceSize ΠΎΡΠ½ΠΎΡΠΈΡΡΡ ΠΊ ΡΡΠΌΠΌΠ΅ ΠΎΠ±Π»Π°ΡΡΠΈ ΡΠΆΠ°ΡΡΡ
ΡΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΉ ΠΈ ΠΎΠ±Π»Π°ΡΡΠΈ Π΄Π»Ρ Π΄ΡΡΠ³ΠΈΡ
ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΡΡ
ΠΊΠ»Π°ΡΡΠ°.
ΠΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Ρ ΠΊΡΡΠ΅ΠΉ, ΠΏΠ°ΠΌΡΡΡ Π²Π½Π΅ ΠΊΡΡΠΈ ΠΌΠ΅Π½ΡΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΠΏΠΎΠ΄ Π½Π°Π³ΡΡΠ·ΠΊΠΎΠΉ. ΠΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π·Π°Π³ΡΡΠ·ΠΈΡ Π²ΡΠ΅ ΠΊΠ»Π°ΡΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ΄ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΈ JIT ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΏΡΠΎΠ³ΡΠ΅Π΅ΡΡΡ, Π²ΡΡ ΠΏΠ΅ΡΠ΅ΠΉΠ΄Π΅Ρ Π² ΡΡΡΠΎΠΉΡΠΈΠ²ΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅. Π§ΡΠΎΠ±Ρ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΡΠΌΠ΅Π½ΡΡΠ΅Π½ΠΈΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΎΠ±Π»Π°ΡΡΠΈ Compressed class space, Π·Π°Π³ΡΡΠ·ΡΠΈΠΊ ΠΊΠ»Π°ΡΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠΉ Π·Π°Π³ΡΡΠ·ΠΈΠ» ΠΊΠ»Π°ΡΡΡ, Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΡΠ΄Π°Π»Π΅Π½ ΡΠ±ΠΎΡΡΠΈΠΊΠΎΠΌ ΠΌΡΡΠΎΡΠ°. ΠΡΠΎ Π±ΡΠ»ΠΎ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½ΠΎ Π² ΠΏΡΠΎΡΠ»ΠΎΠΌ, ΠΊΠΎΠ³Π΄Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π»ΠΈΡΡ Π² ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°Ρ ΡΠ΅ΡΠ²Π»Π΅ΡΠΎΠ² ΠΈΠ»ΠΈ ΡΠ΅ΡΠ²Π΅ΡΠ°Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ (Π·Π°Π³ΡΡΠ·ΡΠΈΠΊ ΠΊΠ»Π°ΡΡΠΎΠ² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΠ΄Π°Π»ΡΠ»ΡΡ ΡΠ±ΠΎΡΡΠΈΠΊΠΎΠΌ ΠΌΡΡΠΎΡΠ°, ΠΊΠΎΠ³Π΄Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠ΄Π°Π»ΡΠ»ΠΎΡΡ Ρ ΡΠ΅ΡΠ²Π΅ΡΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ), Π½ΠΎ Ρ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌΠΈ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Π°ΠΌΠΈ ΠΊ ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΡΡΠΎ ΡΠ»ΡΡΠ°Π΅ΡΡΡ ΡΠ΅Π΄ΠΊΠΎ.
ΠΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΡΡ ΠΏΠ°ΠΌΡΡΠΈ JVM ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΊΡΡ ΠΊΠΎΠ΄Π° JIT. ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ HotSpot JVM Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄ΠΎ 240 ΠΠ. ΠΡΠ»ΠΈ ΠΊΡΡ ΠΊΠΎΠ΄Π° ΡΠ»ΠΈΡΠΊΠΎΠΌ ΠΌΠ°Π», Π² JIT ΠΌΠΎΠΆΠ΅Ρ Π½Π΅ Ρ Π²Π°ΡΠΈΡΡ ΠΌΠ΅ΡΡΠ° Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΡΠ²ΠΎΠΈΡ Π΄Π°Π½Π½ΡΡ , ΠΈ Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ Π±ΡΠ΄Π΅Ρ ΡΠ½ΠΈΠΆΠ΅Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ. ΠΡΠ»ΠΈ ΠΊΡΡ ΡΠ»ΠΈΡΠΊΠΎΠΌ Π²Π΅Π»ΠΈΠΊ, ΡΠΎ ΠΏΠ°ΠΌΡΡΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠΎΡΡΠ°ΡΠ΅Π½Π° Π²ΠΏΡΡΡΡΡ. ΠΡΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ ΡΠ°Π·ΠΌΠ΅ΡΠ° ΠΊΡΡΠ° Π²Π°ΠΆΠ½ΠΎ ΡΡΠΈΡΡΠ²Π°ΡΡ Π΅Π³ΠΎ Π²Π»ΠΈΡΠ½ΠΈΠ΅ ΠΊΠ°ΠΊ Π½Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡΠΈ, ΡΠ°ΠΊ ΠΈ Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ.
ΠΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Π² ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ΅ Docker ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ Π²Π΅ΡΡΠΈΠΈ Java ΡΠ΅ΠΏΠ΅ΡΡ Π·Π½Π°ΡΡ ΠΎΠ± ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡΡ ΠΏΠ°ΠΌΡΡΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ° ΠΈ ΠΏΡΡΠ°ΡΡΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΡΠ°Π·ΠΌΠ΅Ρ ΠΏΠ°ΠΌΡΡΠΈ JVM. Π ΡΠΎΠΆΠ°Π»Π΅Π½ΠΈΡ, ΡΠ°ΡΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π²ΡΠ΄Π΅Π»Π΅Π½ΠΈΠ΅ Π±ΠΎΠ»ΡΡΠΎΠ³ΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΠΏΠ°ΠΌΡΡΠΈ Π²Π½Π΅ ΠΊΡΡΠΈ ΠΈ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎΠ³ΠΎ Π² ΠΊΡΡΠ΅. ΠΠΎΠΏΡΡΡΠΈΠΌ, Ρ Π²Π°Ρ Π΅ΡΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΡΠ°Π±ΠΎΡΠ°ΡΡΠ΅Π΅ Π² ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ΅ Ρ 2-ΠΌΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°ΠΌΠΈ ΠΈ 512 ΠΠ Π΄ΠΎΡΡΡΠΏΠ½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ. ΠΡ Ρ ΠΎΡΠΈΡΠ΅, ΡΡΠΎΠ±Ρ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π»ΠΎΡΡ Π±ΠΎΠ»ΡΡΠ΅ Π½Π°Π³ΡΡΠ·ΠΊΠΈ ΠΈ ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°Π΅ΡΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠΎΠ² Π΄ΠΎ 4-Ρ ΠΈ ΠΏΠ°ΠΌΡΡΡ Π΄ΠΎ 1 ΠΠ. ΠΠ°ΠΊ ΠΌΡ ΠΎΠ±ΡΡΠΆΠ΄Π°Π»ΠΈ Π²ΡΡΠ΅, ΡΠ°Π·ΠΌΠ΅Ρ ΠΊΡΡΠΈ ΠΎΠ±ΡΡΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ Π½Π°Π³ΡΡΠ·ΠΊΠΈ, Π° ΠΏΠ°ΠΌΡΡΡ Π²Π½Π΅ ΠΊΡΡΠΈ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΌΠ΅Π½ΡΡΠ΅. ΠΠΎΡΡΠΎΠΌΡ ΠΌΡ ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌ, ΡΡΠΎ Π±ΠΎΠ»ΡΡΠ°Ρ ΡΠ°ΡΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ 512 ΠΠ Π±ΡΠ΄Π΅Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½Π° ΠΊΡΡΠ΅, ΡΡΠΎΠ±Ρ ΡΠΏΡΠ°Π²ΠΈΡΡΡΡ Ρ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½Π½ΠΎΠΉ Π½Π°Π³ΡΡΠ·ΠΊΠΎΠΉ. Π ΡΠΎΠΆΠ°Π»Π΅Π½ΠΈΡ, ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ JVM ΡΡΠΎΠ³ΠΎ Π½Π΅ ΡΠ΄Π΅Π»Π°Π΅Ρ ΠΈ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»ΠΈΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΏΠ°ΠΌΡΡΡ Π±ΠΎΠ»Π΅Π΅ ΠΌΠ΅Π½Π΅Π΅ ΡΠ°Π²Π½ΠΎΠΌΠ΅ΡΠ½ΠΎ ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΠ°ΠΌΡΡΡΡ Π² ΠΊΡΡΠ΅ ΠΈ Π²Π½Π΅ ΠΊΡΡΠΈ.
Π ΡΡΠ°ΡΡΡΡ, ΠΊΠΎΠΌΠ°Π½Π΄Π° CloudFoundry ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ ΠΎΠ±ΡΠΈΡΠ½ΡΠΌΠΈ Π·Π½Π°Π½ΠΈΡΠΌΠΈ ΠΎ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ ΠΏΠ°ΠΌΡΡΠΈ Π² JVM. ΠΡΠ»ΠΈ Π²Ρ Π·Π°Π³ΡΡΠΆΠ°Π΅ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π² CloudFoundry, ΡΠΎ ΡΠ±ΠΎΡΡΠΈΠΊ (build pack) Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡ ΡΡΠΈ Π·Π½Π°Π½ΠΈΡ Π΄Π»Ρ Π²Π°Ρ. ΠΡΠ»ΠΈ Π²Ρ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ CloudFoudry ΠΈΠ»ΠΈ Ρ ΠΎΡΠ΅Π»ΠΈ Π±Ρ Π±ΠΎΠ»ΡΡΠ΅ ΠΏΠΎΠ½ΡΡΡ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ Π½Π°ΡΡΡΠΎΠΈΡΡ JVM, ΡΠΎ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ ΠΏΡΠΎΡΠΈΡΠ°ΡΡ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΡΠ΅ΡΡΠ΅ΠΉ Π²Π΅ΡΡΠΈΠΈ Java buildpackβs memory calculator.
Π§ΡΠΎ ΡΡΠΎ Π·Π½Π°ΡΠΈΡ Π΄Π»Ρ Spring
ΠΠΎΠΌΠ°Π½Π΄Π° Spring ΠΏΡΠΎΠ²ΠΎΠ΄ΠΈΡ ΠΌΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, Π΄ΡΠΌΠ°Ρ ΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΏΠ°ΠΌΡΡΠΈ, ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΏΠ°ΠΌΡΡΠΈ ΠΊΠ°ΠΊ Π² ΠΊΡΡΠ΅, ΡΠ°ΠΊ ΠΈ Π²Π½Π΅ ΠΊΡΡΠΈ. ΠΠ΄ΠΈΠ½ ΠΈΠ· ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡΠΈ Π²Π½Π΅ ΠΊΡΡΠΈ β ΡΡΠΎ Π΄Π΅Π»Π°ΡΡ ΡΠ°ΡΡΠΈ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ° ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΡΠΌΠΈ. ΠΡΠΈΠΌΠ΅ΡΠΎΠΌ ΡΡΠΎΠ³ΠΎ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Reflection Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΈ Π²Π½Π΅Π΄ΡΠ΅Π½ΠΈΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ Π² Π±ΠΈΠ½Ρ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Reflection ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΊΠΎΠ΄Π° ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ°, ΠΊΠΎΡΠΎΡΡΠΉ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅, ΠΎΡΡΠ°Π΅ΡΡΡ ΠΏΠΎΡΡΠΎΡΠ½Π½ΡΠΌ, Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° Π±ΠΈΠ½ΠΎΠ² Π² Π²Π°ΡΠ΅ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ. ΠΠ»Ρ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π·Π°ΠΏΡΡΠΊΠ° ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΠΊΡΡ Π² ΠΊΡΡΠ΅, ΠΎΡΠΈΡΠ°Ρ ΡΡΠΎΡ ΠΊΡΡ ΠΏΠΎΡΠ»Π΅ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ Π·Π°ΠΏΡΡΠΊΠ°. ΠΠ°ΠΌΡΡΡ ΠΊΡΡΠΈ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π»Π΅Π³ΠΊΠΎ ΠΎΡΠΈΡΠ΅Π½Π° ΡΠ±ΠΎΡΡΠΈΠΊΠΎΠΌ ΠΌΡΡΠΎΡΠ°, ΡΡΠΎΠ±Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΡΡ Π±ΠΎΠ»ΡΡΠ΅ Π΄ΠΎΡΡΡΠΏΠ½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ Π²Π°ΡΠ΅ΠΌΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
Π’ΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½ΠΎ ΠΆΠ΄ΡΠΌ Π²Π°ΡΠΈ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΏΠΎ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»Ρ.
Π£Π²Π΅Π»ΠΈΡΠ΅Π½ΠΈΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΏΠ°ΠΌΡΡΠΈ Π΄Π»Ρ JAVA Π² JIRA
Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ Π΅ΡΠ΅ ΠΎΠ΄Π½Ρ ΠΏΠΎΠ»Π΅Π·Π½ΡΡ Π½Π°ΡΡΡΠΎΠΉΠΊΡ Π² ΡΠ°Π±ΠΎΡΠ΅ Jira Service Desk.
ΠΠΎ ΠΌΠ΅ΡΠ΅ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΡ ΡΠΈΡΠ»Π° ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ΄Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π² JIRA, ΠΡ Π±ΡΠ΄Π΅ΡΠ΅ Π·Π°ΠΌΠ΅ΡΠ°ΡΡ ΠΈΠ»ΠΈ Π±ΡΠ΄ΡΡ ΠΏΠΎΡΡΡΠΏΠ°ΡΡ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΡ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ ΠΊΠ°ΠΊ-ΡΠΎ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ Π²ΡΠ΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ. ΠΡΠΎ ΡΠ²ΡΠ·Π°Π½Π½ΠΎ Ρ ΡΠ΅ΠΌ, ΡΡΠΎ ΠΏΡΠΎΠ΄ΡΠΊΡ Jira Service Desk Π½Π°ΠΏΠΈΡΠ°Π½ Π½Π° JAVA. ΠΠ°Π³ΡΡΠ·ΠΊΡ JAVA ΠΏΠΎ ΠΏΠ°ΠΌΡΡΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ²ΠΈΠ΄Π΅ΡΡ Π² ΠΠ΄ΠΌΠΈΠ½ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ β Π‘ΠΈΡΡΠ΅ΠΌΠ° β Π‘ΠΈΡΡΠ΅ΠΌΠ½Π°Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ β Π‘ΡΠ°ΡΠΈΡΡΠΈΠΊΠ° ΠΏΠ°ΠΌΡΡΠΈ Java Virtual Machine
ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΈΠ½ΡΡΠ°Π»Π»ΡΡΠΈΠΈ ΠΏΡΠΎΠ΄ΡΠΊΡΠ° Π΄Π»Ρ JAVA Π²ΡΠ΄Π΅Π»Π΅Π½ ΠΆΠ΅ΡΡΠΊΠΎ ΠΎΠ±ΡΠ΅ΠΌ ΠΏΠ°ΠΌΡΡΠΈ Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ ΠΎΡ 384 ΠΠ Π΄ΠΎ 768 ΠΠ.
ΠΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ²ΠΈΠ΄Π΅ΡΡ Π² ΡΠ°ΠΉΠ»Π΅ /opt/atlassian/jira/bin/setenv.sh
Π£ΡΠΈΡΡΠ²Π°Ρ, ΡΡΠΎ Π½Π° ΡΡΠ°ΠΏΠ΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Ρ, ΠΌΡ Π²ΡΠ΄Π΅Π»ΠΈΠ»ΠΈ ΡΠ΅ΡΠ²Π΅ΡΡ 8 ΠΠ± ΠΏΠ°ΠΌΡΡΠΈ, ΡΠΎ ΠΎΡΡΠ΅Π΄Π°ΠΊΡΠΈΡΡΠ΅ΠΌ ΡΠ°ΠΉΠ» ΠΈ Π΄Π°Π΄ΠΈΠΌ JAVA ΠΌΠ°ΠΊΡΠΈΠΌΡΠΌ 7 ΠΠ±. ΠΡΠΊΡΡΠ²Π°Π΅ΠΌ ΡΠ°ΠΉΠ» ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ
ΠΈ ΠΏΠ΅ΡΠ΅ΠΉΠ΄Ρ Π² ΡΠ΅ΠΆΠΈΠΌ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π½Π°ΠΆΠ°ΡΠΈΠ΅ΠΌ Π½Π° ΠΊΠ»Π°Π²ΠΈΡΡ A ΠΈΠ·ΠΌΠ΅Π½ΠΈΠΌ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ JVM_MINIMUM_MEMORY Π½Π° 1024m, Π° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ JVM_MAXIMUM_MEMORY Π½Π° 7168m.
ΠΠΎΡΠ»Π΅ ΡΠ΅Π³ΠΎ Π½Π°ΠΆΠ°Π² Π½Π° ΠΊΠ»Π°Π²ΠΈΡΡ ESC, Π²ΡΡ
ΠΎΠ΄ΠΈΠΌ ΠΈΠ· ΡΠ΅ΠΆΠΈΠΌΠ° ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ Π²ΡΡ
ΠΎΠ΄ΠΈΠΌ ΠΈΡ
ΡΠ°ΠΉΠ»Π° ΡΠΎΡ
ΡΠ°Π½ΠΈΠ² ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ :wq!
ΠΠ»Ρ Π²ΡΡΡΠΏΠ»Π΅Π½ΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² ΡΠΈΠ»Ρ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΡΡΡΠΈΡΡ ΡΠ»ΡΠΆΠ±Ρ jira ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ
Π΄ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΡΡ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΈ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΠΌ ΡΠ»ΡΠΆΠ±Ρ
ΠΠΈΠ½ΡΡ ΡΠ΅ΡΠ΅Π· 3-5 ΠΌΠΈΠ½ΡΡ Π·Π°Ρ ΠΎΠ΄ΠΈΠΌ Π² ΠΠ΄ΠΌΠΈΠ½ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ β Π‘ΠΈΡΡΠ΅ΠΌΠ° β Π‘ΠΈΡΡΠ΅ΠΌΠ½Π°Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ β Π‘ΡΠ°ΡΠΈΡΡΠΈΠΊΠ° ΠΏΠ°ΠΌΡΡΠΈ Java Virtual Machine ΠΈ Π²ΠΎΡ ΡΡΠΎ ΠΌΡ ΡΠ²ΠΈΠ΄ΠΈΠΌ. ΠΠΎΠΆΠ½ΠΎ Π·Π°ΠΎΠ΄Π½ΠΎ Π·Π°ΠΏΡΡΡΠΈΡΡ ΠΎΡΠΈΡΡΠΊΡ ΠΏΠ°ΠΌΡΡΠΈ ΠΎΡ βΠΌΡΡΠΎΡΠ°β Π½Π°ΠΆΠ°Π² Π½Π° ΠΠ°ΠΏΡΡΡΠΈΡΡ garbage collection.
Π‘ΡΠ°Π·Ρ ΠΏΠΎΡΡΠ²ΡΡΠ²ΡΠΉΡΠ΅ ΠΊΠ°ΠΊ JIRA ΡΡΠ°Π»Π° ΡΡΡΡΡΠ΅Π΅ ΡΠ°Π±ΠΎΡΠ°ΡΡ.




