
рдЖрдЬ рдмрд╛рд░рд╣рд╡реЗрдВ JVM LS рд╢рд┐рдЦрд░ рд╕рдореНрдореЗрд▓рди рдХрд╛ рд╕рдорд╛рдкрди рд╣реБрдЖред рд╣рдореЗрд╢рд╛ рдХреА рддрд░рд╣, рдпрд╣ рдЖрднрд╛рд╕реА рдорд╢реАрдиреЛрдВ рдкрд░ рддрдХрдиреАрдХреА рдкреНрд░рд╕реНрддреБрддрд┐рдпреЛрдВ рдФрд░ рдЙрди рдкрд░ рдЪрд▓рдиреЗ рд╡рд╛рд▓реА рднрд╛рд╖рд╛рдУрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдХрдЯреНрдЯрд░ рдШрдЯрдирд╛ рдереАред рд╣рдореЗрд╢рд╛ рдХреА рддрд░рд╣, рдУрд░реЗрдХрд▓ рдкрд░рд┐рд╕рд░ рдореЗрдВ рд╕рд╛рдВрддрд╛ рдХреНрд▓рд╛рд░рд╛ рдореЗрдВ рд╢рд┐рдЦрд░ рд╕рдореНрдореЗрд▓рди рдЖрдпреЛрдЬрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рд╣рдореЗрд╢рд╛ рдХреА рддрд░рд╣, рд╡рд╣рд╛рдБ рдмрд╣реБрдд рд╕реЗ рд▓реЛрдЧ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣рд╛рдВ рдЬрдЧрд╣ рдорд┐рд▓реЗ: рдпрд╣рд╛рдВ рдкреНрд░рддрд┐рднрд╛рдЧрд┐рдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ 120 рд╕реЗ рдЕрдзрд┐рдХ рдирд╣реАрдВ рд╣реИред рд╣рдореЗрд╢рд╛ рдХреА рддрд░рд╣, рдХреЛрдИ рд╡рд┐рдкрдгрди рдирд╣реАрдВ рдерд╛, рдХреЗрд╡рд▓ рдЕрдкрдорд╛рдирдЬрдирдХред
рдпрд╣ рд╢рд┐рдЦрд░ рд╕рдореНрдореЗрд▓рди рдореЗрд░реЗ рд▓рд┐рдП рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рддреАрд╕рд░рд╛ рд╣реИ, рдФрд░ рд╣рд░ рдмрд╛рд░ рдореИрдВ рдЗрд╕реЗ рдмрд╣реБрдд рдЦреБрд╢реА рдХреЗ рд╕рд╛рде рдпрд╛рддреНрд░рд╛ рдХрд░рддрд╛ рд╣реВрдВ, рднрдпрд╛рдирдХ рдЬреЗрдЯрд▓реИрдЧ рдХреЗ рдмрд╛рд╡рдЬреВрджред рдпрд╣рд╛рдВ рдЖрдк рди рдХреЗрд╡рд▓ рд░рд┐рдкреЛрд░реНрдЯ рд╕реБрди рд╕рдХрддреЗ рд╣реИрдВ, рдмрд▓реНрдХрд┐ рдЬреЗрд╡реАрдПрдо рдХреА рджреБрдирд┐рдпрд╛ рдХреЗ рдмреЗрд╣рддрд░ рд▓реЛрдЧреЛрдВ рдХреЛ рднреА рдЬрд╛рди рд╕рдХрддреЗ рд╣реИрдВ, рдЕрдиреМрдкрдЪрд╛рд░рд┐рдХ рдмрд╛рддрдЪреАрдд рдореЗрдВ рднрд╛рдЧ рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВ, рдХрд╛рд░реНрдпрд╢рд╛рд▓рд╛рдУрдВ рдореЗрдВ рд╕рд╡рд╛рд▓ рдкреВрдЫ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЖрдо рддреМрд░ рдкрд░ рдорд╣рд╛рди рдЙрдкрд▓рдмреНрдзрд┐рдпреЛрдВ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдорд╣рд╕реВрд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдпрджрд┐ рдЖрдк рд╢рд┐рдЦрд░ рд╕рдореНрдореЗрд▓рди рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рд╣реБрдП, рддреЛ рдЗрд╕рд╕реЗ рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ред рд╢рд┐рдЦрд░ рд╕рдореНрдореЗрд▓рди рдХреЗ рддреБрд░рдВрдд рдмрд╛рдж рдЕрдзрд┐рдХрд╛рдВрд╢ рд░рд┐рдкреЛрд░реНрдЯреЗрдВ YouTube рдкрд░ рдкреЛрд╕реНрдЯ рдХреА рдЬрд╛рддреА рд╣реИрдВред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╡реЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЙрдкрд▓рдмреНрдз рд╣реИрдВ ред рдиреЗрд╡рд┐рдЧреЗрдЯ рдХрд░рдиреЗ рдореЗрдВ рдЖрд╕рд╛рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВ рдпрд╣рд╛рдВ рдЙрди рд╕рднреА рд░рд┐рдкреЛрд░реНрдЯреЛрдВ рдФрд░ рдХрд╛рд░реНрдпрд╢рд╛рд▓рд╛рдУрдВ рдХрд╛ рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рд╡рд░реНрдгрди рдХрд░реВрдВрдЧрд╛, рдЬрд┐рдиреНрд╣реЗрдВ рдореИрдВ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣рд╛ред
29 рдЬреБрд▓рд╛рдИ
рдпрд╣ рдХреНрд▓реЛрдЬрд░ рднрд╛рд╖рд╛ рдореЗрдВ рдлреНрдпреВрдЪрд░ рд╕рдВрдХрд▓рди рдХреА рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдмрд╣реБрдд рд╕реЗ рд╡рд┐рдЪрд╛рд░ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдмрд╕ рднрд╛рд╖рд╛ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ, рдХреЛрдб рдкреАрдврд╝реА рдХреА рдкреЗрдЪреАрджрдЧрд┐рдпреЛрдВ рдФрд░ рдЙрдирдХреЗ рджреНрд╡рд╛рд░рд╛ рд╕рд╛рдордирд╛ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдХреНрд▓реЛрдЬрд░ рдореЗрдВ рдЕрдВрддрд┐рдо рдЙрдкрдпреЛрдЧ рдХреЗ рдмрд╛рдж рд╕реНрдерд╛рдиреАрдп рдЪрд░ рдХреЛ рдЕрд▓рдЧ рдХрд░рдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрджрд┐ рдПрдХ рд╕реВрдЪреА рдХреЗ рдкреНрд░рдореБрдЦ рдХреЛ рд╕реНрдерд╛рдиреАрдп рдЪрд░ рдореЗрдВ рдЖрд▓рд╕реА рддрд░реАрдХреЗ рд╕реЗ рдЙрддреНрдкрдиреНрди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЗрд╕реЗ рджрд░рдХрд┐рдирд╛рд░ рдХрд░рддреЗ рд╣реБрдП, рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╣рдЯрд╛рдП рдЧрдП рдиреЛрдбреНрд╕ рдХреЛ рдХрдЪрд░рд╛ рд╕рдВрдЧреНрд░рд╣рдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рдПрдХрддреНрд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдХрд╛рд░реНрдпрдХреНрд░рдо рдЖрдЙрдЯрдСрдлрд╝рдореЗрд░реА рдХреЗ рд╕рд╛рде рджреБрд░реНрдШрдЯрдирд╛рдЧреНрд░рд╕реНрдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИ ред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, C2 JIT рдХрдВрдкрд╛рдЗрд▓рд░ рдЕрдВрддрд┐рдо рдЙрдкрдпреЛрдЧ рдХреЗ рдмрд╛рдж рдЪрд░ рдХреЛ рдЫреЛрдбрд╝ рджреЗрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдорд╛рдирдХ рдЗрд╕ рдмрд╛рдд рдХреА рдЧрд╛рд░рдВрдЯреА рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИ рдФрд░ рдХрд╣рддреЗ рд╣реИрдВ, рд╣реЙрдЯрд╕реНрдкреЙрдЯ рджреБрднрд╛рд╖рд┐рдпрд╛ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред
рдлрд╝рдВрдХреНрд╢рди рдХреЙрд▓ рдХреЗ рдЧрддрд┐рд╢реАрд▓ рдкреНрд░реЗрд╖рдг рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реАрдЦрдирд╛ рднреА рджрд┐рд▓рдЪрд╕реНрдк рдерд╛ред рдореБрдЭреЗ рдпрд╣ рднреА рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рд╣рд╛рд▓ рддрдХ рдХреНрд▓реЛрдЬрд░ рдЬреЗрд╡реАрдПрдо 6 рдХреЛ рд▓рдХреНрд╖рд┐рдд рдХрд░ рд░рд╣рд╛ рдерд╛ рдФрд░ рдХреЗрд╡рд▓ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдЬреЗрд╡реАрдПрдо 8 рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд┐рдпрд╛ рдЧрдпрд╛ред рдЕрдм рд╕рдВрдХрд▓рдХ рд▓реЗрдЦрдХ рдЗрдирд╡реЙрдХреЗрдиреНрдбреЗрдорд┐рдХ рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВред
рд▓реВрдо рдкрд░рд┐рдпреЛрдЬрдирд╛ рдЬрд╛рд╡рд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рд╣рд▓реНрдХрд╛ рдлрд╛рдЗрдмрд░ рд╣реИред рдПрдХ рд╕рд╛рд▓ рдкрд╣рд▓реЗ, рдПрд▓рди рдФрд░ рд░реЙрди рдиреЗ рдкрд╣рд▓реЗ рд╣реА рдЗрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХреА рдереА , рдФрд░ рддрдм рдРрд╕рд╛ рд▓рдЧрд╛ рдХрд┐ рд╕рдм рдХреБрдЫ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдЪрд▓ рд░рд╣рд╛ рдерд╛ рдФрд░ рддреИрдпрд╛рд░ рд╣реЛрдиреЗ рд╡рд╛рд▓рд╛ рдерд╛ред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЗрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдиреЗ рдЕрднреА рддрдХ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ рдЬрд╛рд╡рд╛ рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рдЕрднреА рднреА рднрдВрдбрд╛рд░ рдХреЗ рдПрдХ рдЕрд▓рдЧ рдХрд╛рдВрдЯреЗ рдореЗрдВ рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред рдмреЗрд╢рдХ, рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдмрд╣реБрдд рд╕рд╛рд░реЗ рд╡рд┐рд╡рд░рдгреЛрдВ рдХрд╛ рдирд┐рдкрдЯрд╛рди рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рдерд╛ред
ReentrantLock.lock рд╕реЗ Socket.accept рддрдХ рдХрдИ рдорд╛рдирдХ API рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдлрд╝рд╛рдЗрдмрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ: рдпрджрд┐ рдЗрд╕ рддрд░рд╣ рдХреА рдХреЙрд▓ рдлрд╝рд╛рдЗрдмрд░ рдХреЗ рдЕрдВрджрд░ рдХреА рдЬрд╛рддреА рд╣реИ, рддреЛ рдирд┐рд╖реНрдкрд╛рджрди рд╕реНрдерд┐рддрд┐ рдмрдЪ рдЬрд╛рдПрдЧреА, рд╕реНрдЯреИрдХ рдмреЗрдХрд╛рд░ рд╣реЛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдереНрд░реЗрдб рдЕрдиреНрдп рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рддрдм рддрдХ рдореБрдХреНрдд рд╣реЛ рдЬрд╛рдПрдЧрд╛ рдЬрдм рддрдХ рдХрд┐ рдХреЛрдИ рдлрд╝рд╛рдЗрдмрд░ рдЬрд╛рдЧреГрдд рди рд╣реЛ рдЬрд╛рдП (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП) ReentrantLock.unlock)ред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЕрдЪреНрдЫрд╛ рдкреБрд░рд╛рдирд╛ рд╕рд┐рдВрдХреНрд░реЛрдирд╛рдЗрдЬрд╝реНрдб рдмреНрд▓реЙрдХ рдЕрднреА рднреА рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ, рдЬреЗрд╡реАрдПрдо рдореЗрдВ рд╕рднреА рд╕рд┐рдВрдХреНрд░реЛрдирд╛рдЗрдЬрд╝реЗрд╢рди рд╕рдкреЛрд░реНрдЯ рдХреЛ рдЧрдВрднреАрд░ рд░реВрдк рд╕реЗ рд░рджреНрдж рдХрд┐рдП рдмрд┐рдирд╛ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрджрд┐ рдлрд╛рдЗрдмрд░ рдХреА рд╢реБрд░реБрдЖрдд рдФрд░ рдмреНрд░реЗрдХрдкреЙрдЗрдВрдЯ рдХреЗ рдмреАрдЪ рд╕реНрдЯреИрдХ рдореЗрдВ рджреЗрд╢реА рдлреНрд░реЗрдо рд╣реИрдВ, рддреЛ рд╕реНрдЯреИрдХ рдХрд╛ рдПрдХ рдФрд░ рдЕрдирдЗрдВрдбрд┐рдВрдЧ рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред рдЗрди рджреЛрдиреЛрдВ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдХреБрдЫ рднреА рдирд╣реАрдВ рдлрдЯрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдлрд╛рдЗрдмрд░ рдзрд╛рд░рд╛ рдХреЛ рдЬрд╛рд░реА рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред
рдкреБрд░рд╛рдиреЗ java.lang.Thread рдХреНрд▓рд╛рд╕ рдХреЗ рд╕рд╛рде рдлрд╛рдЗрдмрд░ рдХреА рддреБрд▓рдирд╛ рдХреИрд╕реЗ рдХреА рдЬрд╛рддреА рд╣реИ, рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдХрдИ рд╕рд╡рд╛рд▓ рд╣реИрдВред рдПрдХ рд╕рд╛рд▓ рдкрд╣рд▓реЗ рдлрд╛рдЗрдмрд░ рдХреЛ рдереНрд░реЗрдб рдХрд╛ рдЙрдкрд╡рд░реНрдЧ рдмрдирд╛рдиреЗ рдХрд╛ рд╡рд┐рдЪрд╛рд░ рдерд╛ред рдЕрдм рдЙрдиреНрд╣реЛрдВрдиреЗ рдЗрд╕реЗ рдЕрд╕реНрд╡реАрдХрд╛рд░ рдХрд░ рджрд┐рдпрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдПрдХ рд╕реНрд╡рддрдВрддреНрд░ рд╕рдВрд╕реНрдерд╛ рдмрдирд╛ рджрд┐рдпрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдлрд╛рдЗрдмрд░ рдореЗрдВ рдЕрдиреБрдХрд░рдг рдХрд░рдирд╛ рдПрдХ рдирд┐рдпрдорд┐рдд рдкреНрд░рд╡рд╛рд╣ рдХреЗ рд╕рднреА рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд╛рдлреА рдорд╣рдВрдЧрд╛ рд╣реИред рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдлрд╛рдЗрдмрд░ рдХреЗ рдЕрдВрджрд░ Thread.currentThread () рдЬреЗрдирд░реЗрдЯ рдХрд┐рдП рдЧрдП рдорд┐рд╢реНрд░рдг рдХреЛ рд▓реМрдЯрд╛рдПрдЧрд╛, рди рдХрд┐ рдЙрд╕ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдереНрд░реЗрдб рдХреЛ рдЬрд┐рд╕рдореЗрдВ рд╕рдм рдХреБрдЫ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд▓реЗрдХрд┐рди рд░реЛрдбрд╝рд╛ рдХрд╛рдлреА рдЕрдЪреНрдЫрд╛ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░реЗрдЧрд╛ (рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдХрд╛рдо рдХреЛ рдзреАрдорд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реИ)ред рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╡рд┐рдЪрд╛рд░ рдпрд╣ рд╣реИ рдХрд┐ рдЬрд┐рди рдкрд░рд┐рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ рдлрд╛рдЗрдмрд░ рдХреЗ рдЕрдВрджрд░ рдлрд╛рдЗрдмрд░ рдЪрд▓ рд░рд╣рд╛ рд╣реИ, рдЙрд╕реЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдореАрдбрд┐рдпрд╛ рд╕реНрдЯреНрд░реАрдо рдирд╣реАрдВ рджреЗ рд░рд╣рд╛ рд╣реИред рдпрд╣ рдЦрддрд░рдирд╛рдХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдПрдХ рдлрд╛рдЗрдмрд░ рдЖрд╕рд╛рдиреА рд╕реЗ рджреВрд╕рд░реЗ рдзрд╛рдЧреЗ рдореЗрдВ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдзреЛрдЦрд╛ рдЬрд╛рд░реА рд░рд╣реЗрдЧрд╛ред
рдпрд╣ рдЙрддреНрд╕реБрдХ рд╣реИ рдХрд┐ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдкреНрд░рддрд┐рднрд╛рдЧрд┐рдпреЛрдВ рдиреЗ рдЕрдкрдиреЗ рдЬреАрд╡рди рдХреЛ рдЖрд╕рд╛рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдореБрдЦреНрдп JDK рднрдВрдбрд╛рд░ рдореЗрдВ рдХреБрдЫ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдмрджрд▓рд╛рд╡ рдХрд┐рдП рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЬрд╛рд╡рд╛ 13 рдореЗрдВ, рдкреНрд░рджрд░реНрд╢рди рд╡рд┐рдзрд┐ рдХреЛ рдЬрд╛рд╡рд╛ рдореЗрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдореВрд▓ рдХреЛрдб рд╕реЗ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдерд╛, рдЬрд┐рд╕рд╕реЗ рдкреНрд░рджрд░реНрд╢рди рдореЗрдВ рд▓рдЧрднрдЧ 50 рдЧреБрдирд╛ рд╡реГрджреНрдзрд┐ рд╣реБрдИред рдпрд╣ рдПрдХ рд▓реВрдо рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреНрдпреЛрдВ рд╣реИ? рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рд╡рд┐рд╢реЗрд╖ рд╡рд┐рдзрд┐ рдмрд╣реБрдд рдмрд╛рд░ рд╕реНрдЯреИрдХ рдХреЗ рдмреАрдЪ рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИ, рдФрд░ рдЬрдм рдпрд╣ рджреЗрд╢реА рдерд╛, рддреЛ рдЗрд╕ рд╕реНрдЯреИрдХ рдХреЗ рдлрд╛рдЗрдмрд░ рдмрдВрдж рдирд╣реАрдВ рд╣реБрдПред рдПрдХ рддрд░рд╣ рд╕реЗ рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп, рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд▓рд╛рднрд╛рдиреНрд╡рд┐рдд рд╣реЛ рд░рд╣реА рд╣реИред
рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдкреГрд╖реНрда рдкрд░, рдЖрдк рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рд╕реНрд░реЛрдд рдЯреНрд░реА рдбрд╛рдЙрдирд▓реЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдмрд╛рдЗрдирд░реА рдЕрд╕реЗрдВрдмрд▓реА рднреА рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдЖрдк рдЖрдЬ рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЦреЗрд▓ рд╕рдХрддреЗ рд╣реИрдВред рд╣рдореЗрдВ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдЖрдиреЗ рд╡рд╛рд▓реЗ рд╡рд░реНрд╖реЛрдВ рдореЗрдВ рд╕рдм рдХреБрдЫ рдПрдХреАрдХреГрдд рд╣реЛ рдЬрд╛рдПрдЧрд╛ред
рдмреНрд░рд╛рдпрди рдЧреЛрдПрддреНрдЬрд╝ - рдХрд╛рд░реНрдпрд╢рд╛рд▓рд╛ "рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдПрдореНрдмрд░"
рд╕рдорд╛рдирд╛рдВрддрд░ рдореЗрдВ, рд▓реВрдо рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рдХрд╛рд░реНрдпрд╢рд╛рд▓рд╛ рдЪрд▓ рд░рд╣реА рдереА, рд▓реЗрдХрд┐рди рдореИрдВ рдЕрдВрдмрд░ рдЧрдпрд╛ред рдпрд╣рд╛рдВ рд╣рдордиреЗ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдФрд░ рдореБрдЦреНрдп JEP рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рдЪрд░реНрдЪрд╛ рдХреА рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдХрд╛рдо рдЪрд▓ рд░рд╣рд╛ рд╣реИ - рдкреИрдЯрд░реНрди рдорд┐рд▓рд╛рди , рд░рд┐рдХреЙрд░реНрдбреНрд╕ рдФрд░ рд╕реАрд▓ рдкреНрд░рдХрд╛рд░ ред рддрдм рдкреВрд░реА рдЪрд░реНрдЪрд╛ рдбрд╛рдВрдЯ рдХреЗ рдирд┐рдЬреА рдореБрджреНрджреЗ рдореЗрдВ рдЖ рдЧрдИред рдореИрдВрдиреЗ рдкрд┐рдЫрд▓реЗ рд╕рд╛рд▓ рдЬреЛрдХрд░ рд╕рдореНрдореЗрд▓рди рдореЗрдВ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХреА рдереА , рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рдмрд╣реБрдд рдХреБрдЫ рдирдпрд╛ рдирд╣реАрдВ рдХрд╣рд╛ рдЧрдпрд╛ рдерд╛ред рдореИрдВрдиреЗ рдПрдХ рд╡рд┐рдЪрд╛рд░ рдХреЛ рдирд┐рд╣рд┐рдд рд╕рдВрдШ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд╕рд╛рде рдзрдХреЗрд▓рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдЬреИрд╕реЗ if(obj instanceof Integer x || obj instanceof Long x) use(x.longValue())
, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдЙрддреНрд╕рд╛рд╣ рдирд╣реАрдВ рджреЗрдЦрд╛ред
рд╕рднреА рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдПрдХ рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд╕рдВрдмрдВрдз рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдП рдмрд┐рдирд╛ рд╡рд┐рднрд┐рдиреНрди рдзрд╛рд░рд╛рдУрдВ рд╕реЗ рд╕рдорд╛рди рдЧреИрд░-рд╡рд╛рд╖реНрдкрд╢реАрд▓ рдХреНрд╖реЗрддреНрд░ рдпрд╛ рд╕рд░рдгреА рддрддреНрд╡ рдХреЛ рдкрдврд╝рдиреЗ рдФрд░ рд▓рд┐рдЦрдиреЗ рдХреЗ рд░реВрдк рдореЗрдВ рдбреЗрдЯрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реА рджреМрдбрд╝ рдХреЗ рд▓рд┐рдП рдЦреЛрдЬ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП Google рд╕реЗ рдПрдХ рдЕрджреНрднреБрдд рдкрд░рд┐рдпреЛрдЬрдирд╛ред рдореВрд▓ рдХреЛрдб рдХреЗ рд▓рд┐рдП рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рдореВрд▓ рд░реВрдк рд╕реЗ LLVM рдореЙрдбреНрдпреВрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдерд╛, рдФрд░ рдЕрдм рдЗрд╕реЗ рд╣реЙрдЯрд╕реНрдкреЙрдЯ рдХреЗ рд▓рд┐рдП рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрд╣ рдПрдХ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ OpenJDK рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╣реИ рдЬрд┐рд╕рдХреА рдореЗрд▓рд┐рдВрдЧ рд╕реВрдЪреА рдФрд░ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рд╣реИред
рд▓реЗрдЦрдХреЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдмрд╛рдд рдЕрдм рдХрд╛рдлреА рдХрд╛рдо рдХрд░ рд░рд╣реА рд╣реИ, рдЖрдк рдЗрдХрдЯреНрдард╛ рдФрд░ рдЦреЗрд▓ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╡рд╣ рди рдХреЗрд╡рд▓ рдЬрд╛рд╡рд╛ рдХреЛрдб рдореЗрдВ, рдмрд▓реНрдХрд┐ рджреЗрд╢реА рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рдХреЛрдб рдореЗрдВ рднреА рд░реЗрд╕рд┐рдВрдЧ рдкрд╛рддреА рд╣реИред рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рдХреЗ рдХреЛрдб рдореЗрдВ рджреМрдбрд╝ рдХреЛ рд╕реНрд╡рдпрдВ рдирд╣реАрдВ рдЦреЛрдЬрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╡рд╣рд╛рдВ рд╕рднреА рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝реЗрд╢рди рдкреНрд░рд╛рдЗрдореЗрдЯрд┐рд╡реНрд╕ рдЕрдкрдиреЗ рддрд░реАрдХреЗ рд╕реЗ рд▓рд┐рдЦреЗ рдЧрдП рд╣реИрдВ, рдФрд░ рдЯреАрдПрд╕рдПрди рдЙрдиреНрд╣реЗрдВ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реИред рд▓реЗрдЦрдХреЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдЯреАрд╕рди рдЭреВрдареА рд╕рдХрд╛рд░рд╛рддреНрдордХрддрд╛ рдирд╣реАрдВ рджреЗрддреЗ рд╣реИрдВред
рдореБрдЦреНрдп рд╕рдорд╕реНрдпрд╛ рдкреНрд░рджрд░реНрд╢рди рд╣реИред рдЕрдм рдЬрд╛рд╡рд╛ рдХреЛрдб рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ рджреБрднрд╛рд╖рд┐рдпрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдХреНрд░рдорд╢рдГ, JIT рд╕рдВрдХрд▓рди рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрдХреНрд╖рдо рд╣реИ, рдФрд░ рджреБрднрд╛рд╖рд┐рдпрд╛, рдЬреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдзреАрдорд╛ рд╣реИ, рдХрдИ рдмрд╛рд░ рдзреАрдорд╛ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЖрдкрдХреЗ рдкрд╛рд╕ рдкрд░реНрдпрд╛рдкреНрдд рд╕рдВрд╕рд╛рдзрди рд╣реИрдВ (Google рдХреЗ рдкрд╛рд╕, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ), рддреЛ рдЖрдк рдХрднреА-рдХрднрд╛рд░ TSan рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдкрдиреЗ рдкрд░реАрдХреНрд╖рдг рд╕реВрдЯ рдХреЛ рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВред рдЬреЗрдЖрдИрдЯреА рдореЗрдВ рдЗрдВрд╕реНрдЯреНрд░реВрдореЗрдВрдЯреЗрд╢рди рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреА рднреА рдпреЛрдЬрдирд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЬреЗрд╡реАрдПрдо рдореЗрдВ рдпрд╣ рдЕрдзрд┐рдХ рдЧрдВрднреАрд░ рд╣рд╕реНрддрдХреНрд╖реЗрдк рд╣реИред
рдХрд┐рд╕реА рдиреЗ рдкреВрдЫрд╛ рдХрд┐ рдХреНрдпрд╛ рдЬреЗрдЖрдИрдЯреА рд╕рдВрдХрд▓рди рдХреЛ рдЕрдХреНрд╖рдо рдХрд░рдиреЗ рд╕реЗ рдкрд░рд┐рдгрд╛рдо рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рджреБрднрд╛рд╖рд┐рдпрд╛ рдкрд░ рдХреБрдЫ рджреМрдбрд╝ рджрд┐рдЦрд╛рдИ рдирд╣реАрдВ рджреЗ рд╕рдХрддреЗ рд╣реИрдВред рд╕реНрдкреАрдХрд░ рдиреЗ рдЗрд╕ рд╕рдВрднрд╛рд╡рдирд╛ рдХреЛ рдЦрд╛рд░рд┐рдЬ рдирд╣реАрдВ рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди рдХрд╣рд╛ рдХрд┐ рдЙрдиреНрд╣реЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рджреМрдбрд╝ рдХрд╛ рдкрддрд╛ рдЪрд▓рд╛ рдерд╛, рдЬрд┐рд╕реЗ рд░реЗрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд▓рдВрдмрд╛ рд╕рдордп рд▓рдЧреЗрдЧрд╛ред рдЯреАрдПрд╕рдПрди рдХреЗ рддрд╣рдд рдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдЪрд▓рд╛рддреЗ рд╕рдордп рд╕рд╛рд╡рдзрд╛рди рд░рд╣реЗрдВ: рдЖрдкрдХреЛ рдЕрдкреНрд░рд┐рдп рд╕рдЪреНрдЪрд╛рдИ рдХрд╛ рдкрддрд╛ рдЪрд▓ рд╕рдХрддрд╛ рд╣реИред
рд╣рд░ рдХреЛрдИ рдЬрд╛рд╡рд╛ рдореЗрдВ рдореВрд▓реНрдп рдкреНрд░рдХрд╛рд░реЛрдВ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░ рд░рд╣рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреЛрдИ рдирд╣реАрдВ рдЬрд╛рдирддрд╛ рдХрд┐ рд╡реЗ рдХрдм рджрд┐рдЦрд╛рдИ рджреЗрдВрдЧреЗред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЖрдВрджреЛрд▓рдиреЛрдВ рддреЗрдЬреА рд╕реЗ рдЧрдВрднреАрд░ рд╣реИрдВред рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╡рд░реНрддрдорд╛рди L2 рдореАрд▓ рдХреЗ рдкрддреНрдерд░ рдХреЗ рд╕рд╛рде рдкрд░реАрдХреНрд╖рдг рдмрд╛рдЗрдирд░реА рдЕрд╕реЗрдВрдмрд▓реА рд╣реИрдВ ред рд╡рд░реНрддрдорд╛рди рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ, рдкреВрд░рд╛ рд╡рд▓реНрд▓рд╛рд╣ рдПрд▓ 100 рдореАрд▓ рдХреЗ рдкрддреНрдерд░ рдкрд░ рдЖрдПрдЧрд╛, рд▓реЗрдХрд┐рди рд▓реЗрдЦрдХ рдЕрднреА рднреА рдЖрд╢рд╛рд╡рд╛рджреА рд╣реИрдВ рдФрд░ рдорд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рджреЛ рдкреНрд░рддрд┐рд╢рдд рд╕реЗ рдЕрдзрд┐рдХ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рддреЛ, рднрд╛рд╖рд╛ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЗрдирд▓рд╛рдЗрди рд╕рдВрд╢реЛрдзрдХ рд╡рд╛рд▓реА рдХрдХреНрд╖рд╛рдПрдВ рд╣реИрдВ, рдЬрд┐рдиреНрд╣реЗрдВ рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рджреНрд╡рд╛рд░рд╛ рдПрдХ рд╡рд┐рд╢реЗрд╖ рддрд░реАрдХреЗ рд╕реЗ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдРрд╕реА рдХрдХреНрд╖рд╛рдУрдВ рдХреЗ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЛ рдЕрдиреНрдп рд╡рд╕реНрддреБрдУрдВ рдореЗрдВ рдПрдореНрдмреЗрдб рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдЗрдирд▓рд╛рдЗрди рдХрдХреНрд╖рд╛рдУрдВ рдХреЗ рдЙрджрд╛рд╣рд░рдгреЛрдВ рд╡рд╛рд▓реЗ рдлреНрд▓реИрдЯ рд╕рд░рдгрд┐рдпреЛрдВ рднреА рд╕рдВрднрд╡ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рд╣реЗрдбрд░ рдирд╣реАрдВ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдХреЛрдИ рдкрд╣рдЪрд╛рди рдирд╣реАрдВ рд╣реИ, рд╣реИрд╢ рдХреЛрдб рдХреА рдЧрдгрдирд╛ рдлрд╝реАрд▓реНрдб рджреНрд╡рд╛рд░рд╛ рдХреА рдЬрд╛рддреА рд╣реИ, ==
рдлрд╝реАрд▓реНрдб рджреНрд╡рд╛рд░рд╛ рднреА, рдРрд╕реЗ рд╡рд░реНрдЧ рдкрд░ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝ рдпрд╛ Object.wait()
рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдПрдХ IllegalMonitorStestException рдмрдврд╝рд╛рдПрдЧрд╛ред рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреЗ рдПрдХ рдЪрд░ рдХреЗ рд▓рд┐рдП null
рд▓реЗрдЦрди, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред рд╣рд╛рд▓рд╛рдВрдХрд┐, рд▓реЗрдЦрдХ рдПрдХ рд╡рд┐рдХрд▓реНрдк рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВ: рдпрджрд┐ рдЖрдкрдиреЗ рдПрдХ рдЗрдирд▓рд╛рдЗрди-рдХреНрд▓рд╛рд╕ Point
рдШреЛрд╖рд┐рдд рдХрд┐рдпрд╛ рд╣реИ, рддреЛ рдЖрдк рдПрдХ рдлрд╝реАрд▓реНрдб рдпрд╛ рдкреНрд░рдХрд╛рд░ рдХреЗ рдПрдХ рдЪрд░ (рдЖрд╢реНрдЪрд░реНрдп-рдЖрд╢реНрдЪрд░реНрдп) рдХреА рдШреЛрд╖рдгрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ Point?
, рдФрд░ рдлрд┐рд░ рдПрдХ рд╣реЗрдбрд░, рдкрд╣рдЪрд╛рди, рдФрд░ null
рд╕рд╛рде рдвреЗрд░ (рдЬреИрд╕реЗ рдореБрдХреНрдХреЗрдмрд╛рдЬреА) рдкрд░ рдПрдХ рдкреВрд░реНрдг рдСрдмреНрдЬреЗрдХреНрдЯ null
рд╡рд╣рд╛рдБ рдореЗрдВ рдлрд┐рдЯ рд╣реЛрдЧрд╛ред
рдЧрдВрднреАрд░ рдЦреБрд▓реЗ рдкреНрд░рд╢реНрди рдЬреЗрдиреЗрд░рд┐рдХ рдХреА рд╡рд┐рд╢реЗрд╖рдЬреНрдЮрддрд╛ рдФрд░ рдореМрдЬреВрджрд╛ рд╡рд░реНрдЧреЛрдВ рдХреЗ рдкреНрд░рд╡рд╛рд╕рди (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, Optional
) рдПрдХ рдЗрдирд▓рд╛рдЗрди рдХрдХреНрд╖рд╛ рдореЗрдВ рдмрдиреЗ рд░рд╣рддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдореМрдЬреВрджрд╛ рдХреЛрдб рдХреЛ рди рддреЛрдбрд╝реЗ рдЬрд╛ рд╕рдХреЗ (рд╣рд╛рдВ, рд▓реЛрдЧ Optional
рдкреНрд░рдХрд╛рд░ рдХреЗ рдЪрд░ рдореЗрдВ null
рд▓рд┐рдЦрддреЗ рд╣реИрдВ)ред рдлрд┐рд░ рднреА, рдЪрд┐рддреНрд░ рдШреВрдорддрд╛ рд╣реИ, рдФрд░ рдЕрдВрддрд░ рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИред
рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдЖрд╢реНрдЪрд░реНрдп рдХреА рдмрд╛рдд рдереА рдХрд┐ рдореВрд▓ рдЬрд╛рд╡рд╛ рдЧреВрдврд╝ рд╡реНрдпрдХреНрддрд┐ рдХреЗ рд╕рд╣-рд▓реЗрдЦрдХ рдиреАрд▓ рдЧреБрдЯреЗрд░рд░, рдЬреЛ рдЕрдм рдорд╛рдЗрдХреНрд░реЛрд╕реЙрдлреНрдЯ рдкрд░ .Net рд░рдирдЯрд╛рдЗрдо рдкрд░ рд╣реИрдВред рдЬреЗрд╡реАрдПрдо рдПрд▓рдПрд╕ рдкрд░ рд╕реАрдПрд▓рдЖрд░ (рддрдерд╛рдХрдерд┐рддред рдиреЗрдЯ рд░рдирдЯрд╛рдЗрдо) рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рд░рд┐рдкреЛрд░реНрдЯ рджреЗрдЦрдирд╛ рднреА рдЖрд╢реНрдЪрд░реНрдпрдЪрдХрд┐рдд рдерд╛ред рд▓реЗрдХрд┐рди рдЕрдиреНрдп рджреБрдирд┐рдпрд╛ рдХреЗ рд╕рд╣рдпреЛрдЧрд┐рдпреЛрдВ рдХреЗ рдЕрдиреБрднрд╡ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдореЗрд╢рд╛ рдЙрдкрдпреЛрдЧреА рд╣реЛрддрд╛ рд╣реИред рд░рд┐рдкреЛрд░реНрдЯ рд╕реАрдПрд▓рдЖрд░ рдореЗрдВ рд╕рдВрджрд░реНрдн рдФрд░ рд╕рдВрдХреЗрдд рдХреА рдХрд┐рд╕реНрдореЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рддреА рд╣реИ, рдореВрд▓реНрдп рдкреНрд░рдХрд╛рд░ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдмрд╛рдЗрдЯрдХреЛрдб рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ, рдФрд░ рдХреИрд╕реЗ рдХрдо рдХрд┐рдП рдЧрдП рд╡рд┐рд╢реЗрд╖реАрдХреГрдд рд╕рд╛рдорд╛рдиреНрдпреАрдХреГрдд рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВред рдпрд╣ рдЬрд╛рдирдирд╛ рджрд┐рд▓рдЪрд╕реНрдк рдерд╛ рдХрд┐ .Net рдореЗрдВ рдореВрд▓реНрдп рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд▓рдХреНрд╖реНрдпреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдореВрд▓ рдХреЛрдб рдХреЗ рд╕рд╛рде рдПрдХ рдЗрдВрдЯрд░реЛрдк рд╣реИред рдЗрд╕ рд╡рдЬрд╣ рд╕реЗ, рдореВрд▓реНрдп рдкреНрд░рдХрд╛рд░реЛрдВ рдореЗрдВ рдлрд╝реАрд▓реНрдбреНрд╕ рдХрд╛ рд╕реНрдерд╛рди рд╕рдЦреНрддреА рд╕реЗ рддрдп рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдмрд┐рдирд╛ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЗ рд╕рдВрд░рдЪрдирд╛ рдкрд░ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЬреЗрд╡реАрдПрдо рдХрд╛ рдРрд╕рд╛ рдХрд╛рдо рдХрднреА рдирд╣реАрдВ рд╣реБрдЖ рд╣реИ, рдФрд░ рджреЗрд╢реА рдЗрдВрдЯрд░реЙрдк рдХреЗ рд╕рд╛рде рдХреНрдпрд╛ рдХрд░рдирд╛ рд╣реИ - рдиреАрдЪреЗ рджреЗрдЦреЗрдВред
рдкрд┐рдЫрд▓реЗ рд╕рд╛рд▓ рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдХреЛ рдлрд┐рд░ рд╕реЗ рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВред рдлрд┐рд░, рд╕рд╡рд╛рд▓ рдпрд╣ рд╣реИ рдХрд┐ рдЙрдиреНрд╣реЛрдВрдиреЗ рдЕрднреА рднреА рдХреБрдЫ рднреА рдЬрд╛рд░реА рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ, рдЕрдЧрд░ рдПрдХ рд╕рд╛рд▓ рдкрд╣рд▓реЗ рд╕рдм рдХреБрдЫ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд▓рдЧ рд░рд╣рд╛ рдерд╛ред
рдПрдХ рд╡реЗрдХреНрдЯрд░ рдХрдИ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХрд╛ рдПрдХ рд╕рдВрдЧреНрд░рд╣ рд╣реИ, рдЬрд┐рд╕реЗ AVX512 рдХреЗ рд▓рд┐рдП zmm0 рдЬреИрд╕реЗ рдПрдХрд▓ рд╡реЗрдХреНрдЯрд░ рд░рдЬрд┐рд╕реНрдЯрд░ рджреНрд╡рд╛рд░рд╛ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдореЗрдВ рджрд░реНрд╢рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╡реИрдХреНрдЯрд░ рдореЗрдВ, рдЖрдк рд╕рд░рдгрд┐рдпреЛрдВ рд╕реЗ рдбреЗрдЯрд╛ рд▓реЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрди рдкрд░ рддрддреНрд╡-рд╡рд╛рд░ рдЧреБрдгрди рдЬреИрд╕реЗ рдСрдкрд░реЗрд╢рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рд╡рд╛рдкрд╕ рдлреЗрдВрдХ рд╕рдХрддреЗ рд╣реИрдВред рд╕рднреА рдирд┐рд░реНрджреЗрд╢ рдЬрд┐рдирдХреЗ рд▓рд┐рдП рдкреНрд░реЛрд╕реЗрд╕рд░ рдирд┐рд░реНрджреЗрд╢ рд╣реИрдВ, рдЗрди рдирд┐рд░реНрджреЗрд╢реЛрдВ рдореЗрдВ рдЬреЗрдЖрдИрдЯреА рдХрдВрдкрд╛рдЗрд▓рд░ рджреНрд╡рд╛рд░рд╛ рдЖрдВрддрд░рд┐рдХ рд░реВрдк рд╕реЗ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рд╕рдВрдЪрд╛рд▓рди рдХреА рд╕рдВрдЦреНрдпрд╛ рдмрд╕ рдмрд╣реБрдд рдмрдбрд╝реА рд╣реИред рдпрджрд┐ рдХреБрдЫ рдЧрд╛рдпрдм рд╣реИ, рддреЛ рдПрдХ рд╡реИрдХрд▓реНрдкрд┐рдХ рдзреАрдореА рдЧрддрд┐ рд╕реЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╡реЗрдХреНрдЯрд░ рдЗрдВрдЯрд░рдореАрдбрд┐рдПрдЯ рдСрдмреНрдЬреЗрдХреНрдЯ рдЖрджрд░реНрд╢ рд░реВрдк рд╕реЗ рдирд┐рд░реНрдорд┐рдд рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВ; рд╡рд┐рд╢реНрд▓реЗрд╖рдг рд╡рд┐рд╢реНрд▓реЗрд╖рдг рд╕реЗ рдмрдЪрддреЗ рд╣реИрдВред рд╕рднреА рдорд╛рдирдХ рдХрдВрдкреНрдпреВрдЯрд┐рдВрдЧ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдПрдХ рдзрдорд╛рдХреЗ рдХреЗ рд╕рд╛рде рд╕рджрд┐рд╢ рд╣реЛрддреЗ рд╣реИрдВ, рдЬреЛ рдЖрдкрдХреЗ рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреА рд╕рднреА рд╢рдХреНрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред
рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рд▓реЗрдЦрдХреЛрдВ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рд╡рд▓реНрдЧрд▓реНрд▓рд╛ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП: рдмрдЪрдирд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдирд╛рдЬреБрдХ рд╣реИ рдФрд░ рдЖрд╕рд╛рдиреА рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдпреЗ рд╡реИрдХреНрдЯрд░ рдмрд╕ рдЗрдирд▓рд╛рдЗрди рдХрдХреНрд╖рд╛рдПрдВ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП, рдлрд┐рд░ рд╕рднреА рд╕рдорд╕реНрдпрд╛рдПрдВ рдЧрд╛рдпрдм рд╣реЛ рдЬрд╛рдПрдВрдЧреАред рдпрд╣ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рдПрдкреАрдЖрдИ рд╡рд╛рд▓рдЧреНрд▓рд╛ рдХреЗ рдкрд╣рд▓реЗ рд╕рдВрд╕реНрдХрд░рдг рд╕реЗ рдкрд╣рд▓реЗ рднреА рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рдмрд╣реБрдд рдЕрдзрд┐рдХ рддреИрдпрд╛рд░ рд▓рдЧрддрд╛ рд╣реИред рдХреЛрдб рдХреЗ рд╕рдорд░реНрдерди рдХреЗ рд╕рд╛рде рдХрдард┐рдирд╛рдЗрдпреЛрдВ рдирд╛рдордХ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рдмреАрдЪред рд░рдЬрд┐рд╕реНрдЯрд░реЛрдВ рдХреЗ рд╡рд┐рднрд┐рдиреНрди рдЖрдХрд╛рд░реЛрдВ рдФрд░ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреЗ рдбреЗрдЯрд╛ рдХреЗ рд▓рд┐рдП рдХрдИ рджреЛрд╣рд░рд╛рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдЯреБрдХрдбрд╝реЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЕрдзрд┐рдХрд╛рдВрд╢ рдХреЛрдб рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕ рд╕реЗ рдЙрддреНрдкрдиреНрди рд╣реЛрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рдмрдирд╛рдП рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рджрд░реНрдж рд╣реЛрддрд╛ рд╣реИред
рдЙрдкрдпреЛрдЧ рднреА рдЕрдкреВрд░реНрдг рд╣реИред рдЬрд╛рд╡рд╛ рдореЗрдВ рдХреЛрдИ рдСрдкрд░реЗрдЯрд░ рдЕрдзрд┐рднрд╛рд░ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЧрдгрд┐рдд рдмрджрд╕реВрд░рдд рджрд┐рдЦрддрд╛ рд╣реИ: max(va-vb*42, 0)
рдмрдЬрд╛рдп max(va-vb*42, 0)
рдЖрдкрдХреЛ va.lanewise(SUB, vb.lanewise(MUL, 42)).lanewise(MAX, 0)
ред C # рдХреА рддрд░рд╣ AST lambdas рддрдХ рдкрд╣реБрдВрдЪрдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ред рддрдм MYOP = binOp((va, vb) -> max(va-vb*42, 0))
рдЬреИрд╕реЗ рдХрд╕реНрдЯрдо MYOP = binOp((va, vb) -> max(va-vb*42, 0))
рдСрдкрд░реЗрд╢рди рдЙрддреНрдкрдиреНрди рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реЛрдЧрд╛ рдФрд░ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
30 рдЬреБрд▓рд╛рдИ
рджреВрд╕рд░рд╛ рджрд┐рди рд╕рдВрдХрд▓рди рдХреЗ рдЭрдВрдбреЗ рдХреЗ рдиреАрдЪреЗ рд╕реЗ рдЧреБрдЬрд░рд╛ред
JVM OpenJ9 рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд╛ рдПрдХ рд╕рджрд╕реНрдп рдЖрдИрдмреАрдПрдо рдХрд░реНрдордЪрд╛рд░реА, JIT рдФрд░ AOT рд╕рдВрдХрд▓рди рдХреЗ рд╕рд╛рде рдЕрдкрдиреЗ рдЕрдиреБрднрд╡ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рддрд╛ рд╣реИред рд╣рдореЗрд╢рд╛ рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реЛрддреА рд╣реИрдВ: рдЬреЗрдЖрдИрдЯреА рдПрдХ рдзреАрдорд╛ рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╡рд╛рд░реНрдорд┐рдВрдЧ рд╣реИ; рд╕рдВрдХрд▓рди рдХреЗ рд▓рд┐рдП рд╕реА.рдкреА.рдпреВ. рдПрдУрдЯреА - рдПрдХ рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдХреА рдХрдореА рдХреЗ рдХрд╛рд░рдг рдЙрдк-рдЧреЛрдж рд▓реЗрдиреЗ рдХрд╛ рдкреНрд░рджрд░реНрд╢рди (рдпрд╣ рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП рд╕рдВрднрд╡ рд╣реИ, рд▓реЗрдХрд┐рди рдЧреИрд░-рддреБрдЪреНрдЫ рдФрд░ рд╣рдореЗрд╢рд╛ рд╕рдВрдХрд▓рди рдХреЗ рджреМрд░рд╛рди рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдирд┐рд╖реНрдкрд╛рджрди рдореЗрдВ рдореЗрд▓ рдирд╣реАрдВ рдЦрд╛рддрд╛ рд╣реИ), рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЕрдзрд┐рдХ рдХрдард┐рди рд╣реИ, рд▓рдХреНрд╖реНрдп рдордВрдЪ, рдУрдПрд╕, рдХрдЪрд░рд╛ рдХрд▓реЗрдХреНрдЯрд░ рдХреЗ рд▓рд┐рдП рдмрд╛рдзреНрдп рдХрд░реЗрдВред рдХреБрдЫ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рджреГрд╖реНрдЯрд┐рдХреЛрдгреЛрдВ рдХреЛ рдорд┐рд▓рд╛рдХрд░ рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ: AOT- рд╕рдВрдХрд▓рд┐рдд рдХреЛрдб рд╕реЗ рд╢реБрд░реВ рдХрд░рдирд╛ рдФрд░ рдлрд┐рд░ JIT рдХреЗ рд╕рд╛рде рд╕рдорд╛рдкреНрдд рдХрд░рдирд╛ред рдЗрд╕ рд╕рдм рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдХрд▓реНрдк JIT рдХреИрд╢рд┐рдВрдЧ рд╣реИред рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдмрд╣реБрдд рд╕рд╛рд░реА рдЖрднрд╛рд╕реА рдорд╢реАрдиреЗрдВ (рд╣реИрд▓реЛ, рдорд╛рдЗрдХреНрд░реЛрд╕реЗрд░реНрд╡рд┐рд╕) рд╣реИрдВ, рддреЛ рд╡реЗ рд╕рднреА рдПрдХ рдЕрд▓рдЧ рд╕реЗрд╡рд╛ рдореЗрдВ рдмрджрд▓ рдЬрд╛рддреА рд╣реИрдВ - рдЬреЗрдЖрдИрдЯреА рдХрдВрдкрд╛рдЗрд▓рд░ (рд╣рд╛рдБ, JITaaS), рдЬрд╣рд╛рдВ рд╕рдм рдХреБрдЫ рдПрдХ рд╡рдпрд╕реНрдХ, рдСрд░реНрдХреЗрд╕реНрдЯреНрд░реЗрд╢рди, рд▓реЛрдб рд╕рдВрддреБрд▓рди рдХреА рддрд░рд╣ рд╣реЛрддрд╛ рд╣реИред рдпрд╣ рд╕реЗрд╡рд╛ рд╕рдВрдХрд▓рди рдХрд░рддреА рд╣реИред рдЕрдХреНрд╕рд░, рд╡рд╣ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╡рд┐рдзрд┐ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рдХреЛрдб рджреЗ рд╕рдХрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╡рд┐рдзрд┐ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рдФрд░ рдЬреЗрд╡реАрдПрдо рдкрд░ рд╕рдВрдХрд▓рд┐рдд рдХреА рдЧрдИ рд╣реИред рдпрд╣ рд╡рд╛рд░реНрдо-рдЕрдк рдореЗрдВ рдмрд╣реБрдд рд╕реБрдзрд╛рд░ рдХрд░рддрд╛ рд╣реИ, рдЖрдкрдХреА JVM рд╕реЗрд╡рд╛ рд╕реЗ рд╕рдВрд╕рд╛рдзрди рдЦрдкрдд рдХреЛ рд╣рдЯрд╛рддрд╛ рд╣реИ, рдФрд░ рдЖрдо рддреМрд░ рдкрд░ рдХреБрд▓ рд╕рдВрд╕рд╛рдзрди рдЦрдкрдд рдХреЛ рдХрдо рдХрд░рддрд╛ рд╣реИред
рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, JITaaS JVM рдХреА рджреБрдирд┐рдпрд╛ рдореЗрдВ рдЕрдЧрд▓реА рдЪрд░реНрдЪрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдореИрдВрдиреЗ рдпрд╣ рдирд╣реАрдВ рдкрдХрдбрд╝рд╛ рдХрд┐ рдХреНрдпрд╛ рдЗрд╕реЗ рдЕрднреА рдЦреЗрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдпрд╛ рдХреНрдпрд╛ рдпрд╣ рдЕрднреА рднреА рдПрдХ рдмрдВрдж рд╡рд┐рдХрд╛рд╕ рд╣реИред
GraalVM рдиреЗрдЯрд┐рд╡ рдЗрдореЗрдЬ рдПрдХ рдЬрд╛рд╡рд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╣реИ рдЬреЛ рдореВрд▓ рдХреЛрдб рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рд╣реИ рдЬреЛ JVM рдХреЗ рдмрд┐рдирд╛ рдЪрд▓рддрд╛ рд╣реИ (AOT рдХрдВрдкрд╛рдЗрд▓рд░ рдЬреИрд╕реЗ jotot рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рдВрдХрд▓рд┐рдд рдореЙрдбреНрдпреВрд▓ рдХреЗ рд╡рд┐рдкрд░реАрдд)ред рдЕрдзрд┐рдХ рд╕рдЯреАрдХ рд░реВрдк рд╕реЗ, рдпрд╣ рдХрд╛рдлреА рдЬрд╛рд╡рд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдирд╣реАрдВ рд╣реИред рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЙрд╕реЗ рдПрдХ рдмрдВрдж рджреБрдирд┐рдпрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рдд, рд╕рднреА рдХреЛрдб рд╕рдВрдХрд▓рди рдЪрд░рдг рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрдиреЗ рдЪрд╛рд╣рд┐рдП, рдХреЛрдИ Class.forName рдирд╣реАрдВред рдЖрдк рдкреНрд░рддрд┐рдмрд┐рдВрдм рдФрд░ рд╡рд┐рдзрд┐ рд╣реИрдВрдбрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЬрдм рдЖрдк рд╕рдВрдХрд▓рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдЖрдкрдХреЛ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдпрд╣ рдмрддрд╛рдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдкреНрд░рддрд┐рдмрд┐рдВрдм рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХреМрди рд╕реА рдХрдХреНрд╖рд╛рдПрдВ рдФрд░ рд╡рд┐рдзрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рдПрдХ рдФрд░ рдордЬреЗрджрд╛рд░ рдмрд╛рдд рд╣реИ рдХреНрд▓рд╛рд╕ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝реЗрд╢рдиред рд╕рдВрдХрд▓рди рдХреЗ рджреМрд░рд╛рди рдХрдИ рдХрдХреНрд╖рд╛рдПрдВ рдЖрд░рдореНрднрд┐рдХ рд╣реИрдВред рдЕрд░реНрдерд╛рддреН, рдЕрдкрдиреЗ рд╕реНрдерд┐рд░ рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЛ рдХрдВрдкрд╛рдЗрд▓рд░ рджреНрд╡рд╛рд░рд╛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдЧрдгрдирд╛ рдХреА рдЬрд╛рдПрдЧреА рдФрд░ рдкрд░рд┐рдгрд╛рдо рдЗрдХрдЯреНрдареЗ рдЫрд╡рд┐ рдХреЛ рд▓рд┐рдЦрд╛ рдЬрд╛рдПрдЧрд╛, рдФрд░ рдЬрдм рдЖрдк рдЖрд╡реЗрджрди рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдмрд╕ рдкрдврд╝рд╛ рдЬрд╛рддрд╛ рд╣реИред рдмреЗрд╣рддрд░ рд╕рдВрдХрд▓рди рдЧреБрдгрд╡рддреНрддрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рд╣реИ: рдпрджрд┐ рд╕рдВрдХрд▓рдХ рдХреЗ рдореВрд▓реНрдпреЛрдВ рдХреЛ рд╕рдВрдХрд▓рдХ рдХреЗ рд▓рд┐рдП рдЬрд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдХреЛрдИ рднреА рдирд┐рд░рдВрддрд░ рддрд╣ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЬреЗрдЖрдИрдЯреА рдХреЗ рд╕рд╛рде рд╕рдм рдХреБрдЫ рдареАрдХ рд╣реИ, рджреБрднрд╛рд╖рд┐рдпрд╛ рд╕реНрдереИрддрд┐рдХ рдЖрд░рдВрднреАрдХрд░рдг рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рд╕реНрдерд┐рд░рд╛рдВрдХ рдХреЛ рдЬрд╛рдирдХрд░, рдЖрдк рд╕рдВрдХрд▓рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдФрд░ рдПрдХ рджреЗрд╢реА рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рддреЗ рд╕рдордп, рдЖрдкрдХреЛ рдЯреНрд░рд┐рдХ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдордЬреЗрджрд╛рд░ рд╕рд╛рдЗрдХреЗрдбреЗрд▓рд┐рдХ рдкреНрд░рднрд╛рд╡ рдХреА рдУрд░ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП рд╡рд░реНрдЧреЛрдВ рдХреЛ рдЖрдорддреМрд░ рдкрд░ рдЙрдирдХреЗ рджреНрд╡рд╛рд░рд╛ рдПрдХреНрд╕реЗрд╕ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдХреНрд░рдо рдореЗрдВ рдЖрд░рдВрднреАрдХреГрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рд╕рдВрдХрд▓рди рдХреЗ рджреМрд░рд╛рди рдпрд╣ рдЖрджреЗрд╢ рдЕрдЬреНрдЮрд╛рдд рд╣реЛрддрд╛ рд╣реИ рдФрд░ рджреВрд╕рд░реЗ рдореЗрдВ рдЖрд░рдВрднреАрдХрд░рдг рд╕рдВрднрд╡ рд╣реИред рдпрджрд┐ рдХреНрд▓рд╛рд╕ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝рд░ рдХреЗ рдмреАрдЪ рдкрд░рд┐рдкрддреНрд░ рд╕рдВрджрд░реНрдн рд╣реИрдВ, рддреЛ рдЖрдк рдЬреЗрд╡реАрдПрдо рдХреЛрдб рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдФрд░ рдореВрд▓ рдЫрд╡рд┐ рдореЗрдВ рдЕрдВрддрд░ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред
рд╡рд░реНрдХрд╢реЙрдк рд╢рд╣рддрдЬрд╝рд▓ - рд╣реЙрдЯрд╕реНрдкреЙрдЯ рдЬреАрд╕реАред
рдХрдЪрд░рд╛ рдмреАрдирдиреЗ рд╡рд╛рд▓реЛрдВ рд╕реЗ рдЬреБрдбрд╝реЗ рд╕рднреА рджрд░реНрдж рдХреЛ рд╕реБрд▓рдЭрд╛рдпрд╛ред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдореИрдВрдиреЗ рд╕рдмрд╕реЗ рдмрд╛рдд рд╕реБрдиреАред рдореБрдЭреЗ рдпрд╛рдж рд╣реИ рдХрд┐ рдУрдПрд╕ рдореЗрдореЛрд░реА рд░рд┐рдХреЙрд▓ рдкрд░ рдЪрд░реНрдЪрд╛ рдХреА рдЧрдИ рдереА, рдЬрд┐рд╕рдореЗрдВ рд╣рд░ рдХрд┐рд╕реА рдХреЛ рдШреГрдгрд┐рдд рдПрдХреНрд╕рдПрдордПрдХреНрд╕ рднреА рд╢рд╛рдорд┐рд▓ рдерд╛ред рдЕрдЪреНрдЫреА рдЦрдмрд░ рд╣реИ: рдЬрд╛рд╡рд╛ 13 рдореЗрдВ рдПрдХ рдирдпрд╛ рд╡рд┐рдХрд▓реНрдк -XX рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рд╣реИ: SoftMaxHeapSizeред рдЕрдм рддрдХ, рдпрд╣ рдХреЗрд╡рд▓ ZGC рдХрд▓реЗрдХреНрдЯрд░ рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд рд╣реИ, рд▓реЗрдХрд┐рди G1 рднреА рдкрдХрдбрд╝ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рдвреЗрд░ рдХреЗ рдЖрдХрд╛рд░ рдкрд░ рдПрдХ рд╕реАрдорд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдЖрдкрд╛рддрдХрд╛рд▓реАрди рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдХреЛ рдЫреЛрдбрд╝рдХрд░ рдкрд╛рд░ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬрдм рдпрд╣ рдЕрд▓рдЧ рддрд░реАрдХреЗ рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдЖрдк рдПрдХ рдмрдбрд╝реЗ рдПрдХреНрд╕рдПрдордПрдХреНрд╕ (рдЬреИрд╕реЗ, рдкреВрд░реЗ рд░реИрдо рдХреЗ рдЖрдХрд╛рд░ рдХреЗ рдмрд░рд╛рдмрд░) рдФрд░ рдХреБрдЫ рдЙрдЪрд┐рдд рд╕реЙрдлреНрдЯрдореИрдХреНрд╕рд╣рд╛рдЗрдк рд╕реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рддрдм рдЬреЗрд╡реАрдПрдо рдЬреНрдпрд╛рджрд╛рддрд░ рд╕рдордп рдЕрдкрдиреЗ рдЖрдк рдХреЛ рдмрдЪрд╛рдП рд░рдЦреЗрдЧрд╛, рд▓реЗрдХрд┐рди рдЪрд░рдо рднрд╛рд░ рдкрд░ рдпрд╣ рдЕрднреА рднреА рдЖрдЙрдЯрдСрдлрдореЗрдореЛрд░реА рдПрд░ рдирд╣реАрдВ рдлреЗрдВрдХреЗрдЧрд╛, рдмрд▓реНрдХрд┐ рдУрдПрд╕ рд╕реЗ рдЕрдзрд┐рдХ рдореЗрдореЛрд░реА рд▓реЗрдЧрд╛ред рдЬрдм рднрд╛рд░ рдЧрд┐рд░рддрд╛ рд╣реИ, рддреЛ рд╕реНрдореГрддрд┐ рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рдПрдЧреАред
Microsoft рдореЗрдИ-рдЪрд┐рди рддреНрд╕рд╛рдИ рдиреЗ CLR рдореЗрдВ JIT рдФрд░ AOT рд╕рдВрдХрд▓рди рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХреАред рдПрдУрдЯреА рд╕рдВрдХрд▓рди рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рдЙрдирдХреЗ рд▓рд┐рдП рд╡рд┐рдХрд╕рд┐рдд рд╣реЛ рд░рд╣рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╢реБрд░реВ рдореЗрдВ (ngen.exe) рдЗрд╕реЗ рдЯрд╛рд░рдЧреЗрдЯ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдкрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдкрд╣рд▓реА рдмрд╛рд░ рд╢реБрд░реВ рд╣реЛрдиреЗ рдХреА рддрд░рд╣ (рдЕрдЧрд░ рдЖрдкрдХреЗ рдкрд╛рд╕ рд╡рд┐рдВрдбреЛрдЬ рд╣реИ, рддреЛ рд╡рд┐рдВрдбреЛрдЬ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ * .ni.dll рдлрд╛рдЗрд▓реЗрдВ рджреЗрдЦреЗрдВ)ред рдлрд╝рд╛рдЗрд▓реЗрдВ рд╕реНрдерд╛рдиреАрдп рд╡рд┐рдВрдбреЛрдЬ рдХреЗ рд╕рдВрд╕реНрдХрд░рдг рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЕрдиреНрдп DLL-ek рдкрд░ рдирд┐рд░реНрднрд░ рд╣реЛрддреА рд╣реИрдВред рддрджрдиреБрд╕рд╛рд░, рдпрджрд┐ рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рдЕрджреНрдпрддрди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╕рднреА рдореВрд▓ рдореЙрдбреНрдпреВрд▓ рдХреЛ рдлрд┐рд░ рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рджреВрд╕рд░реА рдкреАрдврд╝реА (рдХреНрд░реЙрд╕рдЧреЗрди) рдореЗрдВ, рд▓реЗрдЦрдХреЛрдВ рдиреЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдФрд░ рдореЙрдбреНрдпреВрд▓ рдХреЛ рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдФрд░ рдУрдПрд╕ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдФрд░ рдирд┐рд░реНрднрд░рддрд╛рдУрдВ рд╕реЗ рд╕реНрд╡рддрдВрддреНрд░ рд░рдЦрд╛ рд╣реИред рдЗрд╕рдиреЗ рдХреЛрдб рдХреЛ рдзреАрдорд╛ рдХрд░ рджрд┐рдпрд╛ рдХреНрдпреЛрдВрдХрд┐ рдирд┐рд░реНрднрд░рддрд╛ рдХреЙрд▓ рдХреЛ рдЕрдм рдИрдорд╛рдирджрд╛рд░реА рд╕реЗ рдЖрднрд╛рд╕реА рдмрдирд╛рдпрд╛ рдЬрд╛рдирд╛ рдерд╛ред рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ JIT рд╕реЗ рдЬреЛрдбрд╝рдХрд░ рдФрд░ рдЖрд╡реЗрджрди рдХреЗ рджреМрд░рд╛рди рд╣реЙрдЯ рдХреЛрдб рдХреЛ рдлрд┐рд░ рд╕реЗ рдЬреЛрдбрд╝рдХрд░ рд╣рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдлрд┐рд░ рд╣рдордиреЗ рдорд▓реНрдЯреА-рд▓реЗрд╡рд▓ (tiered) рд╕рдВрдХрд▓рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХреА (рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ CLR рдореЗрдВ рдпрд╣ рдЕрдкрдиреА рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдЕрд╡рд╕реНрдерд╛ рдореЗрдВ рд╣реИ, рдЬрдмрдХрд┐ рдпрд╣ рдЬрд╛рд╡рд╛ рдореЗрдВ рдХрдо рд╕реЗ рдХрдо рджрд╕ рд╡рд░реНрд╖реЛрдВ рд╕реЗ рд╡рд┐рдХрд╕рд┐рдд рд╣реЛ рд░рд╣рд╛ рд╣реИ) рдФрд░ рднрд╡рд┐рд╖реНрдп рдореЗрдВ AOT рдХреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреНрд░реЙрд╕-рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдмрдирд╛рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВред
рдЕрд▓реАрдмрд╛рдмрд╛ рдХреЗ рд╕рд╣рдпреЛрдЧрд┐рдпреЛрдВ рдиреЗ рдЬреЗрд╡реАрдПрдо рд╡рд╛рд░реНрдо-рдЕрдк рд╕рдорд╕реНрдпрд╛ рдХреЗ рд▓рд┐рдП рдЕрдкрдирд╛ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ред рд╡реЗ рдХрдИ рд╡реЗрдм рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЬреЗрд╡реАрдПрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рдмрд╣реБрдд рддреЗрдЬ рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдЗрддрдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдмреИрд▓реЗрдВрд╕рд░ рд╣рдореЗрд╢рд╛ рдорд╢реАрди рдХреЗ рдмреВрдЯ рд╣реЛрдиреЗ рддрдХ рдЗрдВрддрдЬрд╛рд░ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдж рд╣реА рдЗрд╕рдХреЗ рд▓рд┐рдП рдЕрдиреБрд░реЛрдз рднреЗрдЬрдирд╛ рд╢реБрд░реВ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдорд╢реАрди рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рдмрд┐рдирд╛ рдЧрд░реНрдо рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ: рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рд▓рд┐рдП рддрд░реНрдХ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХреЛрдб рдХреЛ рдирд╣реАрдВ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдпрд╣ рд╕рдВрдХрд▓рди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдкрд╣рд▓рд╛ рдЕрдиреБрд░реЛрдз рдЖрдиреЗ рдкрд░ рдЗрд╕реЗ рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЕрд░реНрдерд╛рддреН, рдХреЛрдИ рднреА рдмрд╛рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ рдмреИрд▓реЗрдВрд╕рд░ рдХрд┐рддрдирд╛ рдЗрдВрддрдЬрд╛рд░ рдХрд░рддрд╛ рд╣реИ, рдкрд╣рд▓реЗ рдЕрдиреБрд░реЛрдзреЛрдВ рдкрд░ рдПрдХ рдкреНрд░рджрд░реНрд╢рди рд╡рд┐рдлрд▓рддрд╛ рд╣реЛрдЧреАред рдкрд╣рд▓реЗ, рдЙрдиреНрд╣реЛрдВрдиреЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЕрдиреБрд░реЛрдз рднреЗрдЬрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЖрдЧрд╛рдореА рд╕реЗрд╡рд╛ рдХреЗ рд▓рд┐рдП рдирдХрд▓реА рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рдлреЗрдВрдХрдХрд░ рдЗрд╕реЗ рд╣рд▓ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреАред рджреГрд╖реНрдЯрд┐рдХреЛрдг рджрд┐рд▓рдЪрд╕реНрдк рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕ рддрд░рд╣ рдХреА рдирдХрд▓реА рдзрд╛рд░рд╛ рдЙрддреНрдкрдиреНрди рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИ рдЬреЛ рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рдХреЛрдб рдХреЗ рд╕рдВрдХрд▓рди рдХрд╛ рдХрд╛рд░рдг рд╣реЛрдЧрд╛ред
рдПрдХ рдЕрд▓рдЧ рд╕рдорд╕реНрдпрд╛ рд╣реИ рдбреАрдУрдкреНрдЯрд┐рдорд╛рдЗрдЬреЗрд╢рдиред рдкрд╣рд▓реЗ рд╣рдЬрд╛рд░ рдкреНрд░рд╢реНрдиреЛрдВ рдореЗрдВ, рдПрдХ if
рд╣рдореЗрд╢рд╛ рдкрд╣рд▓реА рд╢рд╛рдЦрд╛ рдХреЗ рд╕рд╛рде-рд╕рд╛рде рдЪрд▓рд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЬреЗрдЖрдИрдЯреА рдХрдВрдкрд╛рдЗрд▓рд░ рдЖрдорддреМрд░ рдкрд░ рджреВрд╕рд░реЗ рдХреЛ рдлреЗрдВрдХ рджреЗрддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдХреЛрдб рдЖрдХрд╛рд░ рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдбреЛрдкреНрдЯрд┐рдорд╛рдЗрдЬреЗрд╢рди рдЯреНрд░реИрдк рд╣реЛрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди 1001 рд╡рд╛рдВ рдЕрдиреБрд░реЛрдз рджреВрд╕рд░реА рд╢рд╛рдЦрд╛ рдореЗрдВ рдЪрд▓рд╛ рдЧрдпрд╛, рдбреЗрдкреНрдЯрд┐рдорд╛рдЗрдЬреЗрд╢рди рдиреЗ рдХрд╛рдо рдХрд┐рдпрд╛ рдФрд░ рдкреВрд░реА рд╡рд┐рдзрд┐ рджреБрднрд╛рд╖рд┐рдП рдХреЗ рдкрд╛рд╕ рдЧрдИред рдЬрдмрдХрд┐ рдЖрдБрдХрдбрд╝реЗ рдлрд┐рд░ рд╕реЗ рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдП рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ, рдЬрдмрдХрд┐ рд╡рд┐рдзрд┐ C1 рд╕рдВрдХрд▓рдХ рджреНрд╡рд╛рд░рд╛ рд╕рдВрдХрд▓рд┐рдд рдХреА рдЬрд╛рддреА рд╣реИ, рдлрд┐рд░ C2 рд╕рдВрдХрд▓рдХ рджреНрд╡рд╛рд░рд╛ рдкреВрд░реНрдг рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рджреНрд╡рд╛рд░рд╛, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдПрдХ рдордВрджреА рдХрд╛ рдЕрдиреБрднрд╡ рд╣реЛрдЧрд╛ред рдФрд░ рдлрд┐рд░ рдПрдХ рд╣реА рд╡рд┐рдзрд┐ рдореЗрдВ рдПрдХ рдФрд░ if
deoptimized рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рд╕рдм рдХреБрдЫ рдПрдХ рдирдпрд╛ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред
JWarmUp рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рддрд╛ рд╣реИред рд╕реЗрд╡рд╛ рдХреЗ рдкрд╣рд▓реЗ рд░рди рдХреЗ рджреМрд░рд╛рди, рдПрдХ рд╕рдВрдХрд▓рди рд▓реЙрдЧ рдХреЛ рдХрдИ рдорд┐рдирдЯреЛрдВ рдХреЗ рд▓рд┐рдП рд▓рд┐рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ: рдпрд╣ рд░рд┐рдХреЙрд░реНрдб рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдХреМрди рд╕реЗ рддрд░реАрдХреЗ рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдП рдЧрдП рдереЗ рдФрд░ рд╢рд╛рдЦрд╛рдУрдВ, рдкреНрд░рдХрд╛рд░реЛрдВ рдЖрджрд┐ рджреНрд╡рд╛рд░рд╛ рдЖрд╡рд╢реНрдпрдХ рдкреНрд░реЛрдлрд╛рдЗрд▓рд┐рдВрдЧ рдЬрд╛рдирдХрд╛рд░реА, рдпрджрд┐ рдЗрд╕ рд╕реЗрд╡рд╛ рдХреЛ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдХреЗ рддреБрд░рдВрдд рдмрд╛рдж, рд▓реЙрдЧ рд╕реЗ рд╕рднреА рдХрдХреНрд╖рд╛рдПрдВ рдЖрд░рдВрднреАрдХреГрдд рд╣реЛрддреА рд╣реИрдВ рдФрд░ рд▓реЙрдЧ рдХрд┐рдП рдЧрдП рддрд░реАрдХреЗ рд╕рдВрдХрд▓рд┐рдд рд╣реЛрддреЗ рд╣реИрдВред рдкрд┐рдЫрд▓реА рдкреНрд░реЛрдлрд╛рдЗрд▓ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реБрдПред рдирддреАрдЬрддрди, рдХрдВрдкрд╛рдЗрд▓рд░ рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдкрд░ рдЕрдЪреНрдЫрд╛ рдХрд╛рдо рдХрд░реЗрдЧрд╛, рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рдмреИрд▓реЗрдВрд╕рд░ рдЗрд╕ рдЬреЗрд╡реАрдПрдо рдХреЛ рдЕрдиреБрд░реЛрдз рднреЗрдЬрдирд╛ рд╢реБрд░реВ рдХрд░ рджреЗрдЧрд╛ред рдЗрд╕ рд╕рдордп рддрдХ, рд╕рднреА рд╣реЙрдЯ рдХреЛрдб рд╡рд╣ рдкрд╣рд▓реЗ рд╣реА рд╕рдВрдХрд▓рд┐рдд рдХрд░ рдЪреБрдХреА рд╣реИрдВред
рдпрд╣ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ рддреНрд╡рд░рд┐рдд рд╢реБрд░реБрдЖрдд рдХреА рд╕рдорд╕реНрдпрд╛ рдпрд╣рд╛рдВ рд╣рд▓ рдирд╣реАрдВ рд╣реБрдИ рд╣реИред рдПрдХ рдкреНрд░рдХреНрд╖реЗрдкрдг рдФрд░ рднреА рдзреАрдорд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдХрдИ рд╡рд┐рдзрд┐рдпрд╛рдВ рд╕рдВрдХрд▓рд┐рдд рдХреА рдЬрд╛рддреА рд╣реИрдВ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдХреБрдЫ рдХреЛ рд▓реЙрдиреНрдЪ рдХреЗ рдХреБрдЫ рдорд┐рдирдЯ рдмрд╛рдж рд╣реА рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рд▓реЙрдЧ рдкреБрди: рдкреНрд░рдпреЛрдЬреНрдп рдирд┐рдХрд▓рд╛: рдПрдУрдЯреА рдХреЗ рд╡рд┐рдкрд░реАрдд, рдЖрдк рд╕реЗрд╡рд╛ рдХреЛ рдПрдХ рдЕрд▓рдЧ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдкрд░ рдпрд╛ рдПрдХ рдЕрд▓рдЧ рдХрдЪрд░рд╛ рд╕рдВрдЧреНрд░рд╣рдХрд░реНрддрд╛ рдХреЗ рд╕рд╛рде рдЙрдард╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдкрд┐рдЫрд▓реЗ рд▓реЙрдЧ рдХрд╛ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рд▓реЗрдЦрдХ JWarmUp рдХреЛ OpenJDK рдореЗрдВ рдзрдХреЗрд▓рдиреЗ рдХреА рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВ ред рдЕрдм рддрдХ рдЕрд╕рдлрд▓, рд▓реЗрдХрд┐рди рдХрд╛рдо рдЪрд▓ рд░рд╣рд╛ рд╣реИред рдореБрдЦреНрдп рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдХреЛрдб рд░рд┐рд╡реНрдпреВ рд╕рд░реНрд╡рд░ рдкрд░ рдПрдХ рдкреВрд░реНрдг рд╡рд┐рдХрд╕рд┐рдд рдкреИрдЪ рдЕрдкрдиреЗ рдЖрдк рдореЗрдВ рдХрд╛рдлреА рд╕реБрд▓рдн рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдк рдЗрд╕реЗ рдЖрд╕рд╛рдиреА рд╕реЗ рд╣реЙрдЯрд╕реНрдкреЙрдЯ рд╕реНрд░реЛрддреЛрдВ рдкрд░ рд▓рд╛рдЧреВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ JWMUp рдХреЗ рд╕рд╛рде рд╕реНрд╡рдпрдВ JVM рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдпрд╣ рдореИрдирдЪреЗрд╕реНрдЯрд░ рдХрд╛ рдПрдХ рд╢реЛрдз рдкрддреНрд░ рд╣реИ, рд▓реЗрдХрд┐рди рд▓реЗрдЦрдХреЛрдВ рдХрд╛ рджрд╛рд╡рд╛ рд╣реИ рдХрд┐ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рдХреБрдЫ рд╕реНрдерд╛рдиреЛрдВ рдкрд░ рдкрд╣рд▓реЗ рд╣реА рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛ рдЪреБрдХрд╛ рд╣реИред рдпрд╣ OpenJDK рдХреЗ рд▓рд┐рдП рдПрдХ рдРрдб-рдСрди рднреА рд╣реИ, рдЬреЛ рдХрд┐ рдХреБрдЫ рдЬрд╛рд╡рд╛ рдХреЛрдб рдХреЛ GPU, iGPU, FPGA рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдирд╛ рдЖрд╕рд╛рди рдмрдирд╛рддрд╛ рд╣реИ рдпрд╛ рдмрд╕ рдЗрд╕реЗ рдЕрдкрдиреЗ рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЗ рдХреЛрд░ рдореЗрдВ рд╕рдорд╛рдирд╛рдВрддрд░ рдмрдирд╛рддрд╛ рд╣реИред GPU рдкрд░ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╡реЗ GraalVM рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рдЬрд┐рд╕рдореЗрдВ рдЙрдиреНрд╣реЛрдВрдиреЗ рдЕрдкрдирд╛ рдмреИрдХрдПрдВрдб рдмрдирд╛рдпрд╛ - TornadoJITред рдПрдХ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд▓рд┐рдЦрд╛ рдЬрд╛рд╡рд╛ рд╡рд┐рдзрд┐ рдкрд╛рд░рджрд░реНрд╢реА рд░реВрдк рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рдЬрд╛рддреА рд╣реИред рд╕рдЪ рд╣реИ, рд╡реЗ рдХрд╣рддреЗ рд╣реИрдВ рдХрд┐ FPGA рдкрд░ рд╕рдВрдХрд▓рди рдореЗрдВ рдХрдИ рдШрдВрдЯреЗ рд▓рдЧ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрджрд┐ рдЖрдкрдХрд╛ рдХрд╛рд░реНрдп рдПрдХ рдорд╣реАрдиреЗ рдХрд╛ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдХреНрдпреЛрдВ рдирд╣реАрдВред рдХреБрдЫ рдмреЗрдВрдЪрдорд╛рд░реНрдХ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЕрд╕рддрдд рдлреВрд░рд┐рдпрд░ рдЯреНрд░рд╛рдВрд╕рдлреЙрд░реНрдо) рдирдВрдЧреЗ рдЬрд╛рд╡рд╛ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рд╕реМ рдЧреБрдирд╛ рдЕрдзрд┐рдХ рддреЗрдЬ рд╣реИрдВ, рдЬреЛ рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ рдЕрдкреЗрдХреНрд╖рд┐рдд рд╣реИред рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ GitHub рдкрд░ рдЕрдкрд▓реЛрдб рдХреА рдЧрдИ рд╣реИ , рдЬрд╣рд╛рдВ рдЖрдк рд╡рд┐рд╖рдп рдкрд░ рд╡реИрдЬреНрдЮрд╛рдирд┐рдХ рдкреНрд░рдХрд╛рд╢рди рднреА рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВред
рд╕рднреА рдПрдХ рд╣реА рдЧреАрдд - рдПрдХ рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рдЪрд▓реА рдЖ рд░рд╣реА рдкрд░рд┐рдпреЛрдЬрдирд╛, рд╣рд░ рд╢рд┐рдЦрд░ рдкреНрд░рд╕реНрддреБрддрд┐, рдПрдХ рд╕рд╛рд▓ рдкрд╣рд▓реЗ рд╕рдм рдХреБрдЫ рдмрд╣реБрдд рддреИрдпрд╛рд░ рд▓рдЧ рд░рд╣рд╛ рдерд╛, рд▓реЗрдХрд┐рди рдЕрднреА рднреА рдХреЛрдИ рд░рд┐рд▓реАрдЬ рдирд╣реАрдВ рд╣реБрдИ рдереАред рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рддрдм рд╕реЗ рдзреНрдпрд╛рди рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рд╣реЛ рдЧрдпрд╛ рд╣реИред
рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд╛ рд╡рд┐рдЪрд╛рд░ рджреЗрд╢реА рдХреЛрдб рдХреЗ рд╕рд╛рде рдПрдХ рдмреЗрд╣рддрд░ рдЕрдВрддрд░ рд╣реИред рд╣рд░ рдХреЛрдИ рдЬрд╛рдирддрд╛ рд╣реИ рдХрд┐ рдЬреЗрдПрдирдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдХрд┐рддрдирд╛ рджрд░реНрджрдирд╛рдХ рд╣реИред рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рджрд░реНрдж рд╣реЛрддрд╛ рд╣реИред рдкрдирд╛рдорд╛ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдЗрд╕ рджрд░реНрдж рдХреЛ рдХрдо рдХрд░рддреА рд╣реИ: jextract рдЬрд╛рд╡рд╛ рдХрдХреНрд╖рд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рджреЗрд╢реА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреА * .h рдлрд╝рд╛рдЗрд▓реЛрдВ рд╕реЗ рдЙрддреНрдкрдиреНрди рд╣реЛрддрд╛ рд╣реИ, рдЬреЛ рдХрд┐ рджреЗрд╢реА рддрд░реАрдХреЛрдВ рдХреЛ рдХреЙрд▓ рдХрд░рдХреЗ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рдлреА рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИрдВред C / C ++ рдХреА рддрд░рдл, рдЖрдкрдХреЛ рдПрдХ рднреА рд▓рд╛рдЗрди рдирд╣реАрдВ рд▓рд┐рдЦрдиреА рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╕рдм рдХреБрдЫ рдмрд╣реБрдд рддреЗрдЬ рд╣реЛ рдЧрдпрд╛: рдЬрд╛рд╡рд╛ рдкрд░ рдХреЙрд▓ рдУрд╡рд░рд╣реЗрдб -> рджреЗрд╢реА рдФрд░ рджреЗрд╢реА-> рдЬрд╛рд╡рд╛ рдХрдИ рдмрд╛рд░ рдЧрд┐рд░ рдЧрдпрд╛ред рдЖрдкрдХреЛ рдФрд░ рдХреНрдпрд╛ рдЪрд╛рд╣рд┐рдП?
рдПрдХ рд╕рдорд╕реНрдпрд╛ рд╣реИ рдЬреЛ рд▓рдЧрднрдЧ рдХреБрдЫ рд╕рдордп рд╕реЗ рд╣реИ - рдбреЗрдЯрд╛ рд╕рд░рдгрд┐рдпреЛрдВ рдХреЛ рдореВрд▓ рдХреЛрдб рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдирд╛ред рдЕрдм рддрдХ, рдЕрдиреБрд╢рдВрд╕рд┐рдд рд╡рд┐рдзрд┐ DirectByteBuffer рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдмрд╣реБрдд рд╕рд╛рд░реА рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реИрдВред рд╕рдмрд╕реЗ рдЧрдВрднреАрд░ рдореЗрдВ рд╕реЗ рдПрдХ рдЕрдкреНрд░рдмрдВрдзрд┐рдд рдЬреАрд╡рдирдХрд╛рд▓ рд╣реИ (рдЬрдм рдХрдЪрд░рд╛ рдХрд▓реЗрдХреНрдЯрд░ рдЙрдкрдпреБрдХреНрдд рдЬрд╛рд╡рд╛ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдЙрдард╛рдПрдЧрд╛ рддреЛ рдмрдлрд░ рдЧрд╛рдпрдм рд╣реЛ рдЬрд╛рдПрдЧрд╛)ред рдЗрд╕ рдФрд░ рдЕрдиреНрдп рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рдХрд╛рд░рдг, рд▓реЛрдЧ Unsafe рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ рдЙрдЪрд┐рдд рдкрд░рд┐рд╢реНрд░рдо рдХреЗ рд╕рд╛рде, рдкреВрд░реА рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рдХреЛ рдЖрд╕рд╛рдиреА рд╕реЗ рд▓реЗрдЯ рд╕рдХрддрд╛ рд╣реИред
рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдЬрд╛рд╡рд╛ рд╣реАрдк рдХреЗ рдмрд╛рд╣рд░ рдирдП рд╕рд╛рдорд╛рдиреНрдп рдореЗрдореЛрд░реА рдПрдХреНрд╕реЗрд╕ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЖрд╡рдВрдЯрди, рд╕рдВрд░рдЪрд┐рдд рдкрд╣реБрдВрдЪ, рд╕реНрдкрд╖реНрдЯ рдирд┐рд╖реНрдХрд╛рд╕рдиред рд╕рдВрд░рдЪрд┐рдд рдПрдХреНрд╕реЗрд╕рд░реНрд╕ - рддрд╛рдХрд┐ рдЖрдкрдХреЛ рдСрдлрд╝рд╕реЗрдЯреНрд╕ рдХреА рдЧрдгрдирд╛ рд╕реНрд╡рдпрдВ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рди рд╣реЛ рдпрджрд┐ рдЖрдкрдХреЛ рд▓рд┐рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, struct { byte x; int y; }[5]
struct { byte x; int y; }[5]
struct { byte x; int y; }[5]
ред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рдЖрдк рдПрдХ рдмрд╛рд░ рдЗрд╕ рд╕рдВрд░рдЪрдирд╛ рдХреЗ рд▓реЗрдЖрдЙрдЯ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдлрд┐рд░ рдХрд░рддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, VarHandle
, рдЬреЛ y
рдкрд░ рдХреВрджрдХрд░ рд╕рднреА x
рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рд╕рд╛рдорд╛рдиреНрдп рдЬрд╛рд╡рд╛ рд╕рд░рдгрд┐рдпреЛрдВ рдореЗрдВ рд╣рдореЗрд╢рд╛ рд╕реАрдорд╛ рдХреА рдЬрд╛рдБрдЪ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдмрдВрдж рдХреНрд╖реЗрддреНрд░ рддрдХ рдкрд╣реБрдВрдЪ рдкрд░ рдкреНрд░рддрд┐рдмрдВрдз рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдФрд░ рдпрд╣ рдПрдХ рдЧреИрд░-рддреБрдЪреНрдЫ рдХрд╛рд░реНрдп рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдЕрдЧрд░ рд╣рдо рдЕрд╕реБрд░рдХреНрд╖рд┐рдд рд╕реНрддрд░ рдкрд░ рдкреНрд░рджрд░реНрд╢рди рдмрдирд╛рдП рд░рдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдФрд░ рдХрдИ рдереНрд░реЗрдбреНрд╕ рд╕реЗ рдкрд╣реБрдВрдЪ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВред рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, рд╡реАрдбрд┐рдпреЛ рджреЗрдЦреЗрдВ, рдмрд╣реБрдд рджрд┐рд▓рдЪрд╕реНрдкред
рдХрд╛рд░реНрдпрд╢рд╛рд▓рд╛: рд╡реНрд▓рд╛рджрд┐рдореАрд░ рдХреЛрдЬрд╝рд▓реЛрд╡ - рдорд╣рд╛рдирдЧрд░ рдкрд░рд┐рдпреЛрдЬрдирд╛
рдореЗрдЯреНрд░реЛрдкреЛрд▓рд┐рд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдЬрд╛рд╡рд╛ рдореЗрдВ рдЬреЗрд╡реАрдПрдо рдХреЗ рдХреБрдЫ рд╣рд┐рд╕реНрд╕реЛрдВ рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдиреЗ рдХреЗ рд╕рднреА рдкреНрд░рдпрд╛рд╕реЛрдВ рдХреЛ рдЬреЛрдбрд╝рддреА рд╣реИред рдЗрд╕рдХрд╛ рдореБрдЦреНрдп рднрд╛рдЧ рдЖрдЬ рдЧреНрд░реЗрдЧрд▓ рд╕рдВрдХрд▓рдХ рд╣реИред рд╣рд╛рд▓ рдХреЗ рд╡рд░реНрд╖реЛрдВ рдореЗрдВ, рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╡рд┐рдХрд╕рд┐рдд рд╣реБрдЖ рд╣реИ рдФрд░ рдЙрдореНрд░ рдмрдврд╝рдиреЗ рдХреЗ рд╕реА 2 рдХреЗ рд▓рд┐рдП рдкреВрд░реНрдг рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдХреА рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЪрд░реНрдЪрд╛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╣реИред рдПрдХ рдмреВрдЯрд╕реНрдЯреНрд░реИрдк рд╕рдорд╕реНрдпрд╛ рд╣реБрдЖ рдХрд░рддреА рдереА: рдзреАрд░реЗ-рдзреАрд░реЗ рдХрдмреНрд░ рдХреА рд╢реБрд░реБрдЖрдд рд╣реБрдИ, рдХреНрдпреЛрдВрдХрд┐ рдЙрд╕реЗ рдЦреБрдж рдЬреЗрдЖрдИрдЯреА-рд╕рдВрдХрд▓рд┐рдд рдпрд╛ рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХрд░рдирд╛ рдерд╛ред рддрдм рдПрдУрдЯреА рд╕рдВрдХрд▓рди рджрд┐рдЦрд╛рдИ рджрд┐рдпрд╛ (рд╣рд╛рдБ, рдПрдУрдЯреА рд╕рдВрдХрд▓рди рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд╛ рдореБрдЦреНрдп рд▓рдХреНрд╖реНрдп рдХрдмреНрд░ рдХрд╛ рдмреВрдЯрд╕реНрдЯреНрд░реИрдк рд╣реИ)ред рд▓реЗрдХрд┐рди рдПрдУрдЯреА рдХреЗ рд╕рд╛рде, рдЧреНрд░рд┐рд▓ рдЬрд╛рд╡рд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдвреЗрд░ рдХреЗ рдПрдХ рд╕рднреНрдп рд╣рд┐рд╕реНрд╕реЗ рдХреЛ рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрдкрдиреЗ рдвреЗрд░ рдХреЛ рд╕рд╛рдЭрд╛ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдЕрдм рд╣рдордиреЗ рдЧреНрд░реЗрд╡рд▓ рдиреЗрдЯрд┐рд╡ рдЗрдореЗрдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрдмреНрд░ рдХреЛ рдПрдХ рджреЗрд╢реА рдкреБрд╕реНрддрдХрд╛рд▓рдп рдореЗрдВ рдмрджрд▓рдирд╛ рд╕реАрдЦ рд▓рд┐рдпрд╛ рд╣реИ, рдЬрд┐рд╕рдиреЗ рдЕрдВрддрддрдГ рдХрдореНрдкрд╛рдЗрд▓рд░ рдХреЛ рд╕рд╛рдорд╛рдиреНрдп рдвреЗрд░ рд╕реЗ рдЕрд▓рдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреАред рдХрдмреНрд░ рджреНрд╡рд╛рд░рд╛ рд╕рдВрдХрд▓рд┐рдд рдХреЛрдб рдХреЗ рдЪрд░рдо рдкреНрд░рджрд░реНрд╢рди рдХреЗ рд╕рд╛рде, рдХреБрдЫ рдмреЗрдВрдЪрдорд╛рд░реНрдХ рдкрд░ рдЕрднреА рднреА рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЗрдВрдЯреНрд░рд┐рдВрд╕рд┐рдХреНрд╕ рдФрд░ рд╡реИрд╢реНрд╡реАрдХрд░рдг рдореЗрдВ рд╕реА 2 рдХреЗ рдкреАрдЫреЗ рдЧреНрд░реИрдЧ рдкрд┐рдЫрдбрд╝ рдЬрд╛рддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдмрд╣реБрдд рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдЗрдирд▓рд╛рдЗрдирд┐рдВрдЧ рдФрд░ рднрд╛рдЧрдиреЗ рдХреЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдпрд╣ рдХреЗрд╡рд▓ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдХреЛрдб рдкрд░ рд╕реА 2 рдХреЛ рддреЛрдбрд╝рддрд╛ рд╣реИ, рдЬрд╣рд╛рдВ рдХрдИ рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рд╡рд╕реНрддреБрдПрдВ рдФрд░ рдХрдИ рдЫреЛрдЯреЗ рдХрд╛рд░реНрдп рдмрдирддреЗ рд╣реИрдВред рдпрджрд┐ рдЖрдк рд░реЙрдХ рдкрд░ рд▓рд┐рдЦрддреЗ рд╣реИрдВ рдФрд░ рдлрд┐рд░ рднреА рдХрдмреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЪрд▓рд╛рдПрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, JDK рдХреЗ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ, рдХреБрдЫ рдХреБрдВрдЬрд┐рдпреЛрдВ рдХреЛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдХрд╛рдлреА рддреБрдЪреНрдЫ рд╣реИ, рд╕рдм рдХреБрдЫ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХрд┐рдЯ рдореЗрдВ рд╣реИред
31 рдЬреБрд▓рд╛рдИ
рдХреЗрд╡рд┐рди Bourrillion - рдЬрд╛рд╡рд╛ рдХреЗ рд▓рд┐рдП рдЕрд╢рдХреНрддрддрд╛ рдПрдиреЛрдЯреЗрд╢рди
рдХреЗрд╡рд┐рди рдиреЗ рдПрдХ рдирдИ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рдШреЛрд╖рдгрд╛ рдХреА, рд▓реЗрдХрд┐рди рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд░реВрдк рд╕реЗ рдмрд╛рдд рдирд╣реАрдВ рдХрд░рдиреЗ рдФрд░ YouTube рдкрд░ рдЕрдкрдиреЗ рднрд╛рд╖рдг рдХреА рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рдкреЛрд╕реНрдЯ рдирд╣реАрдВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рд╛ред рдЗрд╕рд▓рд┐рдП рдХреНрд╖рдорд╛ рдХрд░реЗрдВред , .
Sorbet (!) Ruby, Ruby . , Stripe Ruby , , . , .
Lightning Talks
- . Remi Forax , , . , :
, - , .
ML AI , . , Facebook тАФ getafix , --, , . . , , . , , .
. . OpenJDK Committer Workshop.