рдмрд╣реБрдд рддреЗрдЬрд╝, рдмрд╣реБрдд рдЕрдзрд┐рдХ рдореЗрдЧрд╛рдлрд╝реЙрд░реНрдорд┐рдХ: рдЬрд╛рд╡рд╛ рдореЗрдВ рдореЗрдердб рдХреЙрд▓ рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИ?

рдЕрдиреБрд╡рд╛рджрдХ рд╕реЗ:

рд╣рд░ рдЬрдЧрд╣ рдЕрдВрддрд┐рдо рд▓реЗрдЦрди рдХреЗ рд╕рдорд░реНрдердХреЛрдВ рдФрд░ рдЙрдирдХреЗ рд╡рд┐рд░реЛрдзрд┐рдпреЛрдВ рдХреЗ рдмреАрдЪ рдХрд╛ рд╡рд┐рд╡рд╛рдж рдЗрдВрдЧрд┐рдд рдФрд░ рдХреБрдВрдж рдХреА рдмрд╣рд╕ рдХрд╛ рд╕рдорд╛рди рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рдХреБрдЫ рдЕрдиреНрдп рд╕рдореБрджрд╛рдпреЛрдВ рдореЗрдВ, рд╣рдорд╛рд░реА рдХрдВрдкрдиреА рдореЗрдВ рдпрд╣ рд╕реБрд╕реНрдд рд╡рд┐рд╡рд╛рдж рд╡рд░реНрд╖реЛрдВ рд╕реЗ рдЪрд▓ рд░рд╣рд╛ рд╣реИред рдФрд░ рдХреЗрд╡рд▓ рд░рд┐рдЪрд░реНрдб рд╡рд╛рд░рдмрд░реНрдЯрди рдХреЗ рдЗрд╕ рд▓реЗрдЦ рдиреЗ рд╣рдорд╛рд░реЗ рдЬреАрдирд┐рдпрд╕ рдХреЛ рдКрдкрд░реА рд╣рд╛рде рд╣рд╛рд╕рд┐рд▓ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреАред



рд╣рдо рдХрд┐рд╕ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ?


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



рдореЗрд░реЗ рдкрд╛рд╕ рдХреБрдЫ рд╡рд┐рдЪрд╛рд░ рдереЗ рдХрд┐ рдХреНрдпрд╛ рдкреНрд░рджрд░реНрд╢рди рдкреНрд░рддрд┐рдЧрдорди рд╣реЛрдЧрд╛ рдпрд╛ рдирд╣реАрдВ, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдкрд╣рд▓реА рдмрд╛рд░ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдХрд┐ рдХреНрдпрд╛ рдХрд┐рд╕реА рдиреЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рдмреЗрдВрдЪрдорд╛рд░реНрдХ рдкрд░рд┐рдгрд╛рдо рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд┐рдП рд╣реИрдВред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдореБрдЭреЗ рдХреБрдЫ рднреА рдирд╣реАрдВ рдорд┐рд▓рд╛ред рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╡реЗ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИрдВ рдпрд╛ рдЕрдиреНрдп рд▓реЛрдЧреЛрдВ рдиреЗ рд╕реНрдерд┐рддрд┐ рдХреА рдЬрд╛рдВрдЪ рдирд╣реАрдВ рдХреА рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдХреЛрдИ рднреА рдХреЛрдб рдирд╣реАрдВ рджреЗрдЦрд╛ рд╣реИ рдЬреЛ рд╡рд┐рд╢реЗрд╖рдЬреНрдЮ рд╕рдореАрдХреНрд╖рд╛ рд╕реЗ рдЧреБрдЬрд░рддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП рдХреБрдЫ рдмреЗрдВрдЪрдорд╛рд░реНрдХ рд▓рд┐рдЦрдиреЗ рдХрд╛ рд╕рдордп рдЖ рдЧрдпрд╛ рд╣реИред



рдмреЗрдВрдЪрдорд╛рд░реНрдХрд┐рдВрдЧ рдкрджреНрдзрддрд┐


