рдбреЛрдирд╛рд▓реНрдб рдиреБрде рдиреЗ рдПрдХ рдмрд╛рд░ рдХрд╣рд╛ рдерд╛ рдХрд┐ рд╢рдмреНрдж рдмрд╛рдж рдореЗрдВ рдкреНрд░рд╕рд┐рджреНрдз рд╣реЛ рдЧрдП: "рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░, рди рдХрд┐ рдЬрд╣рд╛рдВ рдЙрдиреНрд╣реЗрдВ рдЬрд╝рд░реВрд░рдд рд╣реИ, рдФрд░ рдЬрдм рдЙрдиреНрд╣реЗрдВ рдЬрд╝рд░реВрд░рдд рд╣реЛрддреА рд╣реИ, рддреЛ рджрдХреНрд╖рддрд╛ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╕рдордп рд╡реНрдпрддреАрдд рдХрд░рддреЗ рд╣реИрдВред рд╕рдордпрдкреВрд░реНрд╡ рдЕрдиреБрдХреВрд▓рди рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдореЗрдВ рд╕рднреА рдмреБрд░рд╛рдЗрдпреЛрдВ (рдпрд╛ рдХрдо рд╕реЗ рдХрдо рдЙрдирдореЗрдВ рд╕реЗ рдЬреНрдпрд╛рджрд╛рддрд░) рдХреА рдЬрдбрд╝ рд╣реИред "

рд╕рд╛рдордЧреНрд░реА рдХрд╛ рд▓реЗрдЦрдХ, рдЬрд┐рд╕рдХрд╛ рдЕрдиреБрд╡рд╛рдж рдЖрдЬ рд╣рдо рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ рдХрд┐ рдХреИрд╕реЗ рд╡рд╣ рдПрдХ рдмрд╛рд░ рд╕рдордп рд╕реЗ рдкрд╣рд▓реЗ рдЕрдиреБрдХреВрд▓рди рдХреЗ рдЬрд╛рд▓ рдореЗрдВ рдЧрд┐рд░ рдЧрдпрд╛ рдерд╛, рдФрд░ рдХреИрд╕реЗ рд╡рд╣ рдЕрдкрдиреЗ рд╣реА рдХрдбрд╝рд╡реЗ рдЕрдиреБрднрд╡ рд╕реЗ рд╕рдордЭ рдЧрдпрд╛ рдХрд┐ рд╕рдордп рд╕реЗ рдкрд╣рд▓реЗ рдЕрдиреБрдХреВрд▓рди рд╕рднреА рдмреБрд░рд╛рдЗрдпреЛрдВ рдХреА рдЬрдбрд╝ рд╣реИред
рдЦреЗрд▓ GeoArena рдСрдирд▓рд╛рдЗрди
рдХреБрдЫ рд╕рд╛рд▓ рдкрд╣рд▓реЗ рдореИрдВрдиреЗ рд╡реЗрдм рдЧреЗрдо рдЬрд┐рдпреЛрдирд╛ рдСрдирд▓рд╛рдЗрди рдкрд░ рдХрд╛рдо рдХрд┐рдпрд╛ рдерд╛ (рддрдм рдореИрдВрдиреЗ
рдЗрд╕реЗ рдмреЗрдЪ рджрд┐рдпрд╛ рдерд╛ , рдирдП рдорд╛рд▓рд┐рдХреЛрдВ рдиреЗ рдЗрд╕реЗ
рдЬрд┐рдпреЛрдПрд░реЗрдирд╛.рдЖрдИрдУ рдкрд░ рдкреЛрд╕реНрдЯ рдХрд┐рдпрд╛ рдерд╛)ред рдпрд╣ "рдЕрдВрддрд┐рдо рдЙрддреНрддрд░рдЬреАрд╡реА" рдХреА рд╢реИрд▓реА рдореЗрдВ рдПрдХ рдорд▓реНрдЯреАрдкреНрд▓реЗрдпрд░ рдЧреЗрдо рдерд╛ред рд╡рд╣рд╛рдВ, рдЦрд┐рд▓рд╛рдбрд╝реА рдиреЗ рдЬрд╣рд╛рдЬ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд┐рдпрд╛, рдЬрд┐рд╕рд╕реЗ рдПрдХ рдЦрд┐рд▓рд╛рдбрд╝реА рджреВрд╕рд░реЗ рдЦрд┐рд▓рд╛рдбрд╝реА рдХреЗ рдЦрд┐рд▓рд╛рдл рд▓рдбрд╝рддрд╛ рд░рд╣рд╛ред
рдЦреЗрд▓ GeoArena рдСрдирд▓рд╛рдЗрдирдЦреЗрд▓ GeoArena рдСрдирд▓рд╛рдЗрдирдПрдХ рдЧрддрд┐рд╢реАрд▓ рдЧреЗрдо, рдЬрд┐рд╕рдХреА рджреБрдирд┐рдпрд╛ рдХрдгреЛрдВ рдФрд░ рдкреНрд░рднрд╛рд╡реЛрдВ рд╕реЗ рднрд░реА рд╣реИ, рдХреЛ рдЧрдВрднреАрд░ рдХрдВрдкреНрдпреВрдЯрд┐рдВрдЧ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдирддреАрдЬрддрди, рдХреБрдЫ рдкреБрд░рд╛рдиреЗ рдХрдВрдкреНрдпреВрдЯрд░реЛрдВ рдкрд░ рдЦреЗрд▓ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рддрдирд╛рд╡рдкреВрд░реНрдг рдХреНрд╖рдгреЛрдВ рдореЗрдВ "рдзреАрдорд╛" рд╣реБрдЖред рдореИрдВ, рдПрдХ рдЖрджрдореА рдЬреЛ рдЙрддреНрдкрд╛рджрдХрддрд╛ рдХреЗ рдореБрджреНрджреЛрдВ рдХреЗ рдкреНрд░рддрд┐ рдЙрджрд╛рд╕реАрди рдирд╣реАрдВ рд╣реИ, рдиреЗ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╣рд▓ рдмреНрдпрд╛рдЬ рдХреЗ рд╕рд╛рде рдЙрдард╛рдпрд╛ред "рдореИрдВ рдЬрд┐рдпреЛрдЖрд░реНрдирд╛ рдХреНрд▓рд╛рдЗрдВрдЯ рд╕рд╛рдЗрдб рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рднрд╛рдЧ рдХреЛ рдХреИрд╕реЗ рдЧрддрд┐ рджреЗрддрд╛ рд╣реВрдВ," рдореИрдВрдиреЗ рдЦреБрдж рд╕реЗ рдкреВрдЫрд╛ред
Fast.js рдкреБрд╕реНрддрдХрд╛рд▓рдп
рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ рдереЛрдбрд╝реА рдЦреЛрдЬ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВрдиреЗ
fast.js рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреА рдЦреЛрдЬ рдХреАред рдпрд╣ "рдмрд╣реБрдд рддреЗрдЬ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдиреЗ рдХреЗ рдЙрджреНрджреЗрд╢реНрдп рд╕реЗ рд╕реВрдХреНрд╖реНрдо-рдЕрдиреБрдХреВрд▓рди рдХрд╛ рд╕рдВрдЧреНрд░рд╣ рдерд╛ред" рдЗрд╕ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ
Array.prototype.forEach () рдЬреИрд╕реЗ рдмрд┐рд▓реНрдЯ-рдЗрди рдорд╛рдирдХ рддрд░реАрдХреЛрдВ рдХреЗ рддреЗрдЬреА рд╕реЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреА рдЙрдкрд▓рдмреНрдзрддрд╛ рдХреЗ рджреНрд╡рд╛рд░рд╛ рддреНрд╡рд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдореБрдЭреЗ рдпрд╣ рдмреЗрд╣рдж рджрд┐рд▓рдЪрд╕реНрдк рд▓рдЧрд╛ред GeoArena рдиреЗ рдХрдИ рд╕рд░рдгрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛, рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдХрдИ рдСрдкрд░реЗрд╢рди рдХрд┐рдП, рдЗрд╕рд▓рд┐рдП fast.js рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдореБрдЭреЗ рдЦреЗрд▓ рдХреЛ рдЧрддрд┐ рджреЗрдиреЗ рдореЗрдВ рдмрд╣реБрдд рдорджрдж рдорд┐рд▓ рд╕рдХрддреА рд╣реИред
forEach()
рдкреНрд░рджрд░реНрд╢рди рдЕрдзреНрдпрдпрди рдХреЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрд░рд┐рдгрд╛рдо рддреЗрдЬреА рд╕реЗ рд╢рд╛рдорд┐рд▓ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП
README рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд┐рдП рдЧрдП рдереЗред
Native .forEach() vs fast.forEach() (10 items) тЬУ Array::forEach() x 8,557,082 ops/sec ┬▒0.37% (97 runs sampled) тЬУ fast.forEach() x 8,799,272 ops/sec ┬▒0.41% (97 runs sampled) Result: fast.js is 2.83% faster than Array::forEach().
рдХрд┐рд╕реА рдмрд╛рд╣рд░реА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ рд▓рд╛рдЧреВ рдХреА рдЧрдИ рд╡рд┐рдзрд┐ рдЕрдкрдиреЗ рдорд╛рдирдХ рд╕рдВрд╕реНрдХрд░рдг рд╕реЗ рдЕрдзрд┐рдХ рддреЗрдЬрд╝ рдХреИрд╕реЗ рд╣реЛ рд╕рдХрддреА рд╣реИ? рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдПрдХ рдЪрд╛рд▓ рдереА (рд╡реЗ, рдпреЗ рддрд░рдХреАрдмреЗрдВ, рд╣рд░ рдЬрдЧрд╣ рдЖрдкрдХреЛ рджрд┐рдЦрддреА рд╣реИрдВ)ред рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗрд╡рд▓ рдЙрди рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рдерд╛ рдЬреЛ рд╡рд┐рд░рд▓ рдирд╣реАрдВ рдереЗред
рдпрд╣рд╛рдБ рдРрд╕реЗ рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рдХреБрдЫ рд╕рд░рд▓ рдЙрджрд╛рд╣рд░рдг рджрд┐рдП рдЧрдП рд╣реИрдВ:
рдпрд╣ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╡рд┐рд░рд▓ рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдХрд╛рдо рдХреНрдпреЛрдВ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдореИрдВрдиреЗ рдЗрд╕рдХреЗ рд╕реНрд░реЛрдд рдХреЛрдб рдХреЛ рджреЗрдЦрд╛ред рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐
forEach()
fast.js рдореЗрдВ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЫреЛрд░реЛрдВ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИред
forEach()
рдХрд╛ рддреНрд╡рд░рд┐рдд рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди
forEach()
рд╡рд┐рдзрд┐ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрд╛рдИ рджреЗрдЧреА:
fastForEach()
рд╡рд┐рдзрд┐ рдХреЗ рд▓рд┐рдП рдПрдХ рдХреЙрд▓ рддреАрди рдорд╛рдиреЛрдВ рдХреЛ
fastForEach()
рдХрд░рддрд╛ рд╣реИ:
1 undefined 2
рдХреЙрд▓рд┐рдВрдЧ
sparseArray.forEach()
рдХреЗрд╡рд▓ рджреЛ рдореВрд▓реНрдпреЛрдВ рдХреЗ рд╕рдорд╛рдкрди рдХреА рдУрд░ рдЬрд╛рддрд╛ рд╣реИ:
1 2
рдпрд╣ рдЕрдВрддрд░ рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдХреЙрд▓рдмреИрдХ рдлрд╝рдВрдХреНрд╢рдВрд╕ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬреЗрдПрд╕ рд╡рд┐рдирд┐рд░реНрджреЗрд╢реЛрдВ рд╕реЗ рд╕рдВрдХреЗрдд рдорд┐рд▓рддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рддрд░рд╣ рдХреЗ рдХрд╛рд░реНрдпреЛрдВ
рдХреЛ рд░рд┐рдореЛрдЯ рдпрд╛ рдЕрдирдЗрдВрд╕реНрдЯрд╛рд▓реНрдпреВрдЯреЗрдб рдПрд░реЗ рдЗрдВрдбреЗрдХреНрд╕ (рдЬрд┐рд╕реЗ "рдЫреЗрдж" рднреА рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ)
рдкрд░ рдирд╣реАрдВ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП ред
fastForEach()
рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдиреЗ рдЫреЗрдж рдХреЗ рд▓рд┐рдП рд╕рд░рдгреА рдХреА рдЬрд╛рдВрдЪ рдирд╣реАрдВ рдХреАред рдЗрд╕рд╕реЗ рд╡рд┐рд░рд▓ рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рд╕рд╣реА рдХрд╛рдо рдХреА рд▓рд╛рдЧрдд рдореЗрдВ рдЧрддрд┐ рдореЗрдВ рд╡реГрджреНрдзрд┐ рд╣реБрдИред рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдПрдХрджрдо рд╕рд╣реА рдерд╛, рдХреНрдпреЛрдВрдХрд┐ рдЬрд┐рдпреЛрдПрд░реЗрдирд╛ рдореЗрдВ рд╡рд┐рд░рд▓ рд╕рд░рдгрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░, рдореБрдЭреЗ рдмрд╕ fast.js. рдкрд░ рдПрдХ рддреНрд╡рд░рд┐рдд рдкрд░реАрдХреНрд╖рд╛ рджреЗрдиреА рдЪрд╛рд╣рд┐рдП рдореБрдЭреЗ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП, рдПрд░рд┐рдпрд░ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рдорд╛рдирдХ рддрд░реАрдХреЛрдВ рдХреЛ fast.js рд╕реЗ рд╡рд┐рдзрд┐рдпреЛрдВ рдореЗрдВ рдмрджрд▓рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдЦреЗрд▓ рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рдореИрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд▓рдЧ рджрд┐рд╢рд╛ рдореЗрдВ рдЪрд▓рд╛ рдЧрдпрд╛ред
рдореЗрд░рд╛ рд╡рд┐рдХрд╛рд╕ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ
рдореБрдЭ рдореЗрдВ рд░рд╣рдиреЗ рд╡рд╛рд▓реЗ рдЙрдиреНрдорддреНрдд рдкреВрд░реНрдгрддрд╛рд╡рд╛рджреА рдЦреЗрд▓ рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХрд╛ рдЕрдиреБрдХреВрд▓рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдм рдХреБрдЫ рдирд┐рдЪреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рддреЗ рдереЗред Fast.js рдкреБрд╕реНрддрдХрд╛рд▓рдп рдореБрдЭреЗ рдмрд╕ рдПрдХ рдЕрдЪреНрдЫрд╛ рдкрд░реНрдпрд╛рдкреНрдд рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рд▓рдЧрддрд╛ рдерд╛, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдХреЗ рдЙрдкрдпреЛрдЧ рд╕реЗ рдЗрд╕рдХреЗ рддрд░реАрдХреЛрдВ рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛ рдирд┐рд╣рд┐рдд рдерд╛ред рдлрд┐рд░ рдореИрдВрдиреЗ рд╕реЛрдЪрд╛: тАЬрдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдЕрдЧрд░ рдореИрдВ рдХреЛрдб рдореЗрдВ рдЗрди рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рдирдП, рддреЗрдЬ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдХреЗ рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рдорд╛рдирдХ рддрд░реАрдХреЛрдВ рдХреЛ рдмрджрд▓ рджреВрдВ? рдЗрд╕рд╕реЗ рдореБрдЭреЗ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдердб рдХреЙрд▓ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред
рдпрд╣ рд╡рд╣ рд╡рд┐рдЪрд╛рд░ рдерд╛ рдЬрд┐рд╕рдиреЗ рдореБрдЭреЗ рдПрдХ рд╕рд░рд▓ рд╡рд┐рдЪрд╛рд░ рдХреЗ рд▓рд┐рдП рдкреНрд░реЗрд░рд┐рдд рдХрд┐рдпрд╛, рдЬреЛ рдХрд┐ рдПрдХ рд╕рдВрдХрд▓рдХ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рдирд╛ рдерд╛, рдЬрд┐рд╕реЗ рдореИрдВрдиреЗ рдмреЗрд╢рд░реНрдореА рд╕реЗ
рддреЗрдЬ .js рдХрд╣рд╛ред рдореИрдВрдиреЗ рдЗрд╕реЗ fast.js. рдХреЗ рдмрдЬрд╛рдп рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛рдИ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрд╣рд╛рдБ рд╕реНрд░реЛрдд рдХреЛрдб рд╕реНрдирд┐рдкреЗрдЯ рд╣реИ:
рддреЗрдЬреА рд╕реЗ .js рд╕рдВрдХрд▓рдХ рдЗрд╕ рдХреЛрдб рдХреЛ рдирд┐рдореНрди рдореЗрдВ рдмрджрд▓ рджреЗрдЧрд╛ - рддреЗрдЬ, рд▓реЗрдХрд┐рди рдЗрд╕рд╕реЗ рднреА рдмрджрддрд░:
Fast.js рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЛ рдПрдХ рд╣реА рд╡рд┐рдЪрд╛рд░ рджреНрд╡рд╛рд░рд╛ рдкреНрд░реЗрд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдЬреЛ рдХрд┐ fast.js. рдЕрд░реНрдерд╛рддреН, рд╣рдо рд╡рд┐рд░рд▓ рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рд╕рдорд░реНрдерди рдХреА рдЕрд╕реНрд╡реАрдХреГрддрд┐ рдХреЗ рдХрд╛рд░рдг рдкреНрд░рджрд░реНрд╢рди рдХреА рд╕реВрдХреНрд╖реНрдо-рдЕрдиреБрдХреВрд▓рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВред
рдкрд╣рд▓реА рдирдЬрд╝рд░ рдореЗрдВ, fast.js рдореБрдЭреЗ рдПрдХ рдмреЗрд╣рдж рд╕рдлрд▓ рд╡рд┐рдХрд╛рд╕ рд▓рдЧ рд░рд╣рд╛ рдерд╛ред рдпрд╣рд╛рдБ рдХреБрдЫ рдкрд░рд┐рдгрд╛рдо рддреЗрдЬреА рд╕реЗ рд╣реИрдВред рдЬреЗрдПрд╕ рдкреНрд░рджрд░реНрд╢рди рдЕрдзреНрдпрдпрди:
array-filter large тЬУ native x 232,063 ops/sec ┬▒0.36% (58 runs sampled) тЬУ faster.js x 1,083,695 ops/sec ┬▒0.58% (57 runs sampled) faster.js is 367.0% faster (3.386╬╝s) than native array-map large тЬУ native x 223,896 ops/sec ┬▒1.10% (58 runs sampled) тЬУ faster.js x 1,726,376 ops/sec ┬▒1.13% (60 runs sampled) faster.js is 671.1% faster (3.887╬╝s) than native array-reduce large тЬУ native x 268,919 ops/sec ┬▒0.41% (57 runs sampled) тЬУ faster.js x 1,621,540 ops/sec ┬▒0.80% (57 runs sampled) faster.js is 503.0% faster (3.102╬╝s) than native array-reduceRight large тЬУ native x 68,671 ops/sec ┬▒0.92% (53 runs sampled) тЬУ faster.js x 1,571,918 ops/sec ┬▒1.16% (57 runs sampled) faster.js is 2189.1% faster (13.926╬╝s) than native
рдкреВрд░реНрдг рдкрд░реАрдХреНрд╖рд╛ рдкрд░рд┐рдгрд╛рдо
рдпрд╣рд╛рдВ рджреЗрдЦреЗ рдЬрд╛ рд╕рдХрддреЗ
рд╣реИрдВ ред рдЙрдиреНрд╣реЗрдВ 15-рдЗрдВрдЪ рдореИрдХрдмреБрдХ рдкреНрд░реЛ 2018 рдкрд░ рдиреЛрдб v8.16.1 рдореЗрдВ рдЖрдпреЛрдЬрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдХреНрдпрд╛ рдореЗрд░рд╛ рд╡рд┐рдХрд╛рд╕ рдорд╛рдирдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╕реЗ 2000% рддреЗрдЬ рд╣реИ? рдЙрддреНрдкрд╛рджрдХрддрд╛ рдореЗрдВ рдЗрддрдиреА рдЧрдВрднреАрд░ рд╡реГрджреНрдзрд┐, рдмрд┐рдирд╛ рдХрд┐рд╕реА рд╕рдВрджреЗрд╣ рдХреЗ, рдХрд┐рд╕реА рднреА рдХрд╛рд░реНрдпрдХреНрд░рдо рдкрд░ рд╕рдмрд╕реЗ рдордЬрдмреВрдд рд╕рдХрд╛рд░рд╛рддреНрдордХ рдкреНрд░рднрд╛рд╡ рдбрд╛рд▓ рд╕рдХрддреА рд╣реИред рд╣реИ рди?
рдирд╣реАрдВ, рд╕рдЪ рдирд╣реАрдВ рд╣реИред
рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдЙрджрд╛рд╣рд░рдг рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред
- рдХрд▓реНрдкрдирд╛ рдХреАрдЬрд┐рдП рдХрд┐ рдФрд╕рдд GeoArena рдЦреЗрд▓ рдореЗрдВ рдЧрдгрдирд╛ рдХреЗ 5,000 рдорд┐рд▓реАрд╕реЗрдХрдВрдб (ms) рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред
- Fast.js рд╕рдВрдХрд▓рдХ рдФрд╕рдд рддрд░реАрдХреЛрдВ рд╕реЗ рд╕рд░рдгреА рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреЛ 10 рдЧреБрдирд╛ рдмрдврд╝рд╛рддрд╛ рд╣реИ (рдпрд╣ рдЕрдиреБрдорд╛рдирд┐рдд рдЕрдиреБрдорд╛рди рд╣реИ, рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╣ рдмрд╣реБрдд рдХрдо рд╣реИ; рдЕрдзрд┐рдХрд╛рдВрд╢ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ рджреЛрд╣рд░рд╛ рддреНрд╡рд░рдг рднреА рдирд╣реАрдВ рд╣реИ)ред
рдФрд░ рдпрд╣рд╛рдБ рдпрд╣ рд╕рд╡рд╛рд▓ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╣рдорд╛рд░рд╛ рд╣рд┐рдд рд╣реИ: "рд╕рд░рдгреА рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдкрд░ рдЗрди 5000 рдПрдордПрд╕ рдХрд╛ рдХреНрдпрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдЦрд░реНрдЪ рд╣реЛрддрд╛ рд╣реИ?"ред
рдорд╛рди рд▓реАрдЬрд┐рдП рдЖрдзрд╛ред рдпрд╣реА рд╣реИ, 2500 ms рд╕рд░рдгреА рддрд░реАрдХреЛрдВ рдкрд░ рдЦрд░реНрдЪ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдмрд╛рдХреА 2500 ms рдмрд╛рдХреА рд╕рдм рдЪреАрдЬреЛрдВ рдкрд░ред рдпрджрд┐ рдРрд╕рд╛ рд╣реИ, рддреЛ fast.js рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдПрдХ рд╡рд┐рд╢рд╛рд▓ рдкреНрд░рджрд░реНрд╢рди рдХреЛ рдмрдврд╝рд╛рд╡рд╛ рдорд┐рд▓реЗрдЧрд╛ред
рд╕рд╢рд░реНрдд рдЙрджрд╛рд╣рд░рдг: рдХрд╛рд░реНрдпрдХреНрд░рдо рдХрд╛ рдирд┐рд╖реНрдкрд╛рджрди рд╕рдордп рдмрд╣реБрдд рдХрдо рд╣реЛ рдЧрдпрд╛ рд╣реИрдирддреАрдЬрддрди, рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рдХреБрд▓ рдХрдореНрдкреНрдпреВрдЯреЗрд╢рдирд▓ рд╕рдордп 45% рддрдХ рдХрдо рд╣реЛ рдЧрдпрд╛ рд╣реИред
рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдпреЗ рд╕рднреА рддрд░реНрдХ рдмрд╣реБрдд, рд╡рд╛рд╕реНрддрд╡рд┐рдХрддрд╛ рд╕реЗ рдмрд╣реБрдд рджреВрд░ рд╣реИрдВред GeoArena, рдЬрд╝рд╛рд╣рд┐рд░ рд╣реИ, рдХрдИ рд╕рд░рдгреА рд╡рд┐рдзрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рд╡рд┐рднрд┐рдиреНрди рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдХреЛрдб рдирд┐рд╖реНрдкрд╛рджрди рд╕рдордп рдХрд╛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╡рд┐рддрд░рдг рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдореЗрдВ рд╕реЗ рдХреБрдЫ рдЬреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИред
рд╣рд░реНрд╖ рд╡рд╛рд╕реНрддрд╡рд┐рдХрддрд╛рджреБрдЦ рдХреА рдмрд╛рдд рд╣реИ, рдореИрдВ рдХреНрдпрд╛ рдХрд╣ рд╕рдХрддрд╛ рд╣реВрдВред
рдпрд╣ рд╡рд╣реА рдЧрд▓рддреА рд╣реИ рдЬрд┐рд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдбреЛрдирд╛рд▓реНрдб рдирде рдиреЗ рдЪреЗрддрд╛рд╡рдиреА рджреА рдереАред рдореИрдВрдиреЗ рдЕрдкрдирд╛ рдкреНрд░рдпрд╛рд╕ рдЙрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдирд╣реАрдВ рд░рдЦрд╛, рдЬреЛ рдЙрдиреНрд╣реЗрдВ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдерд╛, рдФрд░ рдЬрдм рд╡рд╣ рдХрд░рдиреЗ рд▓рд╛рдпрдХ рдерд╛, рддреЛ рдореИрдВрдиреЗ рдРрд╕рд╛ рдирд╣реАрдВ рдХрд┐рдпрд╛ред
рдпрд╣рд╛рдБ рд╕рд░рд▓ рдЧрдгрд┐рдд рдЦреЗрд▓рдиреЗ рдореЗрдВ рдЖрддрд╛ рд╣реИред рдпрджрд┐ рдХреЛрдИ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рд╕рдордп рдХрд╛ рдХреЗрд╡рд▓ 1% рд▓реЗрддрд╛ рд╣реИ, рддреЛ рдЙрд╕реЗ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рд╕реЗ рд╕рд░реНрд╡реЛрддреНрддрдо рдорд╛рдорд▓реЗ рдореЗрдВ, рдЙрддреНрдкрд╛рджрдХрддрд╛ рдореЗрдВ рдХреЗрд╡рд▓ 1% рдХреА рд╡реГрджреНрдзрд┐ рд╣реЛрдЧреАред
рдпрд╣ рд╡рд╣реА рд╣реИ рдЬреЛ рдбреЛрдирд╛рд▓реНрдб рдиреБрде рдХреЗ рджрд┐рдорд╛рдЧ рдореЗрдВ рдерд╛ рдЬрдм рдЙрдиреНрд╣реЛрдВрдиреЗ рдХрд╣рд╛ рдерд╛ "рдЬрд╣рд╛рдВ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред" рдФрд░ рдЕрдЧрд░ рдЖрдк рд╕реЛрдЪрддреЗ рд╣реИрдВ рдХрд┐ "рдЖрдкрдХреЛ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХрд╣рд╛рдВ рд╣реИ", рддреЛ рдпрд╣ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рдпреЗ рдЙрди рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдХреЗ рднрд╛рдЧ рд╣реИрдВ рдЬреЛ рдкреНрд░рджрд░реНрд╢рди рдХреА рдмрд╛рдзрд╛рдУрдВ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддреЗ рд╣реИрдВред рдпреЗ рдХреЛрдб рдХреЗ рдЯреБрдХрдбрд╝реЗ рд╣реИрдВ рдЬреЛ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рд╕рдордЧреНрд░ рдкреНрд░рджрд░реНрд╢рди рдореЗрдВ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдпреЛрдЧрджрд╛рди рджреЗрддреЗ рд╣реИрдВред рдпрд╣рд╛рдВ "рдЙрддреНрдкрд╛рджрдХрддрд╛" рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдмрд╣реБрдд рд╡реНрдпрд╛рдкрдХ рдЕрд░реНрдереЛрдВ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рдореЗрдВ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХрд╛ рд░рдирдЯрд╛рдЗрдо, рдЗрд╕рдХреЗ рд╕рдВрдХрд▓рд┐рдд рдХреЛрдб рдХрд╛ рдЖрдХрд╛рд░ рдФрд░ рдХреБрдЫ рдФрд░ рд╢рд╛рдорд┐рд▓ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рдЙрд╕ рд╣рд┐рд╕реНрд╕реЗ рдореЗрдВ 10% рд╕реБрдзрд╛рд░ рдЬреЛ рдкреНрд░рджрд░реНрд╢рди рдХреЛ рдмрд╣реБрдд рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдХрд┐рд╕реА рдЫреЛрдЯреА рдЪреАрдЬрд╝ рдореЗрдВ 100% рд╕реБрдзрд╛рд░ рд╕реЗ рдмреЗрд╣рддрд░ рд╣реИред
рдиреБрдЯ рдиреЗ рдкреНрд░рдпрд╛рд╕реЛрдВ рдХреЗ рдЖрд╡реЗрджрди рдХреА рднреА рдмрд╛рдд рдХреА "рдЬрдм рдЖрд╡рд╢реНрдпрдХ рди рд╣реЛред" рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдХрд┐рд╕реА рдЪреАрдЬ рдХрд╛ рдЕрдиреБрдХреВрд▓рди рддрднреА рдХрд░рдирд╛ рд╣реИ рдЬрдм рд╡рд╣ рдЖрд╡рд╢реНрдпрдХ рд╣реЛред рдмреЗрд╢рдХ, рдореЗрд░реЗ рдкрд╛рд╕ рдЕрдиреБрдХреВрд▓рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрдиреЗ рдХрд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рдХрд╛рд░рдг рдерд╛ред рд▓реЗрдХрд┐рди рдпрд╛рдж рд░рдЦреЗрдВ рдХрд┐ рдореИрдВрдиреЗ рддреЗрдЬреА рд╕реЗ рд╡рд┐рдХрд╛рд╕ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛ рдерд╛ред рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рдореИрдВ рдЬрд┐рдпреЛрдЗрд░реЗрдирд╛ рдореЗрдВ рдлрд╛рд╕реНрдЯ.рдЬреЗрдПрд╕ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдирд╣реАрдВ рдХрд░рддрд╛ рдерд╛? рдорд┐рдирдЯреЛрдВ рдиреЗ рдореЗрд░реЗ рдЦреЗрд▓ рдореЗрдВ рддреЗрдЬреА рд╕реЗ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ред рдореБрдЭреЗ рдЕрдкрдиреЗ рдХрд╛рдо рдХреЗ рд╕рдкреНрддрд╛рд╣ рдмрдЪрд╛рдиреЗ рд╣реЛрдВрдЧреЗред рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдЖрдк рдЙрд╕реА рдЬрд╛рд▓ рдореЗрдВ рдирд╣реАрдВ рдЧрд┐рд░реЗрдВрдЧреЗ рдЬреЛ рдореИрдВ рдЧрд┐рд░ рдЧрдпрд╛ рдерд╛ред
рдкрд░рд┐рдгрд╛рдо
рдпрджрд┐ рдЖрдк рддреЗрдЬреА рд╕реЗ рдкреНрд░рдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВред рддреЛ рдЖрдк
рдЗрд╕ рдбреЗрдореЛ рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВред рдЖрдкрдХреЛ рдЬреЛ рдкрд░рд┐рдгрд╛рдо рдорд┐рд▓рддреЗ рд╣реИрдВ, рд╡рд╣ рдЖрдкрдХреЗ рдбрд┐рд╡рд╛рдЗрд╕ рдФрд░ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред рдпрд╣рд╛рдБ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, 15 рдЗрдВрдЪ рдХреЗ рдореИрдХрдмреБрдХ рдкреНрд░реЛ 2018 рдкрд░ рдХреНрд░реЛрдо 76 рдореЗрдВ рдХреНрдпрд╛ рд╣реБрдЖред
Faster.js рдкрд░реАрдХреНрд╖рдг рдХреЗ рдкрд░рд┐рдгрд╛рдордЬрд┐рдпреЛрдЕрд░реЗрдирд╛ рдореЗрдВ рддреЗрдЬреА рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдиреЗ рдореЗрдВ рдЖрдкрдХреА рд░реБрдЪрд┐ рд╣реЛ рд╕рдХрддреА рд╣реИред рдореИрдВ, рдЬрдм рдЦреЗрд▓ рдЕрднреА рднреА рдореЗрд░рд╛ рдерд╛ (рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдХрд╣рд╛, рдореИрдВрдиреЗ рдЗрд╕реЗ рдмреЗрдЪ рджрд┐рдпрд╛), рдХреБрдЫ рдмреБрдирд┐рдпрд╛рджреА рд╢реЛрдз рдХрд┐рдПред рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдпрд╣ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдирд┐рдХрд▓рд╛:
- рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рддреЗрдЬреА рд╕реЗ .js рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЦреЗрд▓ рдореЗрдВ рдореБрдЦреНрдп рдЦреЗрд▓ рдЪрдХреНрд░ рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреЛ рд▓рдЧрднрдЧ 1% рддрдХ рдЧрддрд┐ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред
- Fast.js рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдХрд╛рд░рдг, рдЧреЗрдо рдХреЗ рдмрдВрдбрд▓ рдХрд╛ рдЖрдХрд╛рд░ 0.3% рдмрдврд╝ рдЧрдпрд╛ред рдЗрд╕рд╕реЗ рдЧреЗрдо рдкреЗрдЬ рдХрд╛ рд▓реЛрдб рдереЛрдбрд╝рд╛ рдзреАрдорд╛ рд╣реЛ рдЧрдпрд╛ред рдмрдВрдбрд▓ рдХрд╛ рдЖрдХрд╛рд░ рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рдмрдбрд╝рд╛ рд╣реЛ рдЧрдпрд╛ рд╣реИ рдХрд┐ fast.js рдорд╛рдирдХ рд╢реЙрд░реНрдЯ рдХреЛрдб рдХреЛ рддреЗрдЬрд╝реА рд╕реЗ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдм рдХреЛрдб рднреАред
рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, fast.js рдХреЗ рдкрд╛рд╕ рдЗрд╕рдХреЗ рдкреЗрд╢реЗрд╡рд░реЛрдВ рдФрд░ рд╡рд┐рдкрдХреНрд╖ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореЗрд░рд╛ рдпрд╣ рд╡рд┐рдХрд╛рд╕ GeoArena рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдкрд░ рдмрд╣реБрдд рдкреНрд░рднрд╛рд╡ рдирд╣реАрдВ рдбрд╛рд▓рддрд╛ рд╣реИред рдореБрдЭреЗ рдпрд╣ рдкрд╣рд▓реЗ рд╣реА рд╕рдордЭ рдЖ рдЬрд╛рддрд╛ рдЕрдЧрд░ рдореИрдВ рдкрд╣рд▓реЗ рдЦреЗрд▓ рдХреЛ рддреЗрдЬ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реЗрд╢рд╛рди рдХрд░рддрд╛ред
рдореЗрд░реА рдХрд╣рд╛рдиреА рдЖрдкрдХреЛ рдПрдХ рдЪреЗрддрд╛рд╡рдиреА рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рдо рдХрд░ рд╕рдХрддреА рд╣реИред
рдкреНрд░рд┐рдп рдкрд╛рдардХреЛрдВ! рдХреНрдпрд╛ рдЖрдк рд╕рдордп рд╕реЗ рдкрд╣рд▓реЗ рдЕрдиреБрдХреВрд▓рди рдХреЗ рдЬрд╛рд▓ рдореЗрдВ рдкрдбрд╝ рдЧрдП?
