
рдЫрд╣ рдорд╣реАрдиреЗ рдмреАрдд рдЪреБрдХреЗ рд╣реИрдВ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдирдпрд╛ рдЬрд╛рд╡рд╛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рд╣реИ ! рдпрд╣ рдПрдХ рд▓рдВрдмреА рдпрд╛рддреНрд░рд╛ рдереА, рдФрд░ рдХреБрдЫ рдЕрдВрдд рддрдХ рдкрд╣реБрдВрдЪреЗред рджрд┐рд▓рдЪрд╕реНрдк JEP рд╕реЗ рдХрдЪреНрдЪреА рд░реЗрдЦрд╛рдПрдВ рдЧрд┐рд░ рдЧрдИрдВ, рд▓реЗрдХрд┐рди рд╣рдо рдХрдЯ рдХреЗ рддрд╣рдд рдмрд╛рдХреА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реЗрдВрдЧреЗред
рд╕рдм рдХреБрдЫ рдХреИрд╕рд╛ рдЪрд▓ рд░рд╣рд╛ рд╣реИ
рдЬрд╛рд╡рд╛ рдХреЗ рдирдП рд╕рдВрд╕реНрдХрд░рдг рдХреА рд░рд┐рд╣рд╛рдИ рдирдП "рддреНрд╡рд░рд┐рдд" рд░рд┐рд▓реАрдЬ рдЪрдХреНрд░ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд▓рдЧрднрдЧ рдЫрд╣ рдорд╣реАрдиреЗ рдХреА рдЕрд╡рдзрд┐ рдХреЗ рд╕рд╛рде рд╣реЛрддреА рд╣реИред рд╕рдЯреАрдХ рддрд┐рдерд┐рдпрд╛рдВ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкреГрд╖реНрда рдкрд░ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХреА рдЧрдИ рд╣реИрдВред JDK 12 рдХреЗ рд▓рд┐рдП рдХрдИ рдореБрдЦреНрдп рдЪрд░рдг рдереЗ:
- 2018/12/13 - рдордВрджреА рдХрд╛ рдкрд╣рд▓рд╛ рдЪрд░рдг (рдЗрд╕ рдкрд▓ рдореЗрдВ, рдХрд╛рдВрдЯрд╛ рднрдВрдбрд╛рд░ рдореЗрдВ рдореБрдЦреНрдп рд╢рд╛рдЦрд╛ рд╕реЗ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ);
- 2019/01/17 - рдордВрджреА рдХрд╛ рджреВрд╕рд░рд╛ рдЪрд░рдг (рдкреВрд░рд╛ рд╕рдм рдХреБрдЫ рдЬреЛ рд╕рдВрднрд╡ рд╣реИ);
- 2019/02/07 - рд░рд┐рд▓реАрдЬ рдЙрдореНрдореАрджрд╡рд╛рд░ (рдХреЗрд╡рд▓ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдХреАрдбрд╝реЗ рддрдп рд╣реЛ рдЧрдП рд╣реИрдВ);
- 2019/03/19 - рд░рд┐рд▓реАрдЬрд╝, рд╕рд╛рдорд╛рдиреНрдп рдЙрдкрд▓рдмреНрдзрддрд╛ред <- рдЖрдк рдпрд╣рд╛рдБ рд╣реИрдВ
рдЗрд╕ рдЕрдиреБрд╕реВрдЪреА рд╕реЗ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХреНрдпрд╛ рд╣реИ? рд╣рд╛рдВ, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдХреБрдЫ рднреА рдирд╣реАрдВ - рд╣рдо рд╕рд┐рд░реНрдл рдлрд┐рдирд┐рд╢ рд▓рд╛рдЗрди рдкрд░ рдЖрдП рд╣реИрдВ, рдФрд░ рд╣рдо рдмреНрд░рд╛рдВрдб рдХреЗ рдирдП рддрд╛рдЬрд╛ рдЬреЗрдбреАрдХреЗ 12 рдХреА рдКрдВрдЪрд╛рдИ рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдХреЗ рдкреНрд░реЗрдорд┐рдпреЛрдВ рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВред
рдХреАрдбрд╝реЗ! рдЖрддрдВрдХ! рд╕рдм рд╕реЗ рдиреАрдЪреЗ!

рдЬрдм рдПрдХ рдирдпрд╛ рдЧреИрд░-рдПрд▓рдЯреАрдПрд╕ рд╕рдВрд╕реНрдХрд░рдг рд╕рд╛рдордиреЗ рдЖрддрд╛ рд╣реИ, рддреЛ рдЖрдорддреМрд░ рдкрд░ рд╣рд░ рдХреЛрдИ рдирдИ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рдмрддрд╛рддрд╛ред рдпрд╣ рдФрд░ рдЕрдзрд┐рдХ рджрд┐рд▓рдЪрд╕реНрдк рд╣реИ рдЕрдЧрд░ рд╕рдм рдХреБрдЫ рдирд░рдХ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдЧрд┐рд░ рдЬрд╛рдПрдЧрд╛ред
рдмреЗрд╢рдХ, рдХреАрдбрд╝реЗ рд╣реИрдВ, рдмрд╣реБрдд рдХреБрдЫ рд╣реИ, рд▓реЗрдХрд┐рди рдЬреЗрдбреАрдХреЗ 12 рдореЗрдВ рдирд╣реАрдВ рд╣реИ :) рдЬрд┐рд░ рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП, рд╕рдм рдХреБрдЫ рд╕рд╛рдорд╛рдиреНрдп рд╣реИ:

рдореИрдВ рдЕрдиреБрд░реЛрдз рдХреЛ рдЙрджреНрдзреГрдд рдХрд░реВрдВрдЧрд╛ рддрд╛рдХрд┐ рдЖрдк рд╕рдордЭ рд╕рдХреЗрдВ рдХрд┐ "рдЖрджрд░реНрд╢" рдХреНрдпрд╛ рд╣реИ:
project = JDK AND issuetype = Bug AND status in (Open, "In Progress", New) AND priority in (P1) AND (fixVersion in (12) OR fixVersion is EMPTY AND affectedVersion in (12) AND affectedVersion not in regexVersion("11.*", "10.*", "9.*", "8.*", "7.*", "6.*")) AND (labels is EMPTY OR labels not in (jdk12-defer-request, noreg-demo, noreg-doc, noreg-self)) AND (component not in (docs, globalization, infrastructure) OR component = infrastructure AND subcomponent = build) AND reporter != "Shadow Bug" ORDER BY priority, component, subcomponent, assignee
рдмреЗрд╢рдХ, рд╕рд╛рдорд╛рдиреНрдп рдХреАрдбрд╝реЗ рдореЗрдВ рдПрдХ рдЬрдЧрд╣ рд╣реИ, рд╡реЗ рдЗрддрдиреА рдмрдбрд╝реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдХрд╣реАрдВ рднреА рдирд╣реАрдВ рдЬрд╛рдПрдВрдЧреЗред рдХреЗрд╡рд▓ рдпрд╣ рджрд╛рд╡рд╛ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рдЕрднреА P1 рдмрдЧ рдкрд░ рдзреНрдпрд╛рди рдирд╣реАрдВ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдХреАрдбрд╝реЗ рдХреЗ рд╕рд╛рде рдЕрдзрд┐рдХ рдФрдкрдЪрд╛рд░рд┐рдХ рд╕рдВрдЪрд╛рд░ рдПрдХ рд╡рд┐рд╢реЗрд╖ рджрд╕реНрддрд╛рд╡реЗрдЬ, рдЬреЗрдИрдкреА 3: рдЬреЗрдбреАрдХреЗ рд░рд┐рд▓реАрдЬ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдШреЛрд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬреЛ рдХрд┐ рдЬрд╛рд╡рд╛ рдорд╣рд╛рд╕рд╛рдЧрд░ - рдорд╛рд░реНрдХ рд░реЗрдирд╣реЛрд▓реНрдб рдХреА рдЕрд╢рд╛рдВрдд рд▓рд╣рд░реЛрдВ рдкрд░ рд╣рдорд╛рд░реЗ рдЕрдорд░ рднрдВрдбрд╛рд░ рдХреЗ рд╕реНрд╡рд╛рдорд┐рддреНрд╡ рдореЗрдВ рд╣реИред
рдФрд░ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдпрд╣ рдПрдХ рдЕрдиреБрдЪреНрдЫреЗрдж рдмрддрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЦреБрджрд╛рдИ рдХрд░рдиреЗ рд▓рд╛рдпрдХ рд╣реИ рдХрд┐рд╕реЗ рджреЛрд╖ рджреЗрдирд╛ рд╣реИ рдФрд░ рдХреНрдпрд╛ рдХрд░рдирд╛ рд╣реИ рдЕрдЧрд░ рдЖрдкрдиреЗ 12 рд╡реАрдВ рд░рд┐рд▓реАрдЬрд╝ рдХреЗ рд▓рд┐рдП рд╕рдордп рдирд╣реАрдВ рд╣реИ рддреЛ рдЯрд┐рдХрдЯ рдХреИрд╕реЗ рд╣рд╕реНрддрд╛рдВрддрд░рд┐рдд рдХрд░реЗрдВред рдмрдЧрдЯреНрд░реИрдХрд░ рдореЗрдВ рд▓реЗрдмрд▓ jdk$N-defer-request
рдбрд╛рд▓рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдЬрд┐рд╕рдореЗрдВ N рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдХрд┐рд╕ рд░рд┐рд▓реАрдЬрд╝ рд╕реЗ рдЯреНрд░рд╛рдВрд╕рдлрд░ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдФрд░ рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЫреЛрдбрд╝ рджреЗрдВ, рдЬрд┐рд╕рдХреА рдкрд╣рд▓реА рдкрдВрдХреНрддрд┐ Deferral Request рд╣реИ ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдРрд╕реЗ рд╕рднреА рдЕрдиреБрд░реЛрдзреЛрдВ рдХреА рд╕рдореАрдХреНрд╖рд╛ рд╕рдВрдмрдВрдзрд┐рдд рдХреНрд╖реЗрддреНрд░реЛрдВ рдФрд░ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рдкреНрд░рдореБрдЦреЛрдВ рджреНрд╡рд╛рд░рд╛ рдХреА рдЬрд╛рддреА рд╣реИред
рдЯреАрд╕реАрдХреЗ рдкрд╛рд╕ рдХрд░рдиреЗ рдХреА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдЕрдирджреЗрдЦрд╛ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ - рдпрд╣ рдЧрд╛рд░рдВрдЯреА рд╣реИ рдХрд┐ рдЬрд╛рд╡рд╛ рдЬрд╛рд╡рд╛ рдмрдирд╛ рд╣реБрдЖ рд╣реИ, рди рдХрд┐ рдХреБрдЫ рдореЗрдВрдврдХ рдЬреИрд╕рд╛ред jdk$N-defer-request label
рдХрднреА рдЧрд╛рдпрдм рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рдпрд╣ рджрд┐рд▓рдЪрд╕реНрдк рд╣реИ рдХрд┐ рд╡реЗ рдРрд╕реЗ рд▓реЛрдЧреЛрдВ рдХреЗ рд╕рд╛рде рдХреНрдпрд╛ рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рдЯреИрдЧ рд╣рдЯрд╛рдиреЗ рдХреЗ рдирд┐рдпрдо рдХрд╛ рдЙрд▓реНрд▓рдВрдШрди рдХрд░рддреЗ рд╣реИрдВ - рдореИрдВ рдЧрд┐рдиреА рд╕реВрдЕрд░реЛрдВ рдХреЛ рдЦрд┐рд▓рд╛рдиреЗ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджреЗрддрд╛ рд╣реВрдВред
рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЗрд╕ рддрд░рд╣ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ JDK 13. рдореЗрдВ рдХрд┐рддрдиреЗ рдмрдЧреНрд╕ рдкреЛрд░реНрдЯ рдХрд┐рдП рдЧрдП рд╣реИрдВред рдЖрдЗрдП рдЗрд╕ рдХреНрд╡реЗрд░реА рдХреЛ рдЖрдЬрд╝рдорд╛рдПрдБ:
project = JDK AND issuetype = Bug AND status in (Open, "In Progress", New) AND (labels in (jdk12-defer-request) AND labels not in (noreg-demo, noreg-doc, noreg-self)) AND (component not in (docs, globalization, infrastructure) OR component = infrastructure AND subcomponent = build) AND reporter != "Shadow Bug" ORDER BY priority, component, subcomponent, assignee
рдХреЗрд╡рд▓ 1 рдЯреБрдХрдбрд╝рд╛, JDK-8216039 : "BC рдФрд░ RSASSA-PSS рдХреЗ рд╕рд╛рде TLS ECDHServerKeyExchange рдХреЛ рддреЛрдбрд╝рддрд╛ рд╣реИ"ред рдпрд╣ рдореЛрдЯреА рдирд╣реАрдВ рд╣реИред рдпрджрд┐ рдпрд╣ рддрд░реНрдХ рдЕрднреА рднреА рдорджрдж рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рддреЛ, рдЖрдкрдХреЗ рд╡рдХреАрд▓ рдХреЗ рд░реВрдк рдореЗрдВ, рдореИрдВ рдПрдХ рд╢рд╛рдордХ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВред
рдФрд░ рдиреАрдЪреЗ рдХреА рд░реЗрдЦрд╛ рдХреНрдпрд╛ рд╣реИ?

рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рдЕрдзрд┐рдХрд╛рдВрд╢ рд╕реБрд╡рд┐рдзрд╛рдПрдБ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ (рдЬрд╛рд╡рд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░) рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рдХрд░рддреА рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╕реНрд╡рдпрдВ OpenJDK рдХреЗ рдбреЗрд╡рд▓рдкрд░реНрд╕ред рдЗрд╕рд▓рд┐рдП, рдХреЗрд╡рд▓ рдорд╛рдорд▓реЗ рдореЗрдВ, рдореИрдВ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЛ рдмрд╛рд╣рд░реА рдФрд░ рдЖрдВрддрд░рд┐рдХ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рддрд╛ рд╣реВрдВред рдЖрдк рдЖрдВрддрд░рд┐рдХ рд▓реЛрдЧреЛрдВ рдХреЛ рдЫреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореИрдВ рдирд╛рд░рд╛рдЬ рд╣реВрдВ, рдореИрдВрдиреЗ рдЗрддрдирд╛ рдкрд╛рда рд▓рд┐рдЦрд╛ рд╣реИред
189: рд╢рдиреИрдиреНрдбреЛрдГ рдПрдХ рд▓реЛ-рдкреЙрдЬрд╝-рдЯрд╛рдЗрдо рдЧрд╛рд░рдмреЗрдЬ рдХрд▓реЗрдХреНрдЯрд░ (рдкреНрд░рд╛рдпреЛрдЧрд┐рдХ)
рдмрд╛рд╣рд░реА рд╡рд┐рд╢реЗрд╖рддрд╛ ред рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, рдЬрдм рдЬрд╛рд╡рд╛ рдзреАрдорд╛ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд▓реЛрдЧ рдЗрд╕реЗ рдкрд╕рдВрдж рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рдЦрд╛рд╕рдХрд░ рдЕрдЧрд░ рдПрд╕рдПрд▓рдП рдХреЛ 10-500 рдорд┐рд▓реАрд╕реЗрдХрдВрдб рдХреЗ рдЖрджреЗрд╢ рдХреА рдЬрд╡рд╛рдмрджреЗрд╣реА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдЕрдм рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдореБрдлреНрдд рд▓реЛ-рдкрдВрдЪ рдЬреАрд╕реА рд╣реИ рдЬреЛ рдЗрд╕ рд░реЗрдВрдЬ рдХреЗ рдмрд╛рдПрдВ рдХрд┐рдирд╛рд░реЗ рдХреЗ рдХрд░реАрдм рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реИред рд╡реНрдпрд╛рдкрд╛рд░ рдмрдВрдж рдпрд╣ рд╣реИ рдХрд┐ рд╣рдо рд╡рд┐рд▓рдВрдмрддрд╛ рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реАрдкреАрдпреВ рдФрд░ рд░реИрдо рдХрд╛ рдЖрджрд╛рди-рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВред рд╣рд┐рдк рдЯреИрдЧрд┐рдВрдЧ рдФрд░ рд╕рдВрдШрдирди рдЪрд░рдг рд▓рд╛рдЗрд╡ рдПрдкреНрд▓реАрдХреЗрд╢рди рдереНрд░реЗрдбреНрд╕ рдХреЗ рд╕рдорд╛рдирд╛рдВрддрд░ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред рд╢реЗрд╖ рдЫреЛрдЯреЗ рд╡рд┐рд░рд╛рдо рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рд╣реИрдВ рдХрд┐ рдЖрдкрдХреЛ рдЕрднреА рднреА рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдЧреНрд░рд╛рдл рдХреА рдЬрдбрд╝реЛрдВ рдХреЛ рдЦреЛрдЬрдиреЗ рдФрд░ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдпрджрд┐ рдЙрдкрд░реЛрдХреНрдд рдореЗрдВ рд╕реЗ рдХреЛрдИ рднреА рдЖрдкрдХреЗ рд▓рд┐рдП рдХреЛрдИ рдорддрд▓рдм рдирд╣реАрдВ рд░рдЦрддрд╛ рд╣реИ - рддреЛ рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛, рд╢реЗрдирд╛рдирдбреЛ рдХреЗрд╡рд▓ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ , рдЪрд╛рд╣реЗ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рд╕рдордЭрдиреЗ рдпрд╛ рди рд╕рдордЭрдиреЗ рдХреЗ рдмрд╛рд╡рдЬреВрджред
рдЕрд▓реЗрдХреНрд╕рдИ рд╢рд┐рдкрд┐рд▓реЗрд╡, рдХреНрд░рд┐рд╕реНрдЯреАрдирд╛ рдлреНрд▓рдб рдФрд░ рд░реЛрдорди рдХреЗрдиреЗрдХреЗ рдЗрд╕ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВ - рдЖрдкрдХреЛ рдЗрди рд▓реЛрдЧреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рди рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рдХрдбрд╝реА рдореЗрд╣рдирдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдЖрдо рддреМрд░ рдкрд░ рд╕рдордЭрддреЗ рд╣реИрдВ рдХрд┐ рдЬреАрд╕реА рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХрд▓реНрдкрдирд╛ рди рдХрд░реЗрдВ рдХрд┐ рдПрдХ рдбреЗрд╡рд▓рдкрд░ рдХреНрдпрд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рддреЛ рдореИрдВ рд▓реЗрд╢рд┐рдирд╛ рд▓реЗрдЦ " рд╣реЛрдордЬреЗрдб рдЧрд╛рд░рдмреЗрдЬ рдХрд▓реЗрдХреНрдЯрд░ рдлреЙрд░ рдУрдкрдирдЬреЗрдбрдХреЗ" рдпрд╛ рдЬреЗрд╡реАрдПрдо рдПрдирд╛рдЯреЙрдореА рдХреНрд╡рд╛рд░реНрдХреНрд╕ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЗ рдЕрджреНрднреБрдд рдЕрдиреБрд╡рд╛рдж рдХреЛ рджреЗрдЦрдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВред рдпрд╣ рдмрд╣реБрдд рджрд┐рд▓рдЪрд╕реНрдк рд╣реИ ред
рдЕрддреНрдпрдВрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред рдУрд░реЗрдХрд▓ рдиреЗ рдЕрдкрдиреЗ рдХрд┐рд╕реА рднреА рд░рд┐рд▓реАрдЬрд╝ рдмрд┐рд▓реНрдб рдХреЗ рд╕рд╛рде рд╢рд┐рдпрд╛рджреЛрдЖ рдХреЛ рдЬрд╣рд╛рдЬ рди рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ - рди рддреЛ jdk.java.net рдкрд░ рдФрд░ рди рд╣реА oracle.com рдкрд░ред рдпрд╣ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ рд╢реЗрдирдбреЛрдирд╣ рдЬреЗрдбреАрдХреЗ 12 рдХреА рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИ, рдпрд╣ рдЕрдЬрд╝реБрд▓ рд╕реЗ рдХреБрдЫ рдЕрдиреНрдп рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдЕрд╕реЗрдВрдмрд▓реА рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд╛рдпрдХ рд╣реИред
230: рдорд╛рдЗрдХреНрд░реЛрдмреЗрдирдорд╛рд░реНрдХ рд╕реВрдЯ
рднреАрддрд░реА рд╡рд┐рд╢реЗрд╖рддрд╛ ред рдпрджрд┐ рдЖрдкрдиреЗ рдХрднреА рдорд╛рдЗрдХреНрд░реЛрдмреЗрдирдорд╛рд░реНрдХ рд▓рд┐рдЦрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рд╣реИ, рддреЛ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдЬреЗрдПрдордПрдЪ рдкрд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЬреЗрдПрдордПрдЪ рдЬрд╛рд╡рд╛ рдФрд░ рдЕрдиреНрдп рдЬреЗрд╡реАрдПрдо рднрд╛рд╖рд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдорд╛рдЗрдХреНрд░реЛрдмреИрдирдЪрдХреНрд░ рдмрдирд╛рдиреЗ, рдХреЛрдбрд╛рдВрддрд░рдг, рд▓реЙрдиреНрдЪ рдХрд░рдиреЗ рдФрд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд░реВрдкрд░реЗрдЦрд╛ рд╣реИ, рдЖрдк рд╕реНрд╡рдпрдВ рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдХрд┐рд╕рдиреЗ рдЗрд╕реЗ рд▓рд┐рдЦрд╛ рдерд╛ (рд╕рднреА рдореИрдЪ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╣реИрдВ)ред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рд╕рдм рдХреБрдЫ рдирд╣реАрдВ рд╣реИ рдЬреЛ "рд╕рд╛рдорд╛рдиреНрдп" рджреБрдирд┐рдпрд╛ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ JDK рдХреЗ рдЕрдВрджрд░ рдЖрд╡реЗрджрди рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдХрднреА рднреА рд╕рд╛рдорд╛рдиреНрдп рд╕реНрдкреНрд░рд┐рдВрдЧ рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреЛрдб рджреЗрдЦрдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдирд╣реАрдВ рд╣реИред
рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, рд╕рдВрд╕реНрдХрд░рдг 12 рд╕реЗ рд╢реБрд░реВ рд╣реЛрдХрд░, рдЖрдк рдХрдо рд╕реЗ рдХрдо рдЬреЗрдПрдордПрдЪ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдкрд░реАрдХреНрд╖рдг рдХрд╛ рдПрдХ рд╕реЗрдЯ рд╣реИ рдЬреЛ рдЙрд╕ рдкрд░ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИред рдЖрдк рдЗрд╕реЗ jdk/jdk/test/micro/org/openjdk/bench
рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ (рдЖрдк рд╕реАрдзреЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╣ рдкрде рдПрдХ рд▓рд┐рдВрдХ рд╣реИ)ред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрд╣рд╛рдВ рдЬреАрд╕реА рдЯреЗрд╕реНрдЯ рдХреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИред
рдореИрдВ рдЖрдкрдХреЛ рдпрд╛рдж рджрд┐рд▓рд╛ рджреВрдВ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдпрд╣рд╛рдВ StackOverflow рдирд╣реАрдВ рд╣реИ, рдФрд░ рдпрд╣рд╛рдВ рдФрд░ рдмрд╛рдж рдореЗрдВ рдХреЙрдкреА-рдкреЗрд╕реНрдЯ рд╕реЗ рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордирд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдмрд┐рдирд╛ рд╕рдВрдмрдВрдзрд┐рдд рдлрд╝рд╛рдЗрд▓ рдФрд░ OpenJDK рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд╕рднреА рд▓рд╛рдЗрд╕реЗрдВрд╕реЛрдВ рдХреЛ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдкрдврд╝рдиреЗ рдФрд░ рджреЗрдЦрдиреЗ рдХреЗ рдмрд┐рдирд╛, рдЕрдиреНрдпрдерд╛ рдЖрдк рдЖрд╕рд╛рдиреА рд╕реЗ рдореБрдХрджрдорд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдВрддрд┐рдо рдореЛрдЬрд╝реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВрдЧреЗред
@BenchmarkMode(Mode.AverageTime) @OutputTimeUnit(TimeUnit.NANOSECONDS) @State(Scope.Thread) public class Alloc { public static final int LENGTH = 400; public static final int ARR_LEN = 100; public int largeLen = 100; public int smalllen = 6; @Benchmark public void testLargeConstArray(Blackhole bh) throws Exception { int localArrlen = ARR_LEN; for (int i = 0; i < LENGTH; i++) { Object[] tmp = new Object[localArrlen]; bh.consume(tmp); } }
325: рд╕реНрд╡рд┐рдЪ рдПрдХреНрд╕рдкреНрд░реЗрд╢рдВрд╕ (рдкреВрд░реНрд╡рд╛рд╡рд▓реЛрдХрди)
рдмрд╛рд╣рд░реА рд╡рд┐рд╢реЗрд╖рддрд╛ ред рдпрд╣ рдореМрд▓рд┐рдХ рд░реВрдк рд╕реЗ рджреЛ рд╕реЗ рдЕрдзрд┐рдХ рд╕реНрдХреНрд░реАрди рдХреА рд▓рдВрдмрд╛рдИ рдХреЗ рд╕рд╛рде рдЕрдВрддрд╣реАрди рд╕реНрд╡рд┐рдЪ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЛ рдмрджрд▓ рджреЗрдЧрд╛ред рджреЗрдЦреЛ:
рд╡рд░реНрдЬрд┐рди рдЬрд╛рд╡рд╛ рд╕реНрд╡рд┐рдЪ рдмрдирд╛рдо ...
int dayNum = -1; switch (day) { case MONDAY: case FRIDAY: case SUNDAY: dayNum = 6; break; case TUESDAY: dayNum = 7; break; case THURSDAY: case SATURDAY: dayNum = 8; break; case WEDNESDAY: dayNum = 9; break; }
рдпрд╣ рдХреНрдпреЛрдВ рдмреБрд░рд╛ рд╣реИ : рдмрд╣реБрдд рд╕рд╛рд░реЗ рдкрддреНрд░ рд╣реИрдВ, рдЖрдк рд╡рд┐рд░рд╛рдо рдЫреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ (рд╡рд┐рд╢реЗрд╖рдХрд░ рдпрджрд┐ рдЖрдк рдПрдХ рдбреНрд░рдЧ рдПрдбрд┐рдХреНрдЯ рд╣реИрдВ рдпрд╛ рдЖрдк ADHD рд╕реЗ рдмреАрдорд╛рд░ рд╣реИрдВ)ред
... рдмрдирд╛рдо рдЪрд╛рдб рдЬрд╛рд╡рд╛ Swtich рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐!
int dayNum = switch (day) { case MONDAY -> 0; case TUESDAY -> 1; default -> { int k = day.toString().length(); int result = f(k); break result; } };
рдХреНрдпреЛрдВ рдЕрдЪреНрдЫрд╛ : рдХреБрдЫ рдЕрдХреНрд╖рд░, рд╕реБрд░рдХреНрд╖рд┐рдд, рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ, рдирдпрд╛ рд╢рд╛рдВрдд рдлреАрдЪрд░ред
рдмреЛрдирд╕ : рдпрджрд┐ рдЖрдк рдПрдХ рд╕реИрдбрд┐рд╕реНрдЯ рд╣реИрдВ, рддреЛ рдпрд╣ рдЖрдкрдХреЛ рд╕рдмрд╕реЗ рдЧрд╣рд░реА рд╕рдВрддреБрд╖реНрдЯрд┐ рджреЗрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рд╣рдЬрд╛рд░реЛрдВ рдЖрдИрдбреАрдИ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдЕрдм рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд╕рдорд░реНрдерди рд╕реЗ рдкрд░реЗрд╢рд╛рди рд╣реИрдВред рд╣рд╛рдБ, рд╣рд╛рдБ, рд╣рд╛рдБ? рдЖрдк 6 рдЕрдкреНрд░реИрд▓ рдХреЛ рд░рд┐рдкреЛрд░реНрдЯ рдХреЗ рдмрд╛рдж рдЙрд╕реЗ рдкрдХрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдзреАрд░реЗ рд╕реЗ рд╕рднреА рдЧрдВрджреЗ рд╡рд┐рд╡рд░рдг рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣ рд╕рдХрддреЗ рд╣реИрдВред
рдпрд╣ рдПрдХ рдкреВрд░реНрд╡рд╛рд╡рд▓реЛрдХрди рд╕реБрд╡рд┐рдзрд╛ рд╣реИ, рдпрд╣ рд╕рд┐рд░реНрдл рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛! рд╕рдВрдХрд▓рди рдХрд░рддреЗ рд╕рдордп, javac
рдЖрдкрдХреЛ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рд╡рд┐рдХрд▓реНрдк --enable-preview --release 12
рдкрд╛рд╕ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдФрд░ java
- рдХреЗрд╡рд▓ - --enable-preview --release 12
рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдПред
334: рдЬреЗрд╡реАрдПрдо рдХреЙрдиреНрд╕реНрдЯреЗрдВрдЯ рдПрдкреАрдЖрдИ
рднреАрддрд░реА рд╡рд┐рд╢реЗрд╖рддрд╛ ред рдбреЗрд╡рд▓рдкрд░реНрд╕ рд╡рд░реНрдЧ рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рд╣реЗрд░рдлреЗрд░ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдЖрдкрдХреЛ рдЗрд╕реЗ рдЖрд╕рд╛рдиреА рд╕реЗ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдФрд░ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдмрдпрд╛рди рд╣реИред рдХрдо рд╕реЗ рдХрдо, рдЬреЛ рдХрд┐ рдЗрд╕ рдЬреЗрдИрдкреА рдХреЗ рдорд╛рд▓рд┐рдХ рдмреНрд░рд╛рдпрди рдЧреЛрдПрддреНрдЬрд╝ рдиреЗ рдХрд╣рд╛ рд╣реИ, :-) рдпрд╣ рд╕рдм рдПрдХ рдмрдбрд╝реЗ рдпреБрджреНрдз рдХреЗ рдореИрджрд╛рди рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдм рд╣рдо рдЧрд╣рд░рд╛рдИ рддрдХ рдирд╣реАрдВ рдЬрд╛рдПрдВрдЧреЗред
рдкреНрд░рддреНрдпреЗрдХ рдЬрд╛рд╡рд╛ рд╡рд░реНрдЧ рдореЗрдВ рдПрдХ рддрдерд╛рдХрдерд┐рдд "рдирд┐рд░рдВрддрд░ рдкреВрд▓" рд╣реЛрддрд╛ рд╣реИ, рдЬрд╣рд╛рдВ рдХреБрдЫ рдорд╛рдиреЛрдВ (рдЬреИрд╕реЗ рддрд╛рд░ рдФрд░ ints) рдХрд╛ рдПрдХ рдбрдВрдк рд╣реЛрддрд╛ рд╣реИ, рдпрд╛ рдХрдХреНрд╖рд╛рдПрдВ рдФрд░ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреА рддрд░рд╣ рд░рдирдЯрд╛рдЗрдо рдЗрдХрд╛рдЗрдпрд╛рдВ рд╣реЛрддреА рд╣реИрдВред рдЖрдк рдЗрд╕ рдбрдВрдк рдХреЛ ldc - "рд▓реЛрдб рдХреЙрд╕реНрдЯреЗрдВрдЯ" рдирд┐рд░реНрджреЗрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЦреЛрдж рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЗрд╕ рд╕рднреА рдХрдмрд╛рдбрд╝ рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд╕реНрдерд┐рд░рд╛рдВрдХ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдЕрднреА рднреА рдЖрд╣реНрд╡рд╛рди рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд╢реЗрд╖ рдорд╛рдорд▓рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреЛрдИ рдмрд╛рдд рдирд╣реАрдВред
рдпрджрд┐ рд╣рдо рдХреНрд▓рд╛рд╕рдлрд╛рдЗрд▓реНрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рдЖрд╕рд╛рдиреА рд╕реЗ рдмрд╛рдпрдЯреЗрдХреЛрдб рдЙрдкрдХрд░рдгреЛрдВ рдХреЛ рдЕрдиреБрдХрд░рдг рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдФрд░ рдЗрд╕рд▓рд┐рдП - рд▓реЛрдб рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд╕реНрдерд┐рд░рд╛рдВрдХред рдкрд╣рд▓реА рдЗрдЪреНрдЫрд╛ рдХреЗрд╡рд▓ рд╕рдВрдмрдВрдзрд┐рдд рдЬрд╛рд╡рд╛ рдкреНрд░рдХрд╛рд░ рдмрдирд╛рдиреЗ рдХреА рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдк рдЙрдиреНрд╣реЗрдВ "рдЬреАрд╡рд┐рдд" рд╡рд░реНрдЧ, CONSTANT_Class_info
рд╕рдВрд░рдЪрдирд╛ рдХреЗ рд╕рд╛рде рдХреИрд╕реЗ рдкреНрд░рд╕реНрддреБрдд рдХрд░рддреЗ рд╣реИрдВ? Class
рдСрдмреНрдЬреЗрдХреНрдЯ рдХреНрд▓рд╛рд╕ рд▓реЛрдбрд┐рдВрдЧ рдХреА рд╢реБрджреНрдзрддрд╛ рдФрд░ рд╕реНрдерд┐рд░рддрд╛ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдЬрд╛рд╡рд╛ рдореЗрдВ рдХрдХреНрд╖рд╛рдУрдВ рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд╕рд╛рде, рдПрдХ рд╣реЗрд▓рд┐рдХреИрдмрд▓ рдмреИрдЪреЗрдиреЗрд▓рд┐рдпрд╛ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╕рднреА рд╡рд░реНрдЧреЛрдВ рдХреЛ рд╡реАрдПрдо рдореЗрдВ рд▓реЛрдб рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдкрдХреЛ рдЕрднреА рднреА рдЙрдирдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ!
рдореИрдВ рдЗрди рд╕рднреА рд╕реВрдХреНрд╖реНрдорддрд╛рдУрдВ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реБрдП рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рд╡рд░реНрдЧреЛрдВ, рд╡рд┐рдзрд┐рдпреЛрдВ рдФрд░ рдХрдо-рдЬреНрдЮрд╛рдд рдЬрд╛рдирд╡рд░реЛрдВ рдЬреИрд╕реЗ рдХрд┐ рддрд░реАрдХреЛрдВ рдХреЗ рд╣реИрдВрдбрд▓ рдФрд░ рдбрд╛рдпрдирд╛рдорд┐рдХ рд╕реНрдерд┐рд░рд╛рдВрдХ рдЬреИрд╕реА рдЪреАрдЬреЛрдВ рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ред
рдЗрд╕реЗ рдирдП рдореВрд▓реНрдп-рдЖрдзрд╛рд░рд┐рдд рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рдкреНрд░рддреАрдХрд╛рддреНрдордХ рд▓рд┐рдВрдХ ( JVMS 5.1 рдХреЗ рдЕрд░реНрде рдореЗрдВ) рдХреЗ рджреНрд╡рд╛рд░рд╛ рд╣рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕реНрдерд┐рд░рд╛рдВрдХ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИред рд▓реЛрдбрд┐рдВрдЧ рдХреНрд▓рд╛рд╕реЗрд╕ рдпрд╛ рдПрдХреНрд╕реЗрд╕ рдореБрджреНрджреЛрдВ рд╕реЗ рдЕрд▓рдЧрд╛рд╡ рдореЗрдВ, рд╡рд┐рд╢реБрджреНрдз рд░реВрдк рд╕реЗ рдирд╛рдордорд╛рддреНрд░ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИред рд╡реЗ java.lang.invoke.constant
рдЬреИрд╕реЗ рдкреИрдХреЗрдЬ рдореЗрдВ рд░рд╣рддреЗ java.lang.invoke.constant
рдФрд░ рдЗрд╕рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рдкреВрдЫрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЖрдк рдпрд╣рд╛рдВ рдкреИрдЪ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ ред
340: рд╡рди рдПрд░рдЪ 64 рдкреЛрд░реНрдЯ, рдиреЙрдЯ рдЯреВ
рдмрд╛рд╣рд░реА рд╡рд┐рд╢реЗрд╖рддрд╛ ред рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЬреЗрдбреАрдХреЗ 9 рдореЗрдВ рдПрдХ рдЕрдЬреАрдм рд╕реНрдерд┐рддрд┐ рдереА рдЬрдм рдУрд░реЗрдХрд▓ рдФрд░ рд░реЗрдб рд╣реИрдЯ рдиреЗ рдПрдХ рд╕рд╛рде рдЕрдкрдиреЗ рдПрдЖрд░рдПрдо рдмрдВрджрд░рдЧрд╛рд╣реЛрдВ рдХреЛ рдЕрд▓рд░реНрдЯ рдкрд░ рд░рдЦрд╛ рдерд╛ред рдФрд░ рдЕрдм рд╣рдо рдХрд╣рд╛рдиреА рдХреЗ рдЕрдВрдд рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ: рдУрд░рдХреЛрд▓реЛрд╡ рдмрдВрджрд░рдЧрд╛рд╣ рдХрд╛ 64-рдмрд┐рдЯ рд╣рд┐рд╕реНрд╕рд╛ рдЕрдкрд╕реНрдЯреНрд░реАрдо рд╕реЗ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдЖрдк рдЕрдкрдиреЗ рдЖрдк рдХреЛ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдЗрддрд┐рд╣рд╛рд╕ рдореЗрдВ рдмрджрд▓ рд╕рдХрддреЗ рдереЗ, рд▓реЗрдХрд┐рди рдПрдХ рдмреЗрд╣рддрд░ рддрд░реАрдХрд╛ рд╣реИред рдмреЗрд▓рд╕реЙрдлреНрдЯ рдиреЗ рдЗрд╕ рдЬреЗрдИрдкреА рдХреЗ рд╡рд┐рдХрд╛рд╕ рдореЗрдВ рднрд╛рдЧ рд▓рд┐рдпрд╛, рдФрд░ рдЗрд╕рдХрд╛ рдХрд╛рд░реНрдпрд╛рд▓рдп рдУрд░реЗрдХрд▓ рдХреЗ рдкреВрд░реНрд╡ рдХрд╛рд░реНрдпрд╛рд▓рдп рдХреЗ рдмрдЧрд▓ рдореЗрдВ рд╕реЗрдВрдЯ рдкреАрдЯрд░реНрд╕рдмрд░реНрдЧ рдореЗрдВ рд╕реНрдерд┐рдд рд╣реИред
рдЗрд╕рд▓рд┐рдП, рдореИрдВ рддреБрд░рдВрдд рдЕрд▓реЗрдХреНрд╕рдИ рд╡реЛрдЗрдЯрд┐рд▓реЛрд╡, рдмреЗрд▓реНрд╕реЙрдлреНрдЯ рдХреЗ рд╕реАрдЯреАрдУ рдХреЗ рд▓рд┐рдП рддреБрд░рдВрдд рдореБрдбрд╝ рдЧрдпрд╛:
"рдмреЗрд▓рд╕реЙрдлреНрдЯ рдиреЗ рд▓рд╛рдЗрдмреЗрд░рд┐рдХрд╛ рдЬреЗрдбреАрдХреЗ рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛, рдЬреЛ x86 рд▓рд┐рдирдХреНрд╕ / рд╡рд┐рдВрдбреЛрдЬ / рдореИрдХ рдФрд░ рд╕реЛрд▓рд╛рд░рд┐рд╕ / рдПрд╕рдкреАрдПрдЖрд░рд╕реА рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдПрдЖрд░рдПрдо рдХрд╛ рднреА рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред рдПрдЖрд░рдПрдо рдХреЗ рд▓рд┐рдП рдЬреЗрдбрдбреАрдХреЗ 9 рд╕реЗ рд╢реБрд░реВ рд╣реЛрдХрд░, рд╣рдордиреЗ рд╕рд░реНрд╡рд░ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдПрдЖрд░ 6464 рдкреЛрд░реНрдЯ рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдореЗрдВ рд╕реБрдзрд╛рд░ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд┐рдпрд╛ рдФрд░ 32-рдмрд┐рдЯ рдПрдЖрд░рдПрдо рдкреЛрд░реНрдЯ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдЬрд╛рд░реА рд░рдЦрд╛ред рдЗрд╕рд▓рд┐рдП, JDK 11 рдХреА рд░рд┐рд▓реАрдЬрд╝ рдХреЗ рд╕рдордп, рдПрдХ рдРрд╕реА рд╕реНрдерд┐рддрд┐ рдереА рдЬрд╣рд╛рдВ рдХрд┐рд╕реА рдиреЗ Oracle (Oracle рд╕рд╣рд┐рдд) рд╕реЗ 64-рдмрд┐рдЯ рдкреЛрд░реНрдЯ рднрд╛рдЧ рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд┐рдпрд╛ рдерд╛, рдФрд░ OpenJDK рд╕рдореБрджрд╛рдп рдиреЗ AARCH64 рдкреЛрд░реНрдЯ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рд╣рдЯрд╛рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред рдлрд┐рд▓рд╣рд╛рд▓, рдпрд╣ рдЕрдзрд┐рдХ рдЙрддреНрдкрд╛рджрдХ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рджреЗрдЦреЗрдВ,, JEP 315 рд╣реИ, рдЬреЛ рд╣рдо JDK 11 рдореЗрдВ рдПрдХреАрдХреГрдд) рдФрд░, JDK 12 рд╕реЗ рд╢реБрд░реВ рд╣реЛрдХрд░, рдпрд╣ Oracle рд╕реЗ рдкреЛрд░реНрдЯ рдореЗрдВ рдореМрдЬреВрдж рд╕рднреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ (рдкрд┐рдЫрд▓реЗ рдПрдХ, рдорд┐рдирд┐рдорд▓ рд╡реАрдПрдо, рдореИрдВрдиреЗ рд╕рд┐рддрдВрдмрд░ рдореЗрдВ рдПрдХреАрдХреГрдд) рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдореИрдВ рдмреЙрдм Vandette рдХреА рдорджрдж рд╕реЗ JDK 12 рдореЗрдВ рдЗрд╕ рдХрдареЛрд░рддрд╛ рдХреЛ рджреВрд░ рдХрд░рдиреЗ рдореЗрдВ рдЦреБрд╢ рдерд╛ред рдирддреАрдЬрддрди, OpenJDKред рд╕рдореБрджрд╛рдп рдХреЛ AARCH64 рдкрд░ рдПрдХ рдкреЛрд░реНрдЯ рдФрд░ рдПрдХ ARM32 рдкреЛрд░реНрдЯ рдорд┐рд▓рд╛, рдЬреЛ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЙрдиреНрд╣реЗрдВ рд╕рдорд░реНрдерди рдХрд░рдирд╛ рдЖрд╕рд╛рди рдмрдирд╛рддрд╛ рд╣реИред "
341: рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕реАрдбреАрдПрд╕ рдЕрднрд┐рд▓реЗрдЦрд╛рдЧрд╛рд░
рднреАрддрд░реА рд╡рд┐рд╢реЗрд╖рддрд╛ ред рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдПрдХ рдЬрд╛рд╡рд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ, рд╣рдЬрд╛рд░реЛрдВ рдХрдХреНрд╖рд╛рдПрдВ рднрд░реА рд╣реБрдИ рд╣реИрдВ, рдЬрд┐рд╕рд╕реЗ рдпрд╣ рдорд╣рд╕реВрд╕ рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдЬрд╛рд╡рд╛ рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдкрд░ рдХрд╛рдлреА рдзреАрдорд╛ рд╣реЛ рдЧрдпрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЭреВрда рдмреЛрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдХреМрди рд╣реИ, рдпрд╣ рд╕рд┐рд░реНрдл рдПрдХ "рд╕рдирд╕рдиреА" рдирд╣реАрдВ рд╣реИ - рдРрд╕рд╛ рд╣реИред рдкреНрд░рд╛рдЪреАрди рдХрд╛рд▓ рд╕реЗ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╡рд┐рднрд┐рдиреНрди рдЕрдиреБрд╖реНрдард╛рдиреЛрдВ рдХрд╛ рдЕрднреНрдпрд╛рд╕ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдХреНрд▓рд╛рд╕ рдбреЗрдЯрд╛ рд╢реЗрдпрд░рд┐рдВрдЧ рдПрдХ рдРрд╕реА рд╕реБрд╡рд┐рдзрд╛ рд╣реИ рдЬреЛ рд╕рджрд┐рдпреЛрдВ рдкрд╣рд▓реЗ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЖрдИ рд╣реИ, рдЬреИрд╕реЗ рдХрд┐ рдЬреЗрдбреАрдХреЗ 8 рдЕрдкрдбреЗрдЯ 40 рд╕реЗ рдПрдХ рд╡рд╛рдгрд┐рдЬреНрдпрд┐рдХ рд╕реБрд╡рд┐рдзрд╛ред рдпрд╣ рдЖрдкрдХреЛ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдХреБрдЫ рдкреНрд░рд╛рд░реВрдк рдХреЗ рд╕рдВрдЧреНрд░рд╣ рдореЗрдВ рдпрд╣ рд╕рднреА рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдХрдЪрд░рд╛ рдкреИрдХ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ (рдЖрдкрдХреЛ рдпрд╣ рдЬрд╛рдирдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдХреМрди рд╕рд╛ рд╣реИ), рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рд▓реЙрдиреНрдЪ рдХреА рдЧрддрд┐ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдмрдврд╝ рд░рд╣реЗ рд╣реИрдВред рдФрд░ рдереЛрдбрд╝реА рджреЗрд░ рдмрд╛рдж, рдЬреЗрдИрдкреА 310 рджрд┐рдЦрд╛рдИ рджрд┐рдпрд╛: рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреНрд▓рд╛рд╕-рдбреЗрдЯрд╛ рд╢реЗрдпрд░рд┐рдВрдЧ, рдЬрд┐рд╕рдиреЗ рд╣рдореЗрдВ рд╕рд┐рд╕реНрдЯрдо рдХрдХреНрд╖рд╛рдУрдВ рдХреЗ рд╕рд╛рде рд╣реА рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ рдЖрд╡реЗрджрди рдХрдХреНрд╖рд╛рдУрдВ рдореЗрдВ рднреА рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреАред
рдЬреЗрдбреАрдХреЗ рд╡рд░реНрдЧреЛрдВ рдХреЗ рд▓рд┐рдП, рдпрд╣ рдРрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╣рдо java -Xshare:dump
рд╕рд╛рде рдХрдХреНрд╖рд╛рдПрдВ рдбрдВрдк рдХрд░рддреЗ рд╣реИрдВ java -Xshare:dump
рдХрдорд╛рдВрдб, рдФрд░ рдлрд┐рд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдЪрд▓рд╛рдПрдВ, рдЗрд╕ рдХреИрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП java -Xshare:on -jar app.jar
ред рд╕рдм рдХреБрдЫ, рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдореЗрдВ рдереЛрдбрд╝рд╛ рд╕реБрдзрд╛рд░ рд╣реБрдЖ рд╣реИред рдХреНрдпрд╛ рдЖрдк рдЗрд╕ рдлреАрдЪрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирддреЗ рд╣реИрдВ? рдХрдИ рдЬреЛ рдЕрднреА рднреА рдирд╣реАрдВ рдЬрд╛рдирддреЗ рд╣реИрдВ!
рдпрд╣рд╛рдБ рдпрд╣ рдЕрдЬреАрдм рд▓рдЧ рд░рд╣рд╛ рд╣реИ: рдХреНрдпреЛрдВ рд╣рд░ рдмрд╛рд░ рдЕрдиреБрд╖реНрдард╛рди рд▓рд┐рдЦрддрд╛ рд╣реИ -Xshare:dump
рдпрджрд┐ рдЗрд╕ рдХрдорд╛рдВрдб рдХрд╛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдкрд░рд┐рдгрд╛рдо -Xshare:dump
рд╡рд┐рддрд░рдг рдмрдирд╛рдиреЗ рдХреЗ рдЪрд░рдг рдореЗрдВ рднреА рдереЛрдбрд╝рд╛ рдЕрдиреБрдорд╛рдирд┐рдд рд╣реИ? рдкреНрд░рд▓реЗрдЦрди рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдпрджрд┐ рдЬрд╛рд╡рд╛ 8 рд╡рд┐рддрд░рдг рдЗрдВрд╕реНрдЯреЙрд▓рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рддреЛ рд╕реНрдерд╛рдкрдирд╛ рдХреЗ рд╕рдордп рдпрд╣ рдЖрдкрдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдХрдорд╛рдВрдб рдЪрд▓рд╛рдиреЗ рдЪрд╛рд╣рд┐рдПред рдЬреИрд╕реЗ, рдЗрдВрд╕реНрдЯреЙрд▓рд░ рдХреЛрдиреЗ рдореЗрдВ рдЪреБрдкрдЪрд╛рдк рдЦрдирди рдХрд░ рд░рд╣рд╛ рд╣реИред рд▓реЗрдХрд┐рди рдХреНрдпреЛрдВ? рдФрд░ рд╡рд┐рддрд░рдг рдХреЗ рд╕рд╛рде рдХреНрдпрд╛ рдХрд░рдирд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдЗрдВрд╕реНрдЯреЙрд▓рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ рдЬрд╝рд┐рдк рдлрд╝рд╛рдЗрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рд╡рд┐рддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ?
рдпрд╣ рд╕рд░рд▓ рд╣реИ: JDK 12 рдХреЗ рд╕рд╛рде рд╢реБрд░реВ, рд╕реАрдбреАрдПрд╕ рд╕рдВрдЧреНрд░рд╣ рд╡рд┐рддрд░рдг рдХрд┐рдЯ рдХреЗ рд░рдЪрдирд╛рдХрд╛рд░реЛрдВ рджреНрд╡рд╛рд░рд╛ рд▓рд┐рдВрдХ рдХрд░рдиреЗ рдХреЗ рддреБрд░рдВрдд рдмрд╛рдж рдЙрддреНрдкрдиреНрди рд╣реЛрдЧрд╛ред рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рд░рд╛рдд рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП (рдмрд╢рд░реНрддреЗ рдХрд┐ рд╡реЗ 64-рдмрд┐рдЯ рдФрд░ рдореВрд▓ рд╣реИрдВ, рдХреНрд░реЙрд╕-рд╕рдВрдХрд▓рди рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ)ред
рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдиреЗ рдХреА рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐, JDK 11, -Xshare:auto
рд╢реБрд░реВ -Xshare:auto
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк -Xshare:auto
рд╕рдХреНрд╖рдо рд╣реИ, рдФрд░ рдЗрд╕ рддрд░рд╣ рдХрд╛ рдПрдХ рд╕рдВрдЧреНрд░рд╣ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ -Xshare:auto
ред рдЗрд╕ рдкреНрд░рдХрд╛рд░, JDK 12 рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХрд╛ рдорд╛рддреНрд░ рддрдереНрдп рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХреЗ рд▓реЙрдиреНрдЪ рдХреЛ рдЧрддрд┐ рджреЗрддрд╛ рд╣реИ!
344: G1 рдХреЗ рд▓рд┐рдП рдЕрднреЗрджреНрдп рдорд┐рд╢реНрд░рд┐рдд рд╕рдВрдЧреНрд░рд╣
рднреАрддрд░реА рд╡рд┐рд╢реЗрд╖рддрд╛ ред рдИрдорд╛рдирджрд╛рд░ рд╣реЛрдирд╛ рдореБрдЭреЗ G1 рдХреЗ рдХрд╛рдо рдореЗрдВ рдХреБрдЫ рд╕рдордЭ рдирд╣реАрдВ рдЖ рд░рд╣рд╛ рд╣реИ рдЬреАрд╕реА рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХрд╛ рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рдПрдХ рдзрдиреНрдпрд╡рд╛рдж рдХрд╛рд░реНрдп рд╣реИред рдЗрд╕рдХреЗ рд▓рд┐рдП рд╡реНрдпрд╛рдЦреНрдпрд╛рддрд╛ рдФрд░ рд╕рдордЭ рджреЛрдиреЛрдВ рд╕реЗ рдЙрд╕рдХреЗ рдХрд╛рдо рдХреЗ рд╡рд┐рд╡рд░рдг рдХреА рд╕рдордЭ рдЖрд╡рд╢реНрдпрдХ рд╣реИред рдЬреНрдпрд╛рджрд╛рддрд░ рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП, рдЬреАрд╕реА рдПрдХ рд╕реНрдирдлрд╝рдмреЙрдХреНрд╕ рд╕реЗ рдмрд╛рд╣рд░ рдХрд┐рд╕реА рддрд░рд╣ рдХрд╛ рдирд░рдХ рд╣реИ рдЬреЛ рдЖрдк рдХрд┐рд╕реА рдЪреАрдЬрд╝ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдзреЛрдЦрд╛ рджреЗ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП, рд╕рдорд╕реНрдпрд╛ рдХреЛ рдХрд┐рд╕реА рддрд░рд╣ рд╕рд░рд▓ рд╕рдордЭрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
рд╕рдорд╕реНрдпрд╛ : G1 рдмреЗрд╣рддрд░ рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИред
рдЦреИрд░, рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдЬреАрд╕реА рдХрдИ рдорд╛рдкрджрдВрдбреЛрдВ рдХрд╛ рдПрдХ рд╕рдордЭреМрддрд╛ рд╣реИ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдПрдХ рдард╣рд░рд╛рд╡ рдХреА рд▓рдВрдмрд╛рдИ рд╣реИред рдХрднреА-рдХрднреА рдард╣рд░рд╛рд╡ рдмрд╣реБрдд рд▓рдВрдмрд╛ рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рдЗрд╕реЗ рд░рджреНрдж рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реИред
рдпрд╣ рдХрдм рд╣реЛрддрд╛ рд╣реИ? G1 рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЕрдкрдиреЗ рдирд┐рд╖реНрдХрд░реНрд╖ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдХрд╛рдо рдХреЗ рдореЛрд░реНрдЪреЗ (рдПрдХ рд╕рдВрдЧреНрд░рд╣ рд╕реЗрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рд╡реНрдпрдХреНрдд) рдХрд╛ рдЪрдпрди рдХрд░рддрд╛ рд╣реИред рдЬрдм рдХрд╛рдо рдХреА рдЧреБрдВрдЬрд╛рдЗрд╢ рдХреЛ рдордВрдЬреВрд░реА рджреЗ рджреА рдЬрд╛рддреА рд╣реИ, рддреЛ G1 рдПрдХ рдмреИрдардХ рдореЗрдВ рд╕рднреА рдЬреАрд╡рд┐рдд рд╡рд╕реНрддреБрдУрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣ рд╕реЗрдЯ, рд╣рдареАрд▓реА рдФрд░ рдЧреИрд░-рд╕реНрдЯреЙрдк рдореЗрдВ рдЗрдХрдЯреНрдард╛ рдХрд░рдиреЗ рдХрд╛ рдЙрдкрдХреНрд░рдо рдХрд░рддрд╛ рд╣реИред рдХрднреА-рдХрднреА рдЗрд╕рдореЗрдВ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╕рдордп рд▓рдЧрддрд╛ рд╣реИред рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ G1 рдиреЗ рдЧрд▓рдд рддрд░реАрдХреЗ рд╕реЗ рдХрд╛рдо рдХреА рдорд╛рддреНрд░рд╛ рдХреА рдЧрдгрдирд╛ рдХреАред рдЖрдк рдЕрдЪрд╛рдирдХ рдЕрдкрдиреЗ рдЖрд╡реЗрджрди рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдмрджрд▓рдХрд░ рдЙрд╕реЗ рдмреЗрд╡рдХреВрдл рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдХрдИ рдкреБрд░рд╛рдиреЗ рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЗ рд╕рдВрдЧреНрд░рд╣ рд╕реЗрдЯ рдореЗрдВ рдЖрдиреЗ рдкрд░ рдЕрдиреБрдорд╛рди рдЦрд░рд╛рдм рдбреЗрдЯрд╛ рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рдХрд╛рдо рдХрд░реЗред
рд╕реНрдерд┐рддрд┐ рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рдиреЗ рдХреЗ рд▓рд┐рдП, G1 рдХреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рддрдВрддреНрд░ рджреНрд╡рд╛рд░рд╛ рдЕрдВрддрд┐рдо рд░реВрдк рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛: рдпрджрд┐ рд╣реЗрдпреБрд░рд┐рд╕реНрдЯрд┐рдХ рдирд┐рдпрдорд┐рдд рд░реВрдк рд╕реЗ рдХрд╛рдо рдХреА рдЧрд▓рдд рдорд╛рддреНрд░рд╛ рдХрд╛ рдЪрдпрди рдХрд░рддрд╛ рд╣реИ, рддреЛ G1 рд╡реГрджреНрдзрд┐рд╢реАрд▓ рдХрдЪрд░рд╛ рд╕рдВрдЧреНрд░рд╣, рдХрджрдо рд╕реЗ рдХрджрдо, рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдЕрдЧрд▓реЗ рдЪрд░рдг (рдпрджрд┐ рдпрд╣ рд▓рдХреНрд╖реНрдп рдирд┐рд╖реНрдкрд╛рджрди рд╕рдордп рдореЗрдВ рдлрд┐рдЯ рдирд╣реАрдВ рд╣реИ) рдХреЛ рд░рджреНрдж рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рдХреБрдЫ рд╡реГрджреНрдзрд┐ (рдпреБрд╡рд╛ рдХреНрд╖реЗрддреНрд░реЛрдВ) рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдордЭ рдореЗрдВ рдирд╣реАрдВ рдЖрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП, рдРрд╕реЗ рд╕рднреА рдХрд╛рдо рдХреЛ "рдЕрдирд┐рд╡рд╛рд░реНрдп" рдмреНрд▓реЙрдХ рдореЗрдВ рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬреЛ рдЕрднреА рднреА рд▓рдЧрд╛рддрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЕрдВрддрд┐рдо рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд╕рд╛рде рдХреНрдпрд╛ рдХрд░рдирд╛ рд╣реИ? рдХреБрдЫ рдирд╣реАрдВ, рдЖрдкрдХреЛ рдЬреЗрдбреАрдХреЗ 12 рдореЗрдВ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рд╕рдм рдХреБрдЫ рдЕрдкрдиреЗ рдЖрдк рдмреЗрд╣рддрд░ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред
346: рдЬреА -1 рд╕реЗ рддреБрд░рдВрдд рдЕрдкреНрд░рдпреБрдХреНрдд рд╡рд╛рдкрд╕реА рдХреА рдЧрдИ рдореЗрдореЛрд░реА
рднреАрддрд░реА рд╡рд┐рд╢реЗрд╖рддрд╛ ред рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдЕрдЧрд░ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдмрдбрд╝рд╛ рдХреВрд▓реНрд╣рд╛ рд╣реИ рдЬрд┐рд╕реЗ рдХреЛрдИ рднреА рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рд╕рдм рдирд┐рд╖реНрдХреНрд░рд┐рдп рд╕реНрдореГрддрд┐ рдХреЛ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдкрд░ рд╡рд╛рдкрд╕ рд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдЪрд┐рдд рд▓рдЧрддрд╛ рд╣реИред рдЬреЗрдбреАрдХреЗ 12 рд╕реЗ рдкрд╣рд▓реЗ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдРрд╕рд╛ рдирд╣реАрдВ рд╣реБрдЖред
рдЕрдиреБрдореЗрдп рдард╣рд░рд╛рд╡ рдХреА рд▓рдВрдмрд╛рдИ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдЕрдкрдиреЗ рд▓рдХреНрд╖реНрдп рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, G1 рд╡реГрджреНрдзрд┐рд╢реАрд▓, рд╕рдорд╛рдирд╛рдВрддрд░ рдФрд░ рдмрд╣реБ-рдЪрд░рдг рдЪрдХреНрд░ рдХрд╛ рдПрдХ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИред рдЬреЗрдбреАрдХреЗ 11 рдореЗрдВ, рдпрд╣ рдХреЗрд╡рд▓ рдкреВрд░реНрдг рдЬреАрд╕реА рдХреЗ рд╕рд╛рде рдпрд╛ рд╕рдорд╛рдирд╛рдВрддрд░ рдЕрдВрдХрди рдЪрд░рдг рдХреЗ рджреМрд░рд╛рди рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдХрдорд┐рдЯреЗрдб рдореЗрдореЛрд░реА рджреЗрддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рд▓реЙрдЧрд┐рдВрдЧ (-Xloggc: /home/gc.log -XX: + PrintGCDetails -XX: + PrintGCDateStamps) рдХрдиреЗрдХреНрдЯ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдЪрд░рдг рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддрд╛ рд╣реИ:
8801.974: [G1Ergonomics (Concurrent Cycles) request concurrent cycle initiation, reason: occupancy higher than threshold, occupancy: 12582912000 bytes, allocation request: 0 bytes, threshold: 12562779330 bytes (45.00 %), source: end of GC] 8804.670: [G1Ergonomics (Concurrent Cycles) initiate concurrent cycle, reason: concurrent cycle initiation requested] 8805.612: [GC concurrent-mark-start] 8820.483: [GC concurrent-mark-end, 14.8711620 secs]
рдордЬреЗрджрд╛рд░ рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ G1, рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдкреВрд░реНрдг рд╡рд┐рд░рд╛рдо рдХреЗ рд╕рд╛рде рд╕рдВрдШрд░реНрд╖ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рд╕рдорд╡рд░реНрддреА рдЪрдХреНрд░ рдХреЗрд╡рд▓ рд▓рдЧрд╛рддрд╛рд░ рдЖрд╡рдВрдЯрди рдФрд░ рдПрдХ рдвреЗрд░ рдвреЗрд░ рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИред рд╣рдорд╛рд░реА рд╕реНрдерд┐рддрд┐, рдЬрдм рдХреЛрдИ рднреА рдХреВрд▓реНрд╣реЗ рдХреЛ рдирд╣реАрдВ рдЫреВрддрд╛ рд╣реИ, рдмрд╕ рд╡рд┐рдкрд░реАрдд рд╣реИред рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдореЗрдореЛрд░реА рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП G1 рдХреЗ рдЦрд░реЛрдВрдЪ рд╣реЛрдиреЗ рдкрд░ рд╕реНрдерд┐рддрд┐рдпрд╛рдВ рдмрд╣реБрдд рдХрдо рд╣реА рд╣реЛрдВрдЧреА!
рддреЛ рд╣рд░ рдХреЛрдИ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдкрд░ рд╕реНрдХреЛрд░ рдХрд░рддрд╛ ("рдФрд░ рднреА рдЕрдзрд┐рдХ рд░реИрдо рдЦрд░реАрджреЗрдВ, рдЬреЛ рдПрдХ рджреБрд╖реНрдЯ рдХреА рддрд░рд╣ рд╣реИ!"), рдпрджрд┐ рдПрдХ рдирд╣реАрдВ, рд▓реЗрдХрд┐рди - рд╕рднреА рдкреНрд░рдХрд╛рд░ рдХреЗ рдмрд╛рджрд▓ рдФрд░ рдХрдВрдЯреЗрдирд░ рд╣реИрдВ, рдЬрд┐рд╕рдореЗрдВ рдЗрд╕рдХрд╛ рдорддрд▓рдм рдЕрдкрд░реНрдпрд╛рдкреНрдд рдЙрдкрдпреЛрдЧ рдФрд░ рдЧрдВрднреАрд░ рдзрди рдХреА рд╣рд╛рдирд┐ рд╣реИред рджреЗрдЦрд┐рдП, рдХреНрдпрд╛ рдорд╕реНрдд рд░рд┐рдкреЛрд░реНрдЯ рд╣реИ , рджрд░реНрдж рд╕реЗ рднрд░рдХрд░ред
рд╕рдорд╛рдзрд╛рди рдпрд╣ рдерд╛ рдХрд┐ рдЗрд╕ рд╡рд┐рд╢реЗрд╖ рдорд╛рдорд▓реЗ рдореЗрдВ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП G1 рдХреЛ рдкрдврд╝рд╛рдпрд╛ рдЬрд╛рдП, рдЬреИрд╕рд╛ рдХрд┐ OpenJ9 рдХреЗ рд╢реЗрдирдВрдбрд╛ рдпрд╛ рдЬреЗрдирдХреЙрди рдкрд╣рд▓реЗ рд╕реЗ рдЬрд╛рдирддреЗ рд╣реИрдВред рдХреВрд▓реНрд╣реЗ рдХреЗ рдЕрдкрд░реНрдпрд╛рдкреНрдд рдЙрдкрдпреЛрдЧ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдФрд░, рддрджрдиреБрд╕рд╛рд░, рдЗрд╕рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЛ рдХрдо рдХрд░реЗрдВред рдЯреЙрдордХреИрдЯ рдкрд░ рдХреБрдЫ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдкрд░, рдЗрд╕рдиреЗ рдореЗрдореЛрд░реА рдЦрдкрдд рдХреЛ рд▓рдЧрднрдЧ рдЖрдзреЗ рд╕реЗ рдХрдо рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреАред
рд▓рдмреНрдмреЛрд▓реБрдЖрдм рдпрд╣ рд╣реИ рдХрд┐ рдЖрд╡реЗрджрди рдХреЛ рдирд┐рд╖реНрдХреНрд░рд┐рдп рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ, рдпрд╛ рдпрджрд┐ рдЕрдВрддрд░рд╛рд▓ (рдорд┐рд▓реАрд╕реЗрдХрдВрдб рдореЗрдВ) рдкрд┐рдЫрд▓реЗ рдирд┐рд░реНрдорд╛рдг рд╕реЗ getloadavg()
рд╣реЛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдХреЛрдИ рд╕рдорд╡рд░реНрддреА рдЪрдХреНрд░ рдирд╣реАрдВ рд╣реИ, рдпрд╛ рдЕрдЧрд░ рдПрдХ рдорд┐рдирдЯ рдХреА рдЕрд╡рдзрд┐ рдХреЗ рд▓рд┐рдП getloadavg()
рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╕реАрдорд╛ рд╕реЗ рдиреАрдЪреЗ рд▓реЛрдб рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЬреИрд╕реЗ рд╣реА рдЗрд╕рдореЗрдВ рд╕реЗ рдПрдХ рд╣реБрдЖ, рдЖрд╡рдзрд┐рдХ рдХрдЪрд░рд╛ рд╕рдВрдЧреНрд░рд╣ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ - рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдкреВрд░реНрдг рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдХреЗ рд╕рд╛рде-рд╕рд╛рде рд╕рд╛рдл рдирд╣реАрдВ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдпрд╣ рдиреНрдпреВрдирддрдо рд░реВрдк рд╕реЗ рдЖрд╡реЗрджрди рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░реЗрдЧрд╛ред
рдЖрдк рдЗрд╕реЗ рдЗрд╕ рд▓реЙрдЧ рдореЗрдВ рдзрдХреЗрд▓ рд╕рдХрддреЗ рд╣реИрдВ:
(1) [6.084s][debug][gc,periodic ] Checking for periodic GC. [6.086s][info ][gc ] GC(13) Pause Young (Concurrent Start) (G1 Periodic Collection) 37M->36M(78M) 1.786ms (2) [9.087s][debug][gc,periodic ] Checking for periodic GC. [9.088s][info ][gc ] GC(15) Pause Young (Prepare Mixed) (G1 Periodic Collection) 9M->9M(32M) 0.722ms (3) [12.089s][debug][gc,periodic ] Checking for periodic GC. [12.091s][info ][gc ] GC(16) Pause Young (Mixed) (G1 Periodic Collection) 9M->5M(32M) 1.776ms (4) [15.092s][debug][gc,periodic ] Checking for periodic GC. [15.097s][info ][gc ] GC(17) Pause Young (Mixed) (G1 Periodic Collection) 5M->1M(32M) 4.142ms (5) [18.098s][debug][gc,periodic ] Checking for periodic GC. [18.100s][info ][gc ] GC(18) Pause Young (Concurrent Start) (G1 Periodic Collection) 1M->1M(32M) 1.685ms (6) [21.101s][debug][gc,periodic ] Checking for periodic GC. [21.102s][info ][gc ] GC(20) Pause Young (Concurrent Start) (G1 Periodic Collection) 1M->1M(32M) 0.868ms (7) [24.104s][debug][gc,periodic ] Checking for periodic GC. [24.104s][info ][gc ] GC(22) Pause Young (Concurrent Start) (G1 Periodic Collection) 1M->1M(32M) 0.778ms
рдкрддрд╛ рдЪрд▓рд╛? рдореИрдВ рдирд╣реАрдВ рдХрд░рддрд╛ред рдЬреЗрдИрдкреА рдореЗрдВ, рд▓реЙрдЧ рдХреА рдкреНрд░рддреНрдпреЗрдХ рдкрдВрдХреНрддрд┐ рдХрд╛ рдПрдХ рд╡рд┐рд╕реНрддреГрдд рд╕рдВрдХреЗрдд рднрд╛рд╖рд╛ рдЕрдиреБрд╡рд╛рдж рд╣реИ, рдФрд░ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдмрд╛рдХреА рд╕рдм рдХреБрдЫред
"рддреЛ рдХреНрдпрд╛, рдореБрдЭреЗ рдХреНрдпреЛрдВ рдкрддрд╛ рдЪрд▓рд╛?" - рдЖрдк рдкреВрдЫреЗрдВред рдЕрдм рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рджреЛ рдЕрддрд┐рд░рд┐рдХреНрдд рд╣реИрдВрдбрд▓ рд╣реИрдВ: G1PeriodicGCInterval
рдФрд░ G1PeriodicGCSystemLoadThreshold
, рдЬреЛ рдЦрд░рд╛рдм рд╣реЛрдиреЗ рдкрд░ рдореБрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд╣реИ рдХрд┐ рдпрд╣ рдХрд┐рд╕реА рджрд┐рди рдмреБрд░рд╛ рд╣реЛрдЧрд╛, рдпрд╣ рдЬрд╛рд╡рд╛, рдмрдЪреНрдЪрд╛ рд╣реИ!
рдкрд░рд┐рдгрд╛рдо
рдирддреАрдЬрддрди, рд╣рдорд╛рд░реЗ рд╣рд╛рдереЛрдВ рдореЗрдВ рдПрдХ рдордЬрдмреВрдд рд░рд┐рд▓реАрдЬ рд╣реИ - рдХреНрд░рд╛рдВрддрд┐ рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ рдкреНрд░рджрд░реНрд╢рди рдореЗрдВ рд╕реБрдзрд╛рд░ рдкрд░ рдХреЗрдВрджреНрд░рд┐рдд рдПрдХ рд╡рд┐рдХрд╛рд╕ред рд╕реБрдзрд╛рд░ рдХреЗ рд▓рдЧрднрдЧ рдЖрдзреЗ рдкреНрд░рджрд░реНрд╢рди рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИрдВ: рдЬреАрд╕реА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рддреАрди рдЬреЗрдИрдкреА рдФрд░ рд╕реАрдбреАрдПрд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ, рдЬреЛ рдЦреБрдж рдХреЛ рдЪрд╛рд▓реВ рдХрд░рдиреЗ рдХрд╛ рд╡рд╛рджрд╛ рдХрд░рддрд╛ рд╣реИ, рдХреЗрд╡рд▓ рдЬреЗрдбреАрдХреЗ 12 рдореЗрдВ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╣рдореЗрдВ рдПрдХ рднрд╛рд╖рд╛ рд╕реБрд╡рд┐рдзрд╛ (рд╕реНрд╡рд┐рдЪ рдПрдХреНрд╕рдкреНрд░реЗрд╢рдВрд╕), рдЬреЗрдбреАрдХреЗ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рджреЛ рдирдП рдЯреВрд▓ ( рдХреЙрдиреНрд╕реНрдЯреЗрдВрдЯ рдПрдкреАрдЖрдИ рдФрд░ рдЬреЗрдПрдордПрдЪ рдкрд░реАрдХреНрд╖рдг), рдФрд░ рдЕрдм рд╕рдореБрджрд╛рдп рдПрдЖрд░рдПрдо рдкрд░ рдПрдХ рдПрдХрд▓ 64-рдмрд┐рдЯ рдкреЛрд░реНрдЯ рдкрд░ рдмреЗрд╣рддрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИред
рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдЕрдм JDK 12 рдореЗрдВ рдЕрдкрдЧреНрд░реЗрдб рдХрд░реЗрдВ, рдФрд░ рдмрд▓ рдЖрдкрдХреЗ рд╕рд╛рде рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдЖрдкрдХреЛ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред
рд╡рд┐рдЬреНрдЮрд╛рдкрди рдХрд╛ рдорд┐рдирдЯред рдмрд╣реБрдд рдЬрд▓реНрдж, 5-6 рдЕрдкреНрд░реИрд▓ рдХреЛ, рдЬреЗрдкреАрдПрди рд╕рдореНрдореЗрд▓рди рдЖрдпреЛрдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЬреЛ рдПрдХ рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рд▓реЛрдЧреЛрдВ рдХреЛ рдПрдХ рд╕рд╛рде рд▓рд╛рдПрдЧрд╛ рдЬреЛ рдЬреЗрдбреАрдХреЗ рдФрд░ рд╕рднреА рдкреНрд░рдХрд╛рд░ рдХреА рдирдИ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╣реБрдд рдХреБрдЫ рдЬрд╛рдирддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ "JDK 12: рдж рдЕрдирдЯреНрд░реА рдХреЗ рд▓рд┐рдП рдиреБрдХрд╕рд╛рди" рдкрд░ рдПрдХ рд╡реНрдпрд╛рдЦреНрдпрд╛рди рдХреЗ рд╕рд╛рде рдЕрдЬрд╝реБрд▓ рд╕реЗ рд╕рд╛рдЗрдорди рд░рд┐рдЯрд░ рд╣реЛрдЧрд╛ред рдирд╡реАрдирддрдо рд░рд┐рд▓реАрдЬ рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЙрдкрдпреБрдХреНрдд рдЬрдЧрд╣! рдЖрдк рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрд░ JPoint рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рди рд╕рдХрддреЗ рд╣реИрдВред