рдЗрд╕рд▓рд┐рдП, рдореИрдВрдиреЗ рдмреЗрдВрдЪрдорд╛рд░реНрдХрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдЕрджреНрднреБрдд JMH рдлреНрд░реЗрдорд╡рд░реНрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ред рдпрджрд┐ рдЖрдк рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИрдВ рдХрд┐ рдлреНрд░реЗрдорд╡рд░реНрдХ рдЖрдкрдХреЛ рд╕рдЯреАрдХ рдмреЗрдВрдЪрдорд╛рд░реНрдХрд┐рдВрдЧ рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдЧрд╛, рддреЛ рдЖрдкрдХреЛ рдЗрд╕ рдкреНрд░рд╕реНрддреБрддрд┐ рдХреЛ рдЕрд▓реЗрдХреНрд╕рдИ рд╢рд┐рдкрд┐рд▓реЗрд╡ (@TheShade), рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреЗ рд▓реЗрдЦрдХ рдпрд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╢рд╛рдВрдд рдирд┐рдЯреНрд╕рди рд╡рдХрд╛рд░реНрдЯ рдмреНрд▓реЙрдЧ рджреНрд╡рд╛рд░рд╛ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬреЛ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдорджрдж рдХрд░рддрд╛ рд╣реИред



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



рдЗрдирд▓рд╛рдЗрди


рдЫрд╡рд┐

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



class Foo { void bar() { ... } }
      
      





рд╣рдо рдмрд╛рд░ рд╡рд┐рдзрд┐ рдХреЛ рдХреЛрдб рд▓рд┐рдЦрдХрд░ рдХреЙрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:



 Foo foo = new Foo(); foo.bar();
      
      





рдпрд╣рд╛рдВ рдореБрдЦреНрдп рдмрд╛рдд рд╡рд╣ рд╕реНрдерд╛рди рд╣реИ рдЬрд╣рд╛рдВ рдмрд╛рд░ рдХреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ - foo.bar () - рдЗрд╕реЗ рдХреЙрд▓рд╕рд╛рдЗрдЯ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдЬрдм рд╣рдо рдХрд╣рддреЗ рд╣реИрдВ рдХрд┐ рд╡рд┐рдзрд┐ рдЗрдирд▓рд╛рдЗрди (рдмрд┐рд▓реНрдЯ-рдЗрди) рдереА, рддреЛ рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рд╡рд┐рдзрд┐ рдХреЗ рд╢рд░реАрд░ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдХреЙрд▓ рдХрд░рдиреЗ рдФрд░ рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдРрд╕реЗ рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдХреЗ рд▓рд┐рдП рдЬрд┐рдирдореЗрдВ рдХрдИ рдЫреЛрдЯреЗ рддрд░реАрдХреЗ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ (рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдкреНрд░реЛрдЧреНрд░рд╛рдо рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рд╕рд╣реА рд╣реИ), рдПрдореНрдмреЗрдбрд┐рдВрдЧ рд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рддреНрд╡рд░рдг рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдРрд╕рд╛ рдЗрд╕рд▓рд┐рдП рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдЕрдкрдирд╛ рдЕрдзрд┐рдХрд╛рдВрд╢ рд╕рдордп рдХрд╛рд░реНрдп рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рд╡рд┐рдзрд┐ рдХреЙрд▓ рдкрд░ рдЦрд░реНрдЪ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ! рд╣рдо рдпрд╣ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХрдВрдкрд╛рдЗрд▓рд░рдХрдВрдЯреНрд░реЛрд▓ рдПрдиреЛрдЯреЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЬреЗрдПрдордПрдЪ рдореЗрдВ рд╡рд┐рдзрд┐ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВред рд╣рдо рдереЛрдбрд╝реА рджреЗрд░ рдмрд╛рдж рдЗрдирд▓рд╛рдЗрди рдХреИрд╢ рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛ рдкрд░ рд▓реМрдЯ рдЖрдПрдВрдЧреЗред



рдкрджрд╛рдиреБрдХреНрд░рдо рдХреА рдЧрд╣рд░рд╛рдИ рдФрд░ рддрд░реАрдХреЛрдВ рдХреЗ рдкреБрдирд░реНрд╡рд┐рддрд░рдг


рдЫрд╡рд┐

