рд╣рдо GraalVM рдХреЗ рдХрд╛рдо рд╕реЗ рдирд┐рдкрдЯрдирд╛ рдЬрд╛рд░реА рд░рдЦрддреЗ рд╣реИрдВ, рдФрд░ рдЗрд╕ рдмрд╛рд░ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд▓реЗрдЦ рдХрд╛ рдПрдХ рдЕрдиреБрд╡рд╛рдж рд╣реИ рдЬрд┐рд╕рдХрд╛ рдирд╛рдо рд╣реИ Aleksandar Prokopec "рдЕрдВрдбрд░ рдж рд╣реБрдб рдСрдл рдЧреНрд░реЗрд╡рд▓рдо JIT рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝реЗрд╢рди", рдЬреЛ рдореВрд▓ рд░реВрдк рд╕реЗ рдмреНрд▓реЙрдЧ рдкрд░ рдкреНрд░рдХрд╛рд╢рд┐рдд рд╣реБрдЖ рд╣реИред рд▓реЗрдЦ рдореЗрдВ рдХреБрдЫ рджрд┐рд▓рдЪрд╕реНрдк рд▓рд┐рдВрдХ рд╣реИрдВ, рдмрд╛рдж рдореЗрдВ рд╣рдо рдЗрди рд▓реЗрдЦреЛрдВ рдХрд╛ рдЕрдиреБрд╡рд╛рдж рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВрдЧреЗред

рдкрд┐рдЫрд▓реА рдмрд╛рд░ рдореАрдбрд┐рдпрдо рдкрд░, рд╣рдордиреЗ рдЬрд╛рд╡рд╛ рд╣реЙрдЯрд╕реНрдкреЙрдЯ рд╡реАрдПрдо рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЧреНрд░реЗрд╡рд▓рдо рдкрд░ рдЬрд╛рд╡рд╛ рд╕реНрдЯреНрд░реАрдо рдПрдкреАрдЖрдИ рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХреЗ рдореБрджреНрджреЛрдВ рдХреЛ рджреЗрдЦрд╛ред GraalVM рдХреЛ рдЙрдЪреНрдЪ рдкреНрд░рджрд░реНрд╢рди рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИ, рдФрд░ рдЙрди рдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ рд╣рдордиреЗ 1.7 рд╕реЗ 5 рдмрд╛рд░ рддреНрд╡рд░рдг рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ред рдмреЗрд╢рдХ, рдкреНрд░рджрд░реНрд╢рди рд▓рд╛рдн рдХреЗ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдореВрд▓реНрдп рд╣рдореЗрд╢рд╛ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдЪрд▓рд╛рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдХреЛрдб рдФрд░ рд▓реЛрдб рдбреЗрдЯрд╛ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░реЗрдВрдЧреЗ, рдЗрд╕рд▓рд┐рдП рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рдЖрдк рдХреЛрдИ рдирд┐рд╖реНрдХрд░реНрд╖ рдирд┐рдХрд╛рд▓реЗрдВ, рдЖрдкрдХреЛ рдЕрдкрдиреЗ рдХреЛрдб рдХреЛ рдЦреБрдж GraalVM рдкрд░ рдЪрд▓рд╛рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рд╣рдо GraalVM рдХреЗ рдЗрдирд╕рд╛рдЗрдб рдореЗрдВ рдЧрд╣рд░рд╛рдИ рд╕реЗ рдЬрд╛рдПрдВрдЧреЗ рдФрд░ рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ JIT рд╕рдВрдХрд▓рди рдХреИрд╕реЗ рд╣реЛрддрд╛ рд╣реИред
рдЧреНрд░реЗрд╡рд╛рд▓рдо рдореЗрдВ рдЬреЗрдЖрдИрдЯреА рдЕрдиреБрдХреВрд▓рди
рдЖрдЗрдП рдХрдИ рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝реЗрд╢рдиреЛрдВ рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВ, рдЬреЛ рдЧреНрд░реЗрд╡рд╛рд▓рдо рд╕рдВрдХрд▓рдХ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рд╣рдо рдХреЗрд╡рд▓ рдЙрдирдХреЗ рдХрд╛рдо рдХреЗ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рд╕рдмрд╕реЗ рджрд┐рд▓рдЪрд╕реНрдк рдЕрдиреБрдХреВрд▓рди рдкрд░ рд╕реНрдкрд░реНрд╢ рдХрд░реЗрдВрдЧреЗред рдпрджрд┐ рдЖрдк рдЧрд╣рд░реА рдЦреБрджрд╛рдИ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ GraalVM рд╕рдВрдХрд▓рдХ рдЕрдиреБрдХреВрд▓рди рдХрд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рдЕрд╡рд▓реЛрдХрди рдХрд╛рд░реНрдп рдореЗрдВ рд╣реИ "рдЖрдХреНрд░рд╛рдордХ JIT рд╕рдВрдХрд▓рди рдХреЗ рд╕рд╛рде рд╕рдВрдЧреНрд░рд╣ рд╕рдВрдЪрд╛рд▓рди рдХреЛ рдЗрд╖реНрдЯрддрдо рдмрдирд╛рдиреЗ" ред
рдЗрдирд▓рд╛рдЗрдирд┐рдВрдЧ
рдпрджрд┐ рдЖрдк рд╕рдордп-рд╕рдордп рдкрд░ рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдХреЛ рдирд╣реАрдВ рдЫреВрддреЗ рд╣реИрдВ, рддреЛ рдЖрдзреБрдирд┐рдХ рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрдиреЛрдВ рдореЗрдВ рдЕрдзрд┐рдХрд╛рдВрд╢ рдЬреЗрдЖрдИрдЯреА рдХрдВрдкрд╛рдЗрд▓рд░реНрд╕ рдЗрди-рд╣рд╛рдЙрд╕ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рд╡рд┐рд╢реЗрд╖ рдХреНрд╖рдг рдореЗрдВ рдПрдХ рд╡рд┐рдзрд┐ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рд╣реЛрддрд╛ рд╣реИред рдЗрд╕ рдХрд╛рд░рдг рд╕реЗ, рдЗрдВрдЯреНрд░рд╛рдкреНрд░реЛрд╕реЗрд░реЗрдбреБрд░рд▓ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдкреВрд░реЗ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рдЗрдВрдЯрд░рдкреНрд░реЛрд╕реЗрд░реБрд░рд▓ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрд╣реБрдд рддреЗрдЬ рд╣реИ, рдЬреЛ рдЖрдорддреМрд░ рдкрд░ рдЬреЗрдЖрдИрдЯреА рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЗ рдХрд╛рдо рдХреЗ рд▓рд┐рдП рдЖрд╡рдВрдЯрд┐рдд рд╕рдордп рдореЗрдВ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рдПрдХ рд╕рдВрдХрд▓рдХ рдореЗрдВ рдЬреЛ рдЗрдВрдЯреНрд░рд╛-рдкреНрд░рдХреНрд░рд┐рдпрд╛рддреНрдордХ рдЕрдиреБрдХреВрд▓рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рд╕рдордп рдореЗрдВ рдПрдХ рд╡рд┐рдзрд┐ рдХрд╛ рдЕрдиреБрдХреВрд▓рди), рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдореВрд▓рднреВрдд рдЕрдиреБрдХреВрд▓рди рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИред Inlining рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдкреНрд░рднрд╛рд╡реА рд░реВрдк рд╕реЗ рд╡рд┐рдзрд┐ рдХреЛ рдмрдврд╝рд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рд╕рдВрдХрд▓рдХ рдПрдХ рд╕рд╛рде рдХреЛрдб рдХреЗ рдХрдИ рдЯреБрдХрдбрд╝реЛрдВ рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рдЕрд╡рд╕рд░ рджреЗрдЦ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ рдЕрд╕рдВрдмрдВрдзрд┐рдд рддрд░реАрдХреЛрдВ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкрд┐рдЫрд▓реЗ рд▓реЗрдЦ рд╕реЗ volleyballStars
рд╡рд┐рдзрд┐ рдХреЛ рд▓реЗрдВ:
@Benchmark public double volleyballStars() { return Arrays.stream(people) .map(p -> new Person(p.hair, p.age + 1, p.height)) .filter(p -> p.height > 198) .filter(p -> p.age >= 18 && p.age <= 21) .mapToInt(p -> p.age) .average().getAsDouble(); }
рдЗрд╕ рдЖрд░реЗрдЦ рдореЗрдВ, рд╣рдо рдЗрд╕ рдкрджреНрдзрддрд┐ рдХреЗ рдордзреНрдпрд╡рд░реНрддреА рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ (IR) рдХреЗ рдХреБрдЫ рд╣рд┐рд╕реНрд╕реЛрдВ рдХреЛ рдЧреНрд░реИрд▓реНрд╡реАрдПрдо рдореЗрдВ рджреЗрдЦрддреЗ рд╣реИрдВ, рдлрд┐рд▓рд╣рд╛рд▓ рдЗрд╕реА рдЬрд╛рд╡рд╛ рдмрд╛рдЗрдЯрдХреЛрдб рдХреЗ рдкрд╛рд░реНрд╕рд┐рдВрдЧ рдХреЗ рддреБрд░рдВрдд рдмрд╛рджред

рдЖрдк рдЗрд╕ рдЖрдИрдЖрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╕реНрдЯреЗрд░реЙрдпрдб рдкрд░ рдХреБрдЫ рдкреНрд░рдХрд╛рд░ рдХреЗ рдЕрдореВрд░реНрдд рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рдкреЗрдбрд╝ - рдЗрд╕рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдХреБрдЫ рдЕрдиреБрдХреВрд▓рди рдкреНрд░рджрд░реНрд╢рди рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИред рдЗрд╕рд╕реЗ рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ рдХрд┐ рдпрд╣ IR рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрджрд┐ рдЖрдк рдЗрд╕ рд╡рд┐рд╖рдп рдХреЛ рдЕрдзрд┐рдХ рдЧрд╣рд░рд╛рдИ рд╕реЗ рд╕рдордЭрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк "Graal IR: рдПрдХ рдПрдХреНрд╕реНрдЯреЗрдВрд╕рд┐рдмрд▓ рдбрд┐рдХреНрд▓реЗрд░реЗрдЯрд┐рд╡ рдЗрдВрдЯрд░рдореАрдбрд┐рдПрдЯ рд░рд┐рдкреНрд░реЗрдЬреЗрдВрдЯреЗрд╢рди" рдирд╛рдордХ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЛ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред
рдпрд╣рд╛рдВ рдореБрдЦреНрдп рдирд┐рд╖реНрдХрд░реНрд╖ рдпрд╣ рд╣реИ рдХрд┐ рдЧреНрд░рд╛рдл рдХреЗ рдкреАрд▓реЗ рдиреЛрдбреНрд╕ рджреНрд╡рд╛рд░рд╛ рдЗрдВрдЧрд┐рдд рд╡рд┐рдзрд┐ рдХрд╛ рдирд┐рдпрдВрддреНрд░рдг рдкреНрд░рд╡рд╛рд╣ рдФрд░ рд▓рд╛рд▓ рд░реЗрдЦрд╛рдПрдВ рдХреНрд░рдорд┐рдХ рд░реВрдк рд╕реЗ Stream
рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рддрд░реАрдХреЛрдВ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддреА рд╣реИрдВ: Stream.filter
, Stream.mapToInt
, IntStream.average
ред рдЗрди рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рдХреЛрдб рдореЗрдВ рдХреНрдпрд╛ рд╣реИ, рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рдЯреАрдХ рдЬрд╛рдирдХрд╛рд░реА рдХрд╛ рдЕрднрд╛рд╡, рд╕рдВрдХрд▓рдХ рд╡рд┐рдзрд┐ рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реИ - рдФрд░ рдпрд╣рд╛рдВ рдЗрдирд▓рд╛рдЗрдирд┐рдВрдЧ рдмрдЪрд╛рд╡ рдХреЗ рд▓рд┐рдП рдЖрддреА рд╣реИ!
рдЗрдирд▓рд╛рдЗрдирд┐рдВрдЧ рдирд╛рдордХ рдПрдХ рдкрд░рд┐рд╡рд░реНрддрди рдПрдХ рдмрд╣реБрдд рд╣реА рд╕рдордЭ рдореЗрдВ рдЖрдиреЗ рд╡рд╛рд▓реА рдмрд╛рдд рд╣реИ: рдпрд╣ рд╕рд┐рд░реНрдл рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдерд╛рдиреЛрдВ рдХреА рддрд▓рд╛рд╢ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдЗрд╕реА рдЗрдирд▓рд╛рдЗрди рд╡рд┐рдзрд┐ рдХреЗ рд╢рд░реАрд░ рдХреЗ рд╕рд╛рде рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЙрдиреНрд╣реЗрдВ рдЕрдВрджрд░ рдПрдореНрдмреЗрдб рдХрд░рддрд╛ рд╣реИред рдЖрдЗрдП рддрд░реАрдХреЛрдВ рдХреЗ рднрд╛рдЧ рдХреЛ рдЗрдирд▓рд╛рдЗрди рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рд╡реЙрд▓реАрдмреЙрд▓рд╕реНрдЯрд╛рд░ рд╡рд┐рдзрд┐ рдХреЗ рдЖрдИрдЖрд░ рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВред рдХреЗрд╡рд▓ рд╡рд╣ рднрд╛рдЧ рдЬреЛ IntStream.average
рдХреЙрд▓ рдХрд╛ рдЕрдиреБрд╕рд░рдг рдХрд░рддрд╛ рд╣реИ, IntStream.average
:

