рдЬрд╛рд╡рд╛ 8: рдкреЗрд░реНрдордЧреЗрди рд╕реЗ рдореЗрдЯрд╛рд╕реНрдкреЗрд╕ рддрдХ

(рдкрд┐рдпрд░реЗ-рд╣реНрдпреВрдЬреЗрд╕ рдЪрд╛рд░рдмреЛрди рдХреЗ рд▓реЗрдЦ рдХрд╛ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдЕрдиреБрд╡рд╛рдж)

рдЬреИрд╕рд╛ рдХрд┐ рдкрд╣рд▓реЗ рдЬрд╛рд╡рд╛ рд╡рди рдкрд░ рд░рд┐рдкреЛрд░реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рд╣реЙрдЯрд╕реНрдкреЙрдЯ рдХреЗ рдЬрд╛рд╡рд╛ 8 рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдЗрд╕рдХреА рдирдИ рднрд┐рдиреНрдирддрд╛ рдХреЗ рдкрдХреНрд╖ рдореЗрдВ рдкрд░реНрдордЧреЗрди рд╕реНрдерд╛рди рдХреЛ рдЫреЛрдбрд╝рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛рдИ рдЧрдИ рд╣реИ - рдореЗрдЯрд╕реНрдкреИрд╕ред JDK 8 рдХреА рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдкрд╣реБрдВрдЪ рдореЗрдЯрд╛рд╕реНрдкреИрд╕ рдХреЛ рдПрдХреНрд╢рди рдореЗрдВ рджреЗрдЦрдирд╛ рд╕рдВрднрд╡ рдмрдирд╛рддреА рд╣реИ, рдЬреЛ рдХрд┐ рдореВрд▓ рд▓реЗрдЦ рдХреЗ рд▓реЗрдЦрдХ рдиреЗ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рд╣реИ рдХрд┐ рдкреЗрдорд╛рдЧреЗрди рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдореЗрдЯрд╛рд╕реНрдкреЗрд╕ рдХреНрдпрд╛ рд▓рд╛рдн рджреЗрддрд╛ рд╣реИ, рдФрд░ рд╕реАрдзреЗ рд╕рдм рдХреБрдЫ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЖрд╢реНрд╡рд╕реНрдд рд╣реЛ рдЬрд╛рдПрдЧрд╛ред

рдХрдЯ рдХреЗ рддрд╣рдд рд╡рд┐рд╡рд░рдгред


Metaspace рдХреНрдпрд╛ рд╣реИ?

рд╣реЙрдЯрд╕реНрдкреЙрдЯ рдХреЗ рднрд╛рдЧ рдХреЗ рд░реВрдк рдореЗрдВ JRockit рдХреЗ рд╕рд╛рде рд╡рд┐рд▓рдп, рд╡рд░реНрдЧреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдХреЛ JRockit рдФрд░ IBM JVM рдХреЗ рд╕рдорд╛рди рджреЗрд╢реА рдореЗрдореЛрд░реА рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдЗрд╕ рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдХреЗ рд▓рд┐рдП рдЖрдмрдВрдЯрд┐рдд рдореВрд▓ рдореЗрдореЛрд░реА рдХреЗ рднрд╛рдЧ рдХреЛ рдореЗрдЯрд╕реНрдкреИрд╕ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред

рддреЛ, рдореЗрдЯрд╕реНрдкреИрд╕ рдкреЗрд░реНрдореЗрди рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рд╣реИ , рдЬрд╛рд╡рд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░реНрд╕ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рдореБрдЦреНрдп рдЕрдВрддрд░ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рд╣реИ, рдХреЗрд╡рд▓ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдореВрд▓ рдореЗрдореЛрд░реА рдХреЗ рдЖрдХрд╛рд░ рддрдХ рд╕реАрдорд┐рдд рд╣реИред PermSize рдФрд░ MaxPermSize рдкреИрд░рд╛рдореАрдЯрд░ рдЕрдм рд░рджреНрдж рдХрд░ рджрд┐рдП рдЧрдП рд╣реИрдВ (рдЗрди рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рдкреНрд░рд╛рдкреНрдд рд╣реЛрдиреЗ рдкрд░ JVM рдПрдХ рдЪреЗрддрд╛рд╡рдиреА рджреЗрдЧрд╛ рдХрд┐ рд╡реЗ рдЕрдм рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ), рдФрд░ рдЙрдирдХреЗ рдмрдЬрд╛рдп рд╡реИрдХрд▓реНрдкрд┐рдХ MaxMetaspaceSize рдкреИрд░рд╛рдореАрдЯрд░ рджрд░реНрдЬ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ , рдЬрд┐рд╕рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЖрдк Metaspace рдХреЗ рдЖрдХрд╛рд░ рдкрд░ рдПрдХ рд╕реАрдорд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдирддреАрдЬрддрди, рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдЕрдзрд┐рдХрддрдо рдореЗрдЯрд╛рд╕реНрдкреИрд╕ рджреЗрд╢реА рдореЗрдореЛрд░реА рдХреА рдорд╛рддреНрд░рд╛ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдХреБрдЫ рднреА рд╕реАрдорд┐рдд рдирд╣реАрдВ рд╣реИ ред рд▓реЗрдХрд┐рди рдЖрдк рдЗрд╕реЗ рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдк рд╕реЗ MaxMetaspaceSize рдкреИрд░рд╛рдореАрдЯрд░ рддрдХ рд╕реАрдорд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ MaxPermSize рдХреЗ рд╕рдорд╛рди рд╣реИред

рдпрд╣ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдореЗрдЯрд╛рдмреЗрд╕ рдХреЗ рдЧрддрд┐рд╢реАрд▓ рд▓рдЪреАрд▓реЗрдкрди рдХреЗ рдЕрдзрд┐рдХ рд▓рдЪреАрд▓реЗрдкрди рдХреЗ рдХрд╛рд░рдг рддреНрд░реБрдЯрд┐ "java.lang.OutOfMemoryError: PermGen space" рд╕реЗ рдмрдЪрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдпрджрд┐ рдореЗрдЯрд╕реНрдкреИрд╕ рдХрд╛ рдЖрдХрд╛рд░ рдЕрдкрдиреА рд╕реАрдорд╛ рддрдХ рдкрд╣реБрдБрдЪрддрд╛ рд╣реИ - рдЪрд╛рд╣реЗ рд╡рд╣ рдЕрдзрд┐рдХрддрдо рдорд╛рддреНрд░рд╛ рдореЗрдВ рджреЗрд╢реА рдореЗрдореЛрд░реА рд╣реЛ рдпрд╛ рдореИрдХреНрд╕рдореЗрдЯреНрд╕рд╕реНрдкреЗрд╕ рдореЗрдВ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд╕реАрдорд╛ - рдПрдХ рд╕рдорд╛рди рдЕрдкрд╡рд╛рдж рдлреЗрдВрдХ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛: "java.lang.OutOfemoryError: рдореЗрдЯрд╛рдбрд╛рдЯрд╛ рд╕реНрдкреЗрд╕"ред

рдХрдЪрд░рд╛ рд╕рдВрдЧреНрд░рд╣

рдХрдЪрд░рд╛ рд╕рдВрдЧреНрд░рд╣рдХрд░реНрддрд╛ рд▓реЙрдЧ рдореЗрдЯрд╛рд╕реИрдк рдореЗрдВ рдХрдЪрд░рд╛ рд╕рдВрдЧреНрд░рд╣ рдХреА рд░рд┐рдкреЛрд░реНрдЯ рднреА рдХрд░реЗрдВрдЧреЗред

рдХрдЪрд░рд╛ рд╕рдВрдЧреНрд░рд╣ рд╕реНрд╡рдпрдВ, рд▓реЗрдЦ рдХреЗ рд▓реЗрдЦрдХ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рддрдм рд╣реЛрдЧрд╛ рдЬрдм рдореЗрдЯрд╛рд╕реНрдкреИрд╕ рдореИрдХреНрд╕рдореЗрдЯреНрд╕рд╕реНрдкреЗрд╕ рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЖрдХрд╛рд░ рддрдХ рдкрд╣реБрдВрдЪрддрд╛ рд╣реИ ред рд▓реЗрдХрд┐рди рдЙрдирдХреЗ рдкреНрд░рдпреЛрдЧреЛрдВ (рдиреАрдЪреЗ рджреЗрдЦреЗрдВ) рд╕реЗ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рдЬрдм рдореИрдХреНрд╕рдореЗрдЯреЗрд╕реИрд╕реЗрдЬрд╝ рдХреЛ рд╕реЗрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдкреНрд░рддреНрдпреЗрдХ рдЧрддрд┐рд╢реАрд▓ рд╡реГрджреНрдзрд┐ рд╕реЗ рдкрд╣рд▓реЗ рдореЗрдЯрд╛рд╕реИрдк рдореЗрдВ рдХрдЪрд░рд╛ рд╕рдВрдЧреНрд░рд╣ рднреА рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ ред

рдкреНрд░рдпреЛрдЧреЛрдВ

рдкрд░реНрдордЧреЗрди рд╕реНрдкреЗрд╕ / рдореЗрдЯрд╕реНрдкреЗрд╕ (рдЬреЗрд╡реАрдПрдо 64-рдмрд┐рдЯ рд╡реЗрдЯ рдкрд░ рд╕рднреА) рднрд░рдиреЗ рдкрд░ рд▓реЗрдЦ рдХреЗ рд▓реЗрдЦрдХ рдиреЗ рддреАрди рдкреНрд░рдпреЛрдЧ рдХрд┐рдП:


рдирддреАрдЬрддрди, рд▓реЗрдЦрдХ рдиреЗ рдкрд╛рдпрд╛ рдХрд┐:


рдореВрд▓ рд▓реЗрдЦ рдореЗрдВ, рд▓реЗрдЦрдХ рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдореЗрдореЛрд░реА рдЙрдкрдпреЛрдЧ рдЧреНрд░рд╛рдл рдФрд░ рдЧрд╛рд░рдмреЗрдЬ рдХрд▓реЗрдХреНрдЯрд░ рд▓реЙрдЧ рдХрд╛ рднреА рд╣рд╡рд╛рд▓рд╛ рджреЗрддрд╛ рд╣реИ - рдЬреЛ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВред рдЕрдиреБрд╡рд╛рдж рдХреЗ рдмрд┐рдирд╛ рдЪрд╛рд░реНрдЯ рдФрд░ рд▓реЙрдЧ рдХреЛ рд╕рдордЭрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдореИрдВ рдЕрдкрдиреЗ рдЖрдк рд╕реЗ рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рдирд╡рд╛рдЪрд╛рд░ рдЧреНрд░рд╛рд╣рдХ рдорд╢реАрдиреЛрдВ рдкрд░ рдЬрд╛рд╡рд╛ рдХреЛрдб рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЪреАрдВрдЯреА / рдорд╛рд╡реЗрди рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ рдкрд╣рд▓реЗ рдХрднреА-рдХрднреА рдмрд┐рд▓реНрдб рдХреЛ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореИрдХреНрд╕рдкрд░рдорд╛рдЗрдЬ рдХреЛ рдЙрдард╛рдирд╛ рдкрдбрд╝рддрд╛ рдерд╛ред рдФрд░ рдпрд╣ рдЙрди (рдпрджреНрдпрдкрд┐ рджреБрд░реНрд▓рдн) рдорд╛рдорд▓реЛрдВ рдореЗрдВ рднреА рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛ рдЬрд╣рд╛рдВ рдбреЗрд╕реНрдХрдЯреЙрдк рдЬрд╛рд╡рд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдкрд░реНрдордЧреЗрди рдкреНрд░рддрд┐рдмрдВрдз рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдХрднреА рднреА рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╕рдордЭ рдореЗрдВ рдирд╣реАрдВ рдЖрдпрд╛ред

Source: https://habr.com/ru/post/In169869/


All Articles