рдпрджрд┐ рд╣рдо рдЕрдВрддрд┐рдо рдХреАрд╡рд░реНрдб рдХреЛ рд╡рд┐рдзрд┐ рд╕реЗ рд╣рдЯрд╛рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓реЗрддреЗ рд╣реИрдВ, рддреЛ рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рд╣рдо рдЗрд╕реЗ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░ рдкрд╛рдПрдВрдЧреЗред рдпрд╣ рд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдФрд░ рдХрд╛рд░рдХ рд╣реИред рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рд╡рд┐рдзрд┐рдпрд╛рдВ рд▓реАрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдХрдХреНрд╖рд╛ рдХреЗ рдкрджрд╛рдиреБрдХреНрд░рдо рдХреЗ рд╡рд┐рднрд┐рдиреНрди рд╕реНрддрд░реЛрдВ рдкрд░ рдмреБрд▓рд╛рдпрд╛; рдкрджрд╛рдиреБрдХреНрд░рдо рдХреЗ рд╡рд┐рднрд┐рдиреНрди рд╕реНрддрд░реЛрдВ рдкрд░ рдкреБрдирд░реНрдкрд░рд┐рднрд╛рд╖рд┐рдд рддрд░реАрдХреЗ рднреА рдереЗред рдЗрд╕рдиреЗ рдореБрдЭреЗ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреА рдХрд┐ рд╡рд┐рдзрд┐ рдХреЗ рдУрд╡рд░рд░рд╛рдЗрдбреНрд╕ рдХреЗ рд╕рд╛рде рд╡рд░реНрдЧ рдкрджрд╛рдиреБрдХреНрд░рдо рдХрд┐рддрдиреА рдЧрд╣рд░рд╛рдИ рд╕реЗ рдмрд╛рддрдЪреАрдд рдХрд░рддреЗ рд╣реИрдВред



рдмрд╣реБрд░реВрдкрддрд╛


рдЫрд╡рд┐

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



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



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



рдЗрд╕ рдкреНрд░рдХрд╛рд░, 3 рдкреНрд░рдХрд╛рд░ рдХреА рдХреЙрд▓ рдХреЛ рддреБрд▓рдирд╛ рдФрд░ рдЕрдиреБрд╕рдВрдзрд╛рди рдХреЗ рд▓рд┐рдП рдкреНрд░рддрд┐рд╖реНрдард┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ: рдореЛрдиреЛрдореЛрд░реНрдлрд┐рдХ, рдмрд┐рдореЙрд░реНрдл рдФрд░ рдореЗрдЧрд╛рдореЛрд░реНрдлрд░ рдХреЙрд▓ рдХреЗ рдорд╛рдорд▓реЗред



рдкрд░рд┐рдгрд╛рдо


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



рдЗрди рдмреЗрдВрдЪрдорд╛рд░реНрдХ рдХреЗ рд▓рд┐рдП рд╕реЛрд░реНрд╕ рдХреЛрдб GitHub рдкрд░ рдЙрдкрд▓рдмреНрдз рд╣реИ ред рднреНрд░рдо рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рд╡рд┐рднрд┐рдиреНрди рдмреНрд▓реЙрдХреЛрдВ рдореЗрдВ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ред рдкреЙрд▓реАрдореЙрд░реНрдлрд┐рдХ рдмреЗрдВрдЪрдорд╛рд░реНрдХ рдкреЙрд▓реАрдореЙрд░реНрдлрд┐рдХ рдмреЗрдВрдЪрдорд╛рд░реНрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдФрд░ рдмрд╛рдХреА рдЬрд╛рд╡рд╛рдлрд╛рдЗрдирд▓ рдмреИрдВрдЪрдорд╛рд░реНрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдирд┐рд░реНрдорд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред



рд╕рд░рд▓ рдХреЙрд▓


 Benchmark Mode Samples Mean Mean error Units cijJavaFinalBenchmark.finalInvoke avgt 25 2.606 0.007 ns/op cijJavaFinalBenchmark.virtualInvoke avgt 25 2.598 0.008 ns/op cijJavaFinalBenchmark.alwaysOverriddenMethod avgt 25 2.609 0.006 ns/op
      
      





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



рд╕рд░рд▓ рдХреЙрд▓рд┐рдВрдЧ рдПрдВрдмреЗрдбрд┐рдВрдЧ


 Benchmark Mode Samples Mean Mean error Units cijJavaFinalBenchmark.inlinableFinalInvoke avgt 25 0.782 0.003 ns/op cijJavaFinalBenchmark.inlinableVirtualInvoke avgt 25 0.780 0.002 ns/op cijJavaFinalBenchmark.inlinableAlwaysOverriddenMethod avgt 25 1.393 0.060 ns/op
      
      





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



рд╡рд░реНрдЧ рдкрджрд╛рдиреБрдХреНрд░рдо рдХрд╛ рдкреНрд░рднрд╛рд╡


 Benchmark Mode Samples Mean Mean error Units cijJavaFinalBenchmark.parentMethod1 avgt 25 2.600 0.008 ns/op cijJavaFinalBenchmark.parentMethod2 avgt 25 2.596 0.007 ns/op cijJavaFinalBenchmark.parentMethod3 avgt 25 2.598 0.006 ns/op cijJavaFinalBenchmark.parentMethod4 avgt 25 2.601 0.006 ns/op cijJavaFinalBenchmark.inlinableParentMethod1 avgt 25 1.373 0.006 ns/op cijJavaFinalBenchmark.inlinableParentMethod2 avgt 25 1.368 0.004 ns/op cijJavaFinalBenchmark.inlinableParentMethod3 avgt 25 1.371 0.004 ns/op cijJavaFinalBenchmark.inlinableParentMethod4 avgt 25 1.371 0.005 ns/op
      
      





рд╡рд╛рд╣, рдпрд╣ рддрд░реАрдХреЛрдВ рдХрд╛ рдПрдХ рдмрдбрд╝рд╛ рдмреНрд▓реЙрдХ рд╣реИ! рдкреНрд░рддреНрдпреЗрдХ рдХреНрд░рдорд╛рдВрдХрд┐рдд рд╡рд┐рдзрд┐ рдХреЙрд▓ (1-4) рд╕реЗ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рдХрдХреНрд╖рд╛ рдкрджрд╛рдиреБрдХреНрд░рдо рдореЗрдВ рд╡рд┐рдзрд┐ рдХреЛ рдХрд┐рддрдиреА рдЧрд╣рд░рд╛рдИ рд╕реЗ рдмреБрд▓рд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ред рддреЛ parentMethod4 рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рд╣рдо 4 рд╡реАрдВ рдореВрд▓ рдХрдХреНрд╖рд╛ рдореЗрдВ рдШреЛрд╖рд┐рдд рд╡рд┐рдзрд┐ рдХреЛ рдХрд╣рддреЗ рд╣реИрдВред рдпрджрд┐ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЛ рджреЗрдЦреЗрдВ, рддреЛ 1 рдФрд░ 4 рдХреЗ рдмреАрдЪ рдХрд╛ рдЕрдВрддрд░ рдмрд╣реБрдд рдЫреЛрдЯрд╛ рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╣рдо рдпрд╣ рдирд┐рд╖реНрдХрд░реНрд╖ рдирд┐рдХрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдкрджрд╛рдиреБрдХреНрд░рдо рдХреА рдЧрд╣рд░рд╛рдИ рдорд╛рдпрдиреЗ рдирд╣реАрдВ рд░рдЦрддреА рд╣реИред рдПрдореНрдмреЗрдб рдХрд░рддреЗ рд╕рдордп, рд╣рд░ рдХреЛрдИ рдПрдХ рд╣реА рдкреИрдЯрд░реНрди рдХрд╛ рдЕрдиреБрд╕рд░рдг рдХрд░рддрд╛ рд╣реИ: рдкрджрд╛рдиреБрдХреНрд░рдо рдХреА рдЧрд╣рд░рд╛рдИ рдорд╛рдпрдиреЗ рдирд╣реАрдВ рд░рдЦрддреА рд╣реИред рд╣рдорд╛рд░реА рдЗрдирд▓рд╛рдЗрди рд╡рд┐рдзрд┐ рдХрд╛ рдкреНрд░рджрд░реНрд╢рди рдЗрдирд▓рд╛рдЗрди рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд╣реИред рдореИрдВ рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рдЬрд╛рдБрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЯрд╛рдЗрдк рдХрд░реВрдБрдЧрд╛ред рдЬреЗрдЖрдИрдЯреА рдХрдВрдкрд╛рдЗрд▓рд░ рддрд░реАрдХреЛрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдХреЗрд╡рд▓ рдПрдХ рдореЗрдВ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╕рд╛рдмрд┐рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╣рдореЗрд╢рд╛ рдРрд╕рд╛ рд░рд╣реЗрдЧрд╛ред



рдЕрдВрддрд┐рдо рддрд░реАрдХреЛрдВ рдкрд░ рд╡рд░реНрдЧ рдкрджрд╛рдиреБрдХреНрд░рдо рдХрд╛ рдкреНрд░рднрд╛рд╡


 Benchmark Mode Samples Mean Mean error Units cijJavaFinalBenchmark.parentFinalMethod1 avgt 25 2.598 0.007 ns/op cijJavaFinalBenchmark.parentFinalMethod2 avgt 25 2.596 0.007 ns/op cijJavaFinalBenchmark.parentFinalMethod3 avgt 25 2.640 0.135 ns/op cijJavaFinalBenchmark.parentFinalMethod4 avgt 25 2.601 0.009 ns/op cijJavaFinalBenchmark.inlinableParentFinalMethod1 avgt 25 1.373 0.004 ns/op cijJavaFinalBenchmark.inlinableParentFinalMethod2 avgt 25 1.375 0.016 ns/op cijJavaFinalBenchmark.inlinableParentFinalMethod3 avgt 25 1.369 0.005 ns/op cijJavaFinalBenchmark.inlinableParentFinalMethod4 avgt 25 1.371 0.003 ns/op
      
      





рдпрд╣рд╛рдБ рдКрдкрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рд╣реА рдпреЛрдЬрдирд╛ рд╣реИ - рдЕрдВрддрд┐рдо рдХреАрд╡рд░реНрдб рдХрд╛ рдХреЛрдИ рдорддрд▓рдм рдирд╣реАрдВ рд╣реИред рдореИрдВрдиреЗ рд╕реЛрдЪрд╛ рдХрд┐ рдпрд╣ рд╕реИрджреНрдзрд╛рдВрддрд┐рдХ рд░реВрдк рд╕реЗ рдпрд╣рд╛рдБ рд╕рд╛рдмрд┐рдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЗрдирд▓рд╛рдЗрдиреЗрдмрд▓рдкреЗрд░реЗрдВрдЯрдлрд╛рдЗрдирд▓рдореЗрдереЛрдб 4 рдПрдВрдмреЗрдбреЗрдмрд▓ рд╣реИ рдФрд░ рдЯрд╛рдЗрдк рдЪреЗрдХрд┐рдВрдЧ рдХреЛ рдмрд╛рд╣рд░ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдРрд╕рд╛ рдирд╣реАрдВ рд▓рдЧрддрд╛ рд╣реИред



рдмрд╣реБрд░реВрдкрддрд╛


 Monomorphic: 2.816 +- 0.056 ns/op Bimorphic: 3.258 +- 0.195 ns/op Megamorphic: 4.896 +- 0.017 ns/op Inlinable Monomorphic: 1.555 +- 0.007 ns/op Inlinable Bimorphic: 1.555 +- 0.004 ns/op Inlinable Megamorphic: 4.278 +- 0.013 ns/op
      
      





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



рд╣рдо рдХреНрдпрд╛ рд╕рдордЭрддреЗ рд╣реИрдВ?


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





рдореИрдВ рдХрд╣реВрдВрдЧрд╛ рдХрд┐ рдЯрд╛рдЗрдк рдЪреЗрдХрд┐рдВрдЧ рдХреА рдХреАрдордд рдореЗрд░рд╛ рд╡реНрдпрдХреНрддрд┐рдЧрдд "рдмрдбрд╝рд╛ рд░рд╣рд╕реНрдпреЛрджреНрдШрд╛рдЯрди" рд╣реИред рдпрд╣ рдХреБрдЫ рдРрд╕рд╛ рд╣реИ рдЬреЛ рдореИрдВ рджреЗрдЦрддрд╛ рд╣реВрдВ рдХрд┐ рд╢рд╛рдпрдж рд╣реА рдХрднреА рдЪрд░реНрдЪрд╛ рдХреА рдЬрд╛рддреА рд╣реИ рдФрд░ рдЕрдХреНрд╕рд░ рдЙрдкреЗрдХреНрд╖рд╛ рдХреА рдЬрд╛рддреА рд╣реИред



рдЪреЗрддрд╛рд╡рдиреА рдФрд░ рдЖрдЧреЗ рдХрд╛ рдХрд╛рдо


рдмреЗрд╢рдХ, рдпрд╣ рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рдПрдХрдорд╛рддреНрд░ рд╕рдВрднрд╡ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдирд╣реАрдВ рд╣реИ!





рд╢рд╛рдпрдж рдпреЗ рднрд╡рд┐рд╖реНрдп рдХреЗ рдкрджреЛрдВ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╖рдп рд╣реИрдВред



рдзрдиреНрдпрд╡рд╛рдж:

- рдмреЗрдВрдЪрдорд╛рд░реНрдХ рдкрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдПрд▓реЗрдХреНрд╕реА рд╢рд┐рдкрд┐рд▓реЗрд╡ ,

- рдорд╛рд░реНрдЯрд┐рди рдереЙрдореНрдкрд╕рди , рдорд╛рд░реНрдЯрд┐рдЬрд╝рди рд╡рд░реНрдмрд░реНрдЧ, рд╕рд╛рджрд┐рдХ рдЬрд╛рдлрд░ рдФрд░ рдХреНрд░рд┐рд╕ рд╡реЗрд╕реНрдЯ рдХреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП - рдореЗрд░реЗ рдмреНрд▓реЙрдЧ рдкрд░ рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдФрд░ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдПред



All Articles