рдЖрд░реЗрдЦ рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдХрд┐ getAsDouble
(рдиреЛрдб рдирдВрдмрд░ 71) рдкрд░ рдХреЙрд▓ рдЖрдИрдЖрд░ рд╕реЗ рдЧрд╛рдпрдм рд╣реЛ рдЧрдИ рд╣реИред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ getAsDouble
рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ getAsDouble
рд╡рд┐рдзрд┐ IntStream.average
( volleyballStars
IntStream.average
рд╡рд┐рдзрд┐ рдореЗрдВ рдЕрдВрддрд┐рдо рдХреЙрд▓) рд╕реЗ IntStream.average
рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:
public double getAsDouble() { if (!isPresent) { throw new NoSuchElementException("No value present"); } return value; }
рдпрд╣рд╛рдВ рд╣рдо isPresent
рдлрд╝реАрд▓реНрдб (рдиреЛрдб рдирдВрдмрд░ 190, LoadField
) рдХреА LoadField
рдФрд░ value
рдлрд╝реАрд▓реНрдб рдХреЛ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВред рд╣рд╛рд▓рд╛рдБрдХрд┐, NoSuchElementException
рдЕрдкрд╡рд╛рдж рдХреЗ рдХреЛрдИ рдирд┐рд╢рд╛рди рдирд╣реАрдВ NoSuchElementException
рд╣реИрдВ, рдФрд░ рдХреЛрдИ рдФрд░ рдХреЛрдб рдирд╣реАрдВ рд╣реИ рдЬреЛ рдЗрд╕реЗ рдлреЗрдВрдХрддрд╛ рд╣реИред
рдЗрд╕рдХрд╛ рдХрд╛рд░рдг рдпрд╣ рд╣реИ рдХрд┐ GraalVM рд╕рдВрдХрд▓рдХ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рддрд╛ рд╣реИ: рд╡реЙрд▓реАрдмреЙрд▓рд╕реНрдЯрд╛рд░ рд╡рд┐рдзрд┐ рдХрднреА рднреА рдЕрдкрд╡рд╛рдж рдирд╣реАрдВ рдлреЗрдВрдХреЗрдЧреАред рдпрд╣ рдЬреНрдЮрд╛рди рдЖрдорддреМрд░ рдкрд░ getAsDouble
рд╕рдВрдХрд▓рди рдХреЗ рджреМрд░рд╛рди рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реИ - рдЗрд╕реЗ рдХрд╛рд░реНрдпрдХреНрд░рдо рдореЗрдВ рдХрдИ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╕реНрдерд╛рдиреЛрдВ рд╕реЗ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдХреБрдЫ рдЕрдиреНрдп рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдЕрдкрд╡рд╛рдж рдЕрднреА рднреА рдХрд╛рдо рдХрд░реЗрдЧрд╛ред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдПрдХ рд╡рд┐рд╢реЗрд╖ рд╡реЙрд▓реАрдмреЙрд▓ рд╕реНрдЯрд╛рд░реНрд╕ рд╡рд┐рдзрд┐ рдореЗрдВ, рдПрдХ рдЕрдкрд╡рд╛рдж рд╣реЛрдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдирд╣реАрдВ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╕рдВрднрд╛рд╡рд┐рдд рд╡реЙрд▓реАрдмреЙрд▓ рд╕рд┐рддрд╛рд░реЛрдВ рдХрд╛ рд╕реЗрдЯ рдХрднреА рдЦрд╛рд▓реА рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рдЗрд╕ рдХрд╛рд░рдг рд╕реЗ, GraalVM рд╢рд╛рдЦрд╛ рдХреЛ рд╣рдЯрд╛ рджреЗрддрд╛ рд╣реИ рдФрд░ FixedGuard
рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░рддрд╛ рд╣реИ - рдПрдХ рдиреЛрдб рдЬреЛ рд╣рдорд╛рд░реА рдзрд╛рд░рдгрд╛ рдХреЗ рдЙрд▓реНрд▓рдВрдШрди рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдХреЛрдб рдХрд╛ рдЕрдиреБрдХреВрд▓рди рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдПрдХ рдХрд╛рдлреА рдиреНрдпреВрдирддрд░ рдЙрджрд╛рд╣рд░рдг рд╣реИ, рдФрд░ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЬреАрд╡рди рдореЗрдВ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рдорд╛рдорд▓реЗ рд╣реИрдВ рдХрд┐ рдЗрдирд▓рд╛рдЗрдирд┐рдВрдЧ рдЕрдиреНрдп рдЕрдиреБрдХреВрд▓рди рдХреЛ рдХреИрд╕реЗ рдорджрдж рдХрд░рддрд╛ рд╣реИред
рд╣рдо рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЙрд▓ рдЯреНрд░реА рдЖрдорддреМрд░ рдкрд░ рдмрд╣реБрдд рдЧрд╣рд░рд╛ рд╣реЛрддрд╛ рд╣реИ рдпрд╛ рд╢рд╛рдпрдж рдЕрдВрддрд╣реАрди рднреАред рддреЛ, рдХреБрдЫ рдмрд┐рдВрджреБ рдкрд░ рдЗрдирд▓рд╛рдЗрдирд┐рдВрдЧ рдХреЛ рд░реЛрдХрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ - рдЗрд╕рдореЗрдВ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рдордп рдФрд░ рдореЗрдореЛрд░реА рдЖрдХрд╛рд░ рдкрд░ рдмрд╣реБрдд рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреНрд░рддрд┐рдмрдВрдз рд╣реИрдВред рдпрд╣ рдЬрд╛рдирддреЗ рд╣реБрдП, рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ: рдЗрдирд▓рд╛рдЗрди рдХреНрдпрд╛ рдФрд░ рдХрдм рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдирд╛ рдмрд╣реБрдд рдореБрд╢реНрдХрд┐рд▓ рд╣реИред
рдкреЙрд▓рд┐рдореЙрд░реНрдлрд┐рдХ рдЗрдирд▓рд╛рдЗрдирд┐рдВрдЧ
рдЗрдирд▓рд╛рдЗрдирд┐рдВрдЧ рдХреЗрд╡рд▓ рддрднреА рдХрд╛рдо рдХрд░рддреА рд╣реИ рдЬрдм рдХрдВрдкрд╛рдЗрд▓рд░ рдЙрд╕ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡рд┐рдзрд┐ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рд╡рд┐рдзрд┐ рдХреЙрд▓ рдСрдкрд░реЗрд╢рди рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рд╣реИред рд▓реЗрдХрд┐рди рдЬрд╛рд╡рд╛ рдореЗрдВ, рдЖрдорддреМрд░ рдкрд░ рдЙрди рддрд░реАрдХреЛрдВ рдХреЗ рд▓рд┐рдП рдХрдИ рдЕрдкреНрд░рддреНрдпрдХреНрд╖ рдХреЙрд▓ рд╣реЛрддреЗ рд╣реИрдВ рдЬрд┐рдирдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╕реНрдЯреИрдЯрд┐рдХреНрд╕ рдореЗрдВ рдЕрдЬреНрдЮрд╛рдд рд╣реЛрддреЗ рд╣реИрдВ, рдЬрд┐рдиреНрд╣реЗрдВ рд╡рд░реНрдЪреБрдЕрд▓ рд╡реЙрдЪ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд░рдирдЯрд╛рдЗрдо рдореЗрдВ рдЦреЛрдЬрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, IntStream.average
рдкрджреНрдзрддрд┐ рдХреЛ рд▓реЗрдВред рдЗрд╕рдХрд╛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:
@Override public final OptionalDouble average() { long[] avg = collect( () -> new long[2], (ll, i) -> { ll[0]++; ll[1] += i; }, (ll, rr) -> { ll[0] += rr[0]; ll[1] += rr[1]; }); return avg[0] > 0 ? OptionalDouble.of((double) avg[1] / avg[0]) : OptionalDouble.empty(); }
рдХреЛрдб рдХреА рд╕реНрдкрд╖реНрдЯ рд╕рд╛рджрдЧреА рдХреЛ рдореВрд░реНрдЦ рдордд рдмрдирдиреЗ рджреЛ! рдЗрд╕ рдкрджреНрдзрддрд┐ рдХреЛ collect
рдХреЙрд▓ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рдЬрд╛рджреВ рдпрд╣рд╛рдВ рд╣реЛрддрд╛ рд╣реИред рдЗрд╕ рдкрджреНрдзрддрд┐ рдХрд╛ рдХреЙрд▓ рдЯреНрд░реА (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХреЙрд▓ рдкрджрд╛рдиреБрдХреНрд░рдо) рддреЗрдЬреА рд╕реЗ рдмрдврд╝рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╣рдо collect
рдореЗрдВ рдЧрд╣рд░рд╛рдИ рд╕реЗ рдЧрд┐рд░рддреЗ collect
ред рдЗрд╕ рдЪрд┐рддреНрд░ рдХреЛ рджреЗрдЦреЗрдВ:

рдХреЙрд▓ рдЯреНрд░реА рдХреЛ рдЯреНрд░реЗрд╕ рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдХреБрдЫ рдмрд┐рдВрджреБ рд╕реЗ рд╢реБрд░реВ, рдЗрдирд▓рд╛рдЗрдирд░ рдЬрд╛рд╡рд╛ opWrapSink
рдлреНрд░реЗрдорд╡рд░реНрдХ рд╕реЗ opWrapSink
рдХреЙрд▓ рдХреЗ рдЦрд┐рд▓рд╛рдл рдЯрд┐рдХреА рд╣реБрдИ рд╣реИ, рдЬреЛ рдПрдХ рд╕рд╛рд░ рд╡рд┐рдзрд┐ рд╣реИ:

abstract<P_IN> Sink<P_IN> wrapSink(Sink<P_OUT> sink);
рдЖрдорддреМрд░ рдкрд░ рдПрдХ рдЗрдирд▓рд╛рдЗрдирд░ рдЖрдЧреЗ рдирд╣реАрдВ рдЬрд╛рдПрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдПрдХ рдЕрдкреНрд░рддреНрдпрдХреНрд╖ рдХреЙрд▓ рд╣реИред рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡рд┐рдзрд┐ рдХрд╛ рдирд┐рд░реНрдзрд╛рд░рдг рдХреЗрд╡рд▓ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рджреМрд░рд╛рди рд╣реЛрдЧрд╛, рдФрд░ рдЕрдм рдЬрдбрд╝рдирд╛рдХрд╛рд░ рдХреЛ рдпрд╣ рдирд╣реАрдВ рдкрддрд╛ рд╣реИ рдХрд┐ рд╡рд╣ рдХреНрдпрд╛ рдХрд╛рдо рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦреЗрдЧрд╛ред
GraalVM рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдХреБрдЫ рдФрд░ рд╣реЛрддрд╛ рд╣реИ: рдпрд╣ рдкреНрд░рддреНрдпреЗрдХ рдЕрдкреНрд░рддреНрдпрдХреНрд╖ рдбрд╛рдпрд▓ рдкреАрдпрд░ рдХреЗ рд▓рд┐рдП рд▓рдХреНрд╖реНрдп рд╡рд┐рдзрд┐ рдХрд╛ рдПрдХ рдкреНрд░рдХрд╛рд░ рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдмрдЪрд╛рддрд╛ рд╣реИред рдпрд╣ рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рд╕рд┐рд░реНрдл рдПрдХ рддрд╛рд▓рд┐рдХрд╛ рд╣реИ рдЬреЛ рдмрддрд╛рддреА рд╣реИ рдХрд┐ wrapSink
рдкреНрд░рддреНрдпреЗрдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рдХрд┐рддрдиреА рдмрд╛рд░ wrapSink
рдЧрдпрд╛ рдерд╛ред рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдЕрдирд╛рдо рдХрдХреНрд╖рд╛рдУрдВ рдореЗрдВ рддреАрди рдЕрд▓рдЧ-рдЕрд▓рдЧ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдиреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирддреА рд╣реИ: ReferencePipeline$2
, ReferencePipeline$3
, ReferencePipeline$4
ред рдпреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреНрд░рдорд╢рдГ 50%, 25% рдФрд░ 25% рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдХреЗ рд╕рд╛рде рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред
0.500000: Ljava/util/stream/ReferencePipeline$2; 0.250000: Ljava/util/stream/ReferencePipeline$4; 0.250000: Ljava/util/stream/ReferencePipeline$3; notRecorded: 0.000000
рдпрд╣ рдЬрд╛рдирдХрд╛рд░реА рд╕рдВрдХрд▓рдХ рдХреЛ рдЕрдореВрд▓реНрдп рд╕рд╣рд╛рдпрддрд╛ рдкреНрд░рджрд╛рди рдХрд░рддреА рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдЖрдкрдХреЛ рдЯрд╛рдЗрдкрд╕реНрд╡рд┐рдЪ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдорд┐рд▓рддреА рд╣реИ - рдПрдХ рдЫреЛрдЯрд╛ switch
рдЬреЛ рд░рдирдЯрд╛рдЗрдо рдореЗрдВ рд╡рд┐рдзрд┐ рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреА рдЬрд╛рдВрдЪ рдХрд░рддрд╛ рд╣реИ, рдлрд┐рд░ рдЙрдкрд░реЛрдХреНрдд рдорд╛рдорд▓реЛрдВ рдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡рд┐рдзрд┐ рдХрд╣рддрд╛ рд╣реИред рдиреАрдЪреЗ рджреА рдЧрдИ рдЫрд╡рд┐ рдордзреНрдпрд╡рд░реНрддреА рджреГрд╢реНрдп рдХрд╛ рдПрдХ рд╣рд┐рд╕реНрд╕рд╛ рджрд┐рдЦрд╛рддреА рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдЯрд╛рдЗрдкрд╡рд┐рдЪ (рддреАрди if
рдиреЛрдбреНрд╕) рджрд┐рдЦрд╛ рд░рд╣рд╛ рд╣реИ, if
рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдкреНрд░рд╛рдкреНрддрдХрд░реНрддрд╛ рдкреНрд░рдХрд╛рд░ ReferencePipeline$2
, ReferencePipeline$3
рдпрд╛ ReferencePipeline$4
ред рдкреНрд░рддреНрдпреЗрдХ InstanceOf
рдЪреЗрдХ рдХреЗ рд╕рдлрд▓ рдмреНрд░рд╛рдВрдЪрд┐рдВрдЧ рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдбрд╛рдпрд░реЗрдХреНрдЯ рдХреЙрд▓ рдЕрдм рдЗрдирд▓рд╛рдЗрди рд╣реЛ рд╕рдХрддреА рд╣реИ рдпрд╛ рдЗрд╕рдореЗрдВ рдХреБрдЫ рдЕрддрд┐рд░рд┐рдХреНрдд рдЕрдиреБрдХреВрд▓рди рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред рдпрджрд┐ рдХреЛрдИ рднреА рдкреНрд░рдХрд╛рд░ рдкрд░реАрдХреНрд╖рдг рдкрд╛рд╕ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдХреЛрдб рдХреЛ Deopt
рдиреЛрдб рдореЗрдВ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ Deopt
рд╣реИ (рдПрдХ рд╡рд┐рдХрд▓реНрдк рдХреЗ рд░реВрдк рдореЗрдВ, рдЖрдк рд╡рд░реНрдЪреБрдЕрд▓ рдкреНрд░реЗрд╖рдг рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВ)ред

рдпрджрд┐ рдЖрдк рдмрд╣реБрд░реВрдкрддрд╛ рдХреЛ рдФрд░ рдЕрдзрд┐рдХ рдЧрд╣рд░рд╛рдИ рд╕реЗ рд╕рдордЭрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдореИрдВ рдЗрд╕ рд╡рд┐рд╖рдп рдкрд░ рдХреНрд▓рд╛рд╕рд┐рдХ рдХрд╛рдо рдХрд░рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВ, "рдЗрдирд▓рд╛рдЗрдирд┐рдВрдЧ рдСрдл рд╡рд░реНрдЪреБрдЕрд▓ рдореИрдердбреНрд╕" ред
рдЖрдВрд╢рд┐рдХ рдкрд▓рд╛рдпрди рд╡рд┐рд╢реНрд▓реЗрд╖рдг
рдЖрдЗрдП рдЕрдкрдиреЗ рд╡реЙрд▓реАрдмреЙрд▓ рдЙрджрд╛рд╣рд░рдг рдкрд░ рд╡рд╛рдкрд╕ рдЬрд╛рдПрдВред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рд▓реИрдореНрдмрдбрд╛ рдХреЗ рдЕрдВрджрд░ рдЖрдмрдВрдЯрд┐рдд Person
рд╡рд╕реНрддреБрдУрдВ рдореЗрдВ рд╕реЗ рдХреЛрдИ рднреА map
рдХрд╛рд░реНрдп рдХреЗ рд▓рд┐рдП рдкрд╛рд╕ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, volleyballStars
рд╡рд┐рдзрд┐ рдХреЗ рджрд╛рдпрд░реЗ рд╕реЗ рдмрдЪ рдЬрд╛рддрд╛ рд╣реИред рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, рдЬрд┐рд╕ рд╕рдордп volleyballStars
рд╡рд┐рдзрд┐ рд╕рдорд╛рдкреНрдд рд╣реЛрддреА рд╣реИ, рд╕реНрдореГрддрд┐ рдХрд╛ рдРрд╕рд╛ рдХреЛрдИ рдХреНрд╖реЗрддреНрд░ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рдЬреЛ рдЯрд╛рдЗрдк Person
рдХреА рд╡рд╕реНрддреБрдУрдВ рдХреА рдУрд░ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реЛред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, getHeight
рдорд╛рди рдХрд╛ рд░рд┐рдХреЙрд░реНрдб рдХреЗрд╡рд▓ рдКрдВрдЪрд╛рдИ рдлрд╝рд┐рд▓реНрдЯрд░рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
volleyballStars
рд╡рд┐рдзрд┐ рдХреЗ рд╕рдВрдХрд▓рди рдХреЗ рджреМрд░рд╛рди рдХреБрдЫ рдмрд┐рдВрджреБ рдкрд░, рд╣рдо рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдЪрд┐рддреНрд░ рдореЗрдВ рджрд┐рдЦрд╛рдП рдЧрдП рдЖрдИрдЖрд░ рдкрд░ рдЖрддреЗ рд╣реИрдВред рдЖрд░рдВрднрд┐рдХ рдиреЛрдб -1621 рд╕реЗ рд╢реБрд░реВ рд╣реЛрдиреЗ рд╡рд╛рд▓рд╛ рдмреНрд▓реЙрдХ Person
рдСрдмреНрдЬреЗрдХреНрдЯ ( Alloc
рдиреЛрдб рдореЗрдВ) рдХреЗ рдЖрд╡рдВрдЯрди рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ 1 рдХреЗ рд╡реЗрддрди рд╡реГрджреНрдзрд┐ рдХреЗ рд╕рд╛рде age
рдХреНрд╖реЗрддреНрд░ рдХреЗ рдореВрд▓реНрдп рдФрд░ height
рдХреНрд╖реЗрддреНрд░ рдХреЗ рдкрд┐рдЫрд▓реЗ рдореВрд▓реНрдп рджреЛрдиреЛрдВ рдХреЗ рд╕рд╛рде рдЖрд░рдореНрдн рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред height
рдлрд╝реАрд▓реНрдб рдХреЛ рдкрд╣рд▓реЗ LoadField
-1539 рдиреЛрдб рдореЗрдВ рдкрдврд╝рд╛ рдЬрд╛рддрд╛ рд╣реИред рдЖрд╡рдВрдЯрди рдХрд╛ рдкрд░рд┐рдгрд╛рдо AllocatedObject -2137 рдореЗрдВ рд╕рдордЭрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ accept
-1625 рд╡рд┐рдзрд┐ рдХреЙрд▓ рдХреЗ рд▓рд┐рдП рднреЗрдЬрд╛ рдЧрдпрд╛ рд╣реИред рдХрдВрдкрд╛рдЗрд▓рд░ рдЗрд╕ рд╕рдордп рдФрд░ рдХреБрдЫ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИ - рдЙрд╕рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ, рдСрдмреНрдЬреЗрдХреНрдЯ volleyballStars
рд╡рд┐рдзрд┐ рд╕реЗ рдмрдЪ рдЧрдпрд╛ред ( рдЕрдиреБрд╡рд╛рджрдХ рдХрд╛ рдзреНрдпрд╛рди рджреЗрдВ: "рднрд╛рдЧрдХрд░ рдХрд┐рд╕реА рд╡рд╕реНрддреБ" рдХреЛ рдЕрдВрдЧреНрд░реЗрдЬреА рдореЗрдВ "рдПрд╕реНрдХреЗрдк" рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЕрдиреБрдХреВрд▓рди рдХрд╛ рдирд╛рдо "рдПрд╕реНрдХреЗрдк рдПрдирд╛рд▓рд┐рд╕рд┐рд╕" рд╣реИ ред

рдЙрд╕рдХреЗ рдмрд╛рдж, рд╕рдВрдХрд▓рдХ accept
рдХреЙрд▓ рдХреЛ рдЗрдирд▓рд╛рдЗрди рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓реЗрддрд╛ рд╣реИ - рдпрд╣ рдЙрдЪрд┐рдд рд▓рдЧрддрд╛ рд╣реИред рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рд╣рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд IR рдкрд░ рдЖрддреЗ рд╣реИрдВ:

рдФрд░ рдпрд╣рд╛рдВ рдЬреЗрдЖрдИрдЯреА рдХрдВрдкрд╛рдЗрд▓рд░ рдЖрдВрд╢рд┐рдХ рд░реВрдк рд╕реЗ рднрд╛рдЧрдиреЗ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рд╢реБрд░реВ рдХрд░рддрд╛ рд╣реИ: рдпрд╣ рдиреЛрдЯрд┐рд╕ рдХрд░рддрд╛ рд╣реИ рдХрд┐ AllocatedObject
рдЙрдкрдпреЛрдЧ рдХреЗрд╡рд▓ height
рдХреНрд╖реЗрддреНрд░ рдХреЛ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдпрд╛рдж рд░рдЦреЗрдВ, height
рдЙрдкрдпреЛрдЧ рдХреЗрд╡рд▓ рдлрд╝рд┐рд▓реНрдЯрд░рд┐рдВрдЧ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд╛рдВрдЪреЗрдВ рдХрд┐ рдКрдВрдЪрд╛рдИ 198 рд╕реЗ рдЕрдзрд┐рдХ рд╣реИ)ред рдЗрд╕рд▓рд┐рдП, рдХрдВрдкрд╛рдЗрд▓рд░ height
-2167 рдлрд╝реАрд▓реНрдб рдХреЗ рд░реАрдбрд┐рдВрдЧ рдХреЛ рдкреБрди: рдЕрд╕рд╛рдЗрди рдХрд░ рд╕рдХрддрд╛ рд╣реИ рддрд╛рдХрд┐ рд╕реАрдзреЗ рдиреЛрдб рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд╕рдХреЗ рдЬреЛ рдкрд╣рд▓реЗ Person
рдСрдмреНрдЬреЗрдХреНрдЯ ( Alloc
-2136 рдиреЛрдб) рдХреЛ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рдпрд╣ рд╣рдорд╛рд░рд╛ LoadField
-1539 рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЗрд╕рдХреЗ рдмрд╛рдж Alloc
рдиреЛрдб рдХрд┐рд╕реА рдЕрдиреНрдп рдиреЛрдб рдХреЗ рдЗрдирдкреБрдЯ рдкрд░ рдирд╣реАрдВ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдк рдмрд╕ рдЗрд╕реЗ рд╣рдЯрд╛ рд╕рдХрддреЗ рд╣реИрдВ - рдпрд╣ рдореГрдд рдХреЛрдб рд╣реИ!
рдпрд╣ рдЕрдиреБрдХреВрд▓рди, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдореБрдЦреНрдп рдХрд╛рд░рдг рд╣реИ рдХрд┐ рд╡реЙрд▓реАрдмреЙрд▓рд╕реНрдЯрд╛рд░ рдХрд╛ рдЙрджрд╛рд╣рд░рдг рдЧреНрд░реЗрд╡рд╛рд▓рдо рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдкрд╛рдВрдЪ рдЧреБрдирд╛ рддреНрд╡рд░рдг рдХрд╛ рдЕрдиреБрднрд╡ рд╣реБрдЖред рднрд▓реЗ рд╣реА рд╕рднреА Person
рд╡рд╕реНрддреБрдУрдВ рдХреА рдЬрд░реВрд░рдд рдирд╣реАрдВ рд╣реИ рдФрд░ рдирд┐рд░реНрдорд╛рдг рдХреЗ рддреБрд░рдВрдд рдмрд╛рдж рддреНрдпрд╛рдЧ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдлрд┐рд░ рднреА рдЙрдиреНрд╣реЗрдВ рдвреЗрд░ рдкрд░ рдЖрд╡рдВрдЯрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЙрдирдХреА рд╕реНрдореГрддрд┐ рдХреЛ рдЕрднреА рднреА рдЖрд░рдВрдн рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЖрдВрд╢рд┐рдХ рд░реВрдк рд╕реЗ рднрд╛рдЧрдиреЗ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдЖрдкрдХреЛ рдЖрд╡рдВрдЯрди рдХреЛ рдЦрддреНрдо рдХрд░рдиреЗ рдпрд╛ рдЙрдиреНрд╣реЗрдВ рдЙрди рдХреЛрдб рд╢рд╛рдЦрд╛рдУрдВ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдЬрд╣рд╛рдВ рдСрдмреНрдЬреЗрдХреНрдЯ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рднрд╛рдЧ рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ рдЬреЛ рдЕрдХреНрд╕рд░ рдХрдо рд╣реЛрддреЗ рд╣реИрдВред
рдЖрдк рдЖрдВрд╢рд┐рдХ рдкрд▓рд╛рдпрди рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдФрд░ рдЬрд╛рд╡рд╛ рдХреЗ рд▓рд┐рдП рд╕реНрдХреЗрд▓рд░ рд░рд┐рдкреНрд▓реЗрд╕рдореЗрдВрдЯ рдирд╛рдордХ рдкреЗрдкрд░ рдореЗрдВ рдЖрдВрд╢рд┐рдХ рдкрд▓рд╛рдпрди рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреА рдЧрд╣рд░реА рд╕рдордЭ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдкрд░рд┐рдгрд╛рдо
рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рд╣рдордиреЗ рддреАрди GraalVM рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝реЗрд╢рди рдХреЛ рджреЗрдЦрд╛: рдЗрдирд▓рд╛рдЗрдирд┐рдВрдЧ, рдкреЙрд▓реАрдореЙрд░реНрдлрд┐рдХ рдЗрдирд▓рд╛рдЗрдирд┐рдВрдЧ рдФрд░ рдЖрдВрд╢рд┐рдХ рд░реВрдк рд╕реЗ рднрд╛рдЧрдиреЗ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдгред рдХрдИ рдФрд░ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЕрдиреБрдХреВрд▓рди рд╣реИрдВ: рдЪрдХреНрд░реЛрдВ рдХрд╛ рдкреНрд░рдЪрд╛рд░ рдФрд░ рд╡рд┐рднрд╛рдЬрди, рд░рд╛рд╕реНрддреЛрдВ рдХрд╛ рджреЛрд╣рд░рд╛рд╡, рд╡реИрд╢реНрд╡рд┐рдХ рдореВрд▓реНрдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛, рд╕реНрдерд┐рд░рд╛рдВрдХ рдХрд╛ рджреГрдврд╝реАрдХрд░рдг, рдореГрдд рдХреЛрдб рдХреЛ рд╣рдЯрд╛рдирд╛, рд╕рдЯреНрдЯрд╛ рдирд┐рд╖реНрдкрд╛рджрди рдФрд░ рдЗрд╕реА рддрд░рд╣ред
рдпрджрд┐ рдЖрдк рдЕрдзрд┐рдХ рдЬрд╛рдирдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ GraalVM рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рддреЛ рдкреНрд░рдХрд╛рд╢рди рдкреГрд╖реНрда рдЦреЛрд▓рдиреЗ рдореЗрдВ рд╕рдВрдХреЛрдЪ рди рдХрд░реЗрдВред рдпрджрд┐ рдЖрдк рд╕реНрд╡рдпрдВ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рдЧреНрд░реЗрд╡рд╛рд▓рдо рдЖрдкрдХреЗ рдХреЛрдб рдХреЛ рдЧрддрд┐ рджреЗ рд╕рдХрддрд╛ рд╣реИ, рддреЛ рдЖрдк рдмрд╛рдпрдиреЗрд░рд┐рдЬрд╝ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рд╕реНрд╡рдпрдВ рдЖрдЬрд╝рдорд╛ рд╕рдХрддреЗ рд╣реИрдВред
рдЕрдиреБрд╡рд╛рджрдХ рд╕реЗ: рдЕрддрд┐рд░рд┐рдХреНрдд рд╕рд╛рдордЧреНрд░реА
рд╕рдореНрдореЗрд▓рдиреЛрдВ рдореЗрдВ, JPoint рдФрд░ рдЬреЛрдХрд░ рдЕрдХреНрд╕рд░ GraalVM рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкрд┐рдЫрд▓реЗ JPoint 2019 рдореЗрдВ, рдереЙрдорд╕ рд╡реБрдПрд░реНрдерд┐рдВрдЧрд░ (рдУрд░реЗрдХрд▓ рд▓реИрдмреНрд╕ рдореЗрдВ рд░рд┐рд╕рд░реНрдЪ рдбрд╛рдпрд░реЗрдХреНрдЯрд░, рдЧреНрд░реЗрд╡рд╛рд▓рдо рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░) рдФрд░ рдУрд▓реЗрдЧ рд╢реЗрд▓реНрд▓рд╛рд╡, рджреЛ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХреА рдЗрдВрдЬреАрд▓рд╡рд╛рджрд┐рдпреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ, рдиреЗ рд╣рдорд╕реЗ рдореБрд▓рд╛рдХрд╛рдд рдХреАред
рдЖрдк рдЗрди рдФрд░ рдЕрдиреНрдп рд╡реАрдбрд┐рдпреЛ рдХреЛ рд╣рдорд╛рд░реЗ YouTube рдЪреИрдирд▓ рдкрд░ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ:
рд╣рдо рдЖрдкрдХреЛ рдпрд╛рдж рджрд┐рд▓рд╛рддреЗ рд╣реИрдВ рдХрд┐ рдЕрдЧрд▓реЗ рдЬреЗрдкреЛрдЯ рдХреЛ рдорд╛рд╕реНрдХреЛ рдореЗрдВ 15-16 рдордИ, 2020 рдХреЛ рдЖрдпреЛрдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрд░ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЯрд┐рдХрдЯ рдЦрд░реАрджреЗ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред