рдЙрддреНрдкрд╛рджрди рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА Node.js рд╕реЗрд╡рд╛ рдореЗрдВ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд░реВрдк рд╕реЗ рд╡реГрджреНрдзрд┐ рдХрд░рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рддрд░реАрдХрд╛ рдХреНрдпрд╛ рд╣реИ? рдпрд╣ рдПрдХ рдРрд╕рд╛ рд╕рд╡рд╛рд▓ рд╣реИ рдЬреЛ рдореЗрд░реА рдЯреАрдо рдХреЛ рдХреБрдЫ рдорд╣реАрдиреЗ рдкрд╣рд▓реЗ рдЬрд╡рд╛рдм рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдЪрд╛рд╣рд┐рдП рдерд╛ред
рд╣рдордиреЗ 4000 рдиреЛрдб рдХрдВрдЯреЗрдирд░ (рдпрд╛ "рд╢реНрд░рдорд┐рдХ") рд▓реЙрдиреНрдЪ рдХрд┐рдП рд╣реИрдВ, рдЬреЛ рдмреИрдВрдХреЛрдВ рдХреЗ рд╕рд╛рде рд╣рдорд╛рд░реА рдПрдХреАрдХрд░рдг рд╕реЗрд╡рд╛ рдХрд╛ рд╕рдВрдЪрд╛рд▓рди рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддреЗ рд╣реИрдВред рд╕реЗрд╡рд╛ рдореВрд▓ рд░реВрдк рд╕реЗ рдбрд┐рдЬрд╝рд╛рдЗрди рдХреА рдЧрдИ рдереА рддрд╛рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдХреЛ рдПрдХ рд╕рдордп рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ рдЕрдиреБрд░реЛрдз рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЗрд╕рд╕реЗ рдЙрди рдСрдкрд░реЗрд╢рдиреЛрдВ рдХреА рдкреНрд░рдгрд╛рд▓реА рдкрд░ рдкреНрд░рднрд╛рд╡ рдХрдо рд╣реЛ рдЧрдпрд╛ рдЬреЛ рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рд░реВрдк рд╕реЗ рдШрдЯрдирд╛рдУрдВ
рдХреЗ рдЪрдХреНрд░ рдХреЛ
рдЕрд╡рд░реБрджреНрдз рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рд╣рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рд╕рдорд╛рди рдХрд╛рд░реНрдпреЛрдВ рджреНрд╡рд╛рд░рд╛ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЗ рдЙрдкрдпреЛрдЧ рдореЗрдВ рдЕрдВрддрд░ рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди, рдЪреВрдВрдХрд┐ рд╣рдорд╛рд░реА рдХреНрд╖рдорддрд╛рдПрдВ рдХреЗрд╡рд▓ 4,000 рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рдПрдХ рд╕рд╛рде рдирд┐рд╖реНрдкрд╛рджрди рддрдХ рд╕реАрдорд┐рдд рдереАрдВ, рдЗрд╕рд▓рд┐рдП рдкреНрд░рдгрд╛рд▓реА рдХреЛ рдкрд░реНрдпрд╛рдкреНрдд рд░реВрдк рд╕реЗ рдЫреЛрдЯрд╛ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрд╛ред рдЕрдзрд┐рдХрд╛рдВрд╢ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреА рдЧрддрд┐ рдЙрдкрдХрд░рдгреЛрдВ рдХреА рдХреНрд╖рдорддрд╛ рдкрд░ рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ рдиреЗрдЯрд╡рд░реНрдХ рдХреА рдХреНрд╖рдорддрд╛рдУрдВ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддреА рд╣реИред рдЗрд╕рд▓рд┐рдП, рдЕрдЧрд░ рд╣рдо рд╕рдорд╛рдирд╛рдВрддрд░ рд░реВрдк рд╕реЗ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рд╕рдорд╛рдирд╛рдВрддрд░ рддрд░реАрдХреЗ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕рдХреЗ рд╕рдорд░реНрдерди рдХреА рд▓рд╛рдЧрдд рдХреЛ рдХрдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдЗрд╕ рдореБрджреНрджреЗ рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдореЗрдВ рдПрдХ рдЕрдЪреНрдЫрд╛ рдорд╛рд░реНрдЧрджрд░реНрд╢рдХ рдирд╣реАрдВ рдорд┐рд▓рд╛, рдЬреЛ рдХрд┐ рдиреЛрдб рдореЗрдВ "рд╕рдорд╛рдирддрд╛ рдХреА рдХрдореА" рд╕реЗ рд╕рдВрдХреНрд░рдордг рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░реЗрдЧрд╛ред "рд╕рдорд╛рдирддрд╛ рдХреЗ рдЙрдЪреНрдЪ рд╕реНрддрд░" рдкрд░ред рдирддреАрдЬрддрди, рд╣рдордиреЗ рдЕрдкрдиреА рд╕реНрд╡рдпрдВ рдХреА рдкреНрд░рд╡рд╛рд╕рди рд░рдгрдиреАрддрд┐ рд╡рд┐рдХрд╕рд┐рдд рдХреА, рдЬреЛ рд╕рд╛рд╡рдзрд╛рдиреАрдкреВрд░реНрд╡рдХ рдпреЛрдЬрдирд╛, рдЕрдЪреНрдЫреЗ рдЙрдкрдХрд░рдг, рдирд┐рдЧрд░рд╛рдиреА рдЙрдкрдХрд░рдг рдФрд░ рдбрд┐рдмрдЧрд┐рдВрдЧ рдХреА рдПрдХ рд╕реНрд╡рд╕реНрде рдЦреБрд░рд╛рдХ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рдереАред рдирддреАрдЬрддрди, рд╣рдо рдЕрдкрдиреЗ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд╕рдорд╛рдирд╛рдВрддрд░рд╡рд╛рдж рдХреЗ рд╕реНрддрд░ рдХреЛ 30 рдЧреБрдирд╛ рддрдХ рдмрдврд╝рд╛рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣реЗред рдпрд╣ рдкреНрд░рдгрд╛рд▓реА рдХреЛ рдмрдирд╛рдП рд░рдЦрдиреЗ рдХреА рд▓рд╛рдЧрдд рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИ, рдЬреЛ рдкреНрд░рддрд┐ рд╡рд░реНрд╖ рд▓рдЧрднрдЧ 300 рд╣рдЬрд╛рд░ рдбреЙрд▓рд░ рд╣реИред
рдпрд╣ рд╕рд╛рдордЧреНрд░реА рдЗрд╕ рдХрд╣рд╛рдиреА рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдкрд┐рдд рд╣реИ рдХрд┐ рдХреИрд╕реЗ рд╣рдордиреЗ рдЕрдкрдиреЗ Node.js рд╢реНрд░рдорд┐рдХреЛрдВ рдХреА рдЙрддреНрдкрд╛рджрдХрддрд╛ рдФрд░ рдкреНрд░рднрд╛рд╡рд╢реАрд▓рддрд╛ рдХреЛ рдмрдврд╝рд╛рдпрд╛, рдФрд░ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдЬрд╛рдХрд░ рд╣рдордиреЗ рдЬреЛ рдХреБрдЫ рднреА рд╕реАрдЦрд╛ред
рд╣рдордиреЗ рд╕рдорд╛рдирддрд╛ рдореЗрдВ рдирд┐рд╡реЗрд╢ рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХреНрдпреЛрдВ рдХрд┐рдпрд╛?
рдпрд╣ рдЖрд╢реНрдЪрд░реНрдпрдЬрдирдХ рд▓рдЧ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рд╕рдорд╛рдирддрд╛ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдмрд┐рдирд╛ рдЗрд╕ рддрд░рд╣ рдХреЗ рдЖрдпрд╛рдореЛрдВ рдореЗрдВ рдмрдврд╝реЗ рд╣реИрдВред рдпрд╣ рдХреИрд╕реЗ рд╣реБрдЖ? рдкреНрд▓реЗрдб рдЙрдкрдХрд░рдгреЛрдВ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдП рдЧрдП рдбреЗрдЯрд╛ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдХреЗрд╡рд▓ 10% рдЙрди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рджреНрд╡рд╛рд░рд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬреЛ рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░ рдмреИрдареЗ рд╣реИрдВ рдФрд░ рдЕрдкрдиреЗ рдЦрд╛рддреЛрдВ рдХреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░ рдЪреБрдХреЗ рд╣реИрдВред рдмрд╛рдХреА рд╕рднреА рд╕рдордп-рд╕рдордп рдкрд░ рд▓реЗрдирджреЗрди рдХреЛ рдЕрджреНрдпрддрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓реЗрдирджреЗрди рд╣реЛрддрд╛ рд╣реИ рдЬреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреЗ рдмрд┐рдирд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рддрд░реНрдХ рдХреЛ рд▓реЛрдб рдмреИрд▓реЗрдВрд╕рд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рдерд╛ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╣рдо рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдП рдЧрдП рдЕрдиреБрд░реЛрдз рд▓реЗрдирджреЗрди рдЕрджреНрдпрддрди рдЕрдиреБрд░реЛрдзреЛрдВ рдкрд░ рдкреВрд░реНрд╡рддрд╛ рд▓реЗрддреЗ рд╣реИрдВред рдЗрд╕рдиреЗ рд╣рдореЗрдВ 1000% рдпрд╛ рдЙрд╕рд╕реЗ рдЕрдзрд┐рдХ рдореЗрдВ рдПрдкреАрдЖрдИ рдПрдХреНрд╕реЗрд╕ рд╕рдВрдЪрд╛рд▓рди рдХреА рдЧрддрд┐рд╡рд┐рдзрд┐ рдХреЗ рдлрдЯрдиреЗ рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреАред рдпрд╣ рдбреЗрдЯрд╛ рдХреЛ рдЕрджреНрдпрддрди рдХрд░рдиреЗ рдХреЗ рдЙрджреНрджреЗрд╢реНрдп рд╕реЗ рд▓реЗрдирджреЗрди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдпрджреНрдпрдкрд┐ рдпрд╣ рд╕рдордЭреМрддрд╛ рдпреЛрдЬрдирд╛ рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рдХрд╛рдо рдХрд░ рд░рд╣реА рдереА, рд▓реЗрдХрд┐рди рдЗрд╕рдореЗрдВ рдХрдИ рдЕрдкреНрд░рд┐рдп рдХреНрд╖рдгреЛрдВ рдХреЛ рдкреНрд░рдХрдЯ рдХрд░рдирд╛ рд╕рдВрднрд╡ рдерд╛ред рд╣рдо рдЬрд╛рдирддреЗ рдереЗ рдХрд┐ рд╡реЗ, рдЕрдВрдд рдореЗрдВ рд╕реЗрд╡рд╛ рдХреА рд╡рд┐рд╢реНрд╡рд╕рдиреАрдпрддрд╛ рдкрд░ рдкреНрд░рддрд┐рдХреВрд▓ рдкреНрд░рднрд╛рд╡ рдбрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВред
- рдЧреНрд░рд╛рд╣рдХреЛрдВ рд╕реЗ рдЖрдиреЗ рд╡рд╛рд▓реЗ рдПрдкреАрдЖрдИ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреА рдЪреЛрдЯрд┐рдпрд╛рдВ рдКрдВрдЪреА рдФрд░ рдКрдВрдЪреА рд╣реЛрддреА рдЬрд╛ рд░рд╣реА рдереАрдВред рд╣рдореЗрдВ рдЗрд╕ рдмрд╛рдд рдХреА рдЪрд┐рдВрддрд╛ рдереА рдХрд┐ рдЧрддрд┐рд╡рд┐рдзрд┐ рдореЗрдВ рднрд╛рд░реА рд╡реГрджреНрдзрд┐ рд╣рдорд╛рд░реА рдХреНрд╡реЗрд░реА рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдХреНрд╖рдорддрд╛рдУрдВ рдХреЛ рдЦрддреНрдо рдХрд░ рд╕рдХрддреА рд╣реИред
- рдмреИрдВрдХреЛрдВ рдХреЗ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдореЗрдВ рджреЗрд░реА рдореЗрдВ рдЕрдЪрд╛рдирдХ рд╡реГрджреНрдзрд┐ рд╕реЗ рд╢реНрд░рдорд┐рдХреЛрдВ рдХреА рдХреНрд╖рдорддрд╛ рдореЗрдВ рдХрдореА рдЖрдИред рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рдХрд┐ рдмреИрдВрдХ рдХрдИ рдкреНрд░рдХрд╛рд░ рдХреЗ рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪреЗ рдХреЗ рд╕рдорд╛рдзрд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рд╣рдо рдЖрдЙрдЯрдЧреЛрдЗрдВрдЧ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд░реВрдврд╝рд┐рд╡рд╛рджреА рд╕рдордпрдмрд╛рд╣реНрдп рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВред рдирддреАрдЬрддрди, рдХреБрдЫ рдбреЗрдЯрд╛ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдореЗрдВ рдХрдИ рдорд┐рдирдЯ рд▓рдЧ рд╕рдХрддреЗ рд╣реИрдВред рдпрджрд┐ рдРрд╕рд╛ рд╣реБрдЖ рдХрд┐ рдмреИрдВрдХреЛрдВ рдХреЗ рд▓рд┐рдП рдХрдИ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рдХрд░рдиреЗ рдореЗрдВ рджреЗрд░реА рдЕрдЪрд╛рдирдХ рдмрд╣реБрдд рдмрдврд╝ рдЬрд╛рдПрдЧреА, рддреЛ рдпрд╣ рдкрддрд╛ рдЪрд▓реЗрдЧрд╛ рдХрд┐ рдХрдИ рдХрд░реНрдордЪрд╛рд░реА рдмрд╕ рдЬрд╡рд╛рдм рдХреЗ рд▓рд┐рдП рдЗрдВрддрдЬрд╛рд░ рдХрд░ рд░рд╣реЗ рд╣реЛрдВрдЧреЗред
- рдИрд╕реАрдПрд╕ рдореЗрдВ рддреИрдирд╛рддреА рдмрд╣реБрдд рдзреАрдореА рд╣реЛ рдЧрдИ рд╣реИ, рдФрд░ рднрд▓реЗ рд╣реА рд╣рдордиреЗ рд╕рд┐рд╕реНрдЯрдо рдХреА рддреИрдирд╛рддреА рдХреА рдЧрддрд┐ рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд┐рдпрд╛ рд╣реИ, рд╣рдо рдХреНрд▓рд╕реНрдЯрд░ рдЖрдХрд╛рд░ рдХреЛ рдЬрд╛рд░реА рд░рдЦрдирд╛ рдирд╣реАрдВ рдЪрд╛рд╣рддреЗ рд╣реИрдВред
рд╣рдордиреЗ рддрдп рдХрд┐рдпрд╛ рдХрд┐ рдЖрд╡реЗрджрди рдХреА рдЕрдбрд╝рдЪрдиреЛрдВ рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдФрд░ рд╕рд┐рд╕реНрдЯрдо рдХреА рд╡рд┐рд╢реНрд╡рд╕рдиреАрдпрддрд╛ рдмрдврд╝рд╛рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рддрд░реАрдХрд╛ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдЕрдиреБрд░реЛрдзреЛрдВ рдореЗрдВ рд╕рдорд╛рдирддрд╛ рдХрд╛ рд╕реНрддрд░ рдмрдврд╝рд╛рдирд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╣рдореЗрдВ рдЙрдореНрдореАрдж рдереА рдХрд┐, рдПрдХ рд╕рд╛рдЗрдб рдЗрдлреЗрдХреНрдЯ рдХреЗ рд░реВрдк рдореЗрдВ, рдпрд╣ рд╣рдореЗрдВ рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪреЗ рдХреА рд▓рд╛рдЧрдд рдХреЛ рдХрдо рдХрд░рдиреЗ рдФрд░ рд╕рд┐рд╕реНрдЯрдо рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХреЗ рд▓рд┐рдП рдмреЗрд╣рддрд░ рдЯреВрд▓ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдЧрд╛ред рд╡рд╣ рдФрд░ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдПрдХ рдФрд░ рдлрд▓ рд╣реЛрдЧрд╛ред
рд╣рдордиреЗ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдпрддрд╛ рдХрд╛ рдЦреНрдпрд╛рд▓ рд░рдЦрддреЗ рд╣реБрдП рдЕрдкрдбреЗрдЯ рдХреИрд╕реЗ рдкреЗрд╢ рдХрд┐рдП
тЦНрдЯреВрд▓ рдФрд░ рдореЙрдирд┐рдЯрд░рд┐рдВрдЧ
рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЕрдкрдирд╛ рд╕реНрд╡рдпрдВ рдХрд╛ рд▓реЛрдб рдмреИрд▓реЗрдВрд╕рд░ рд╣реИ, рдЬреЛ Node.js рдХрд╛рд░реНрдпрдХрд░реНрддрд╛рдУрдВ рдХреЗ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдиреЗ рд╡рд╛рд▓рд╛ рдПрдХ рдЬреАрдЖрд░рдкреАрд╕реА рд╕рд░реНрд╡рд░ рдЪрд▓рд╛рддрд╛ рд╣реИред рд╡рд░реНрдХрд░ рд░реЗрдбрд┐рд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рд▓реЛрдб рдмреИрд▓реЗрдВрд╕рд░ рдХреЛ рдмрддрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд╡рд╣ рдЙрдкрд▓рдмреНрдз рд╣реИред рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рд╕рдорд╛рдирддрд╛ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рд╕реЗ рдХреЛрдб рдХреА рдХреБрдЫ рд▓рд╛рдЗрдиреЛрдВ рдХреЛ рдмрджрд▓рдиреЗ рдореЗрдВ рдХрдореА рдЖрддреА рд╣реИред рдЕрд░реНрдерд╛рддреН, рдХрд╛рд░реНрдпрдХрд░реНрддрд╛, рдЕрдиреБрд░реЛрдз рдХрд┐рдП рдЬрд╛рдиреЗ рдХреЗ рдмрд╛рдж рджреБрд░реНрдЧрдо рдмрдирдиреЗ рдХреЗ рдмрдЬрд╛рдп, рдЙрд╕реЗ рд╕реВрдЪрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рд╡рд╣ рддрдм рддрдХ рдЙрдкрд▓рдмреНрдз рд╣реИ рдЬрдм рддрдХ рдХрд┐ рд╡рд╣ рдЙрд╕рдХреЗ рдкрд╛рд╕ рдЖрдП рдПрди рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╡реНрдпрд╕реНрдд рди рд╣реЛ рдЬрд╛рдП (рдЙрдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рд╡рд╛рджреЗ рд╡рд╕реНрддреБ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рд╕реНрддреБрдд)ред
рд╕рдЪ рд╣реИ, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╕рдм рдХреБрдЫ рдЗрддрдирд╛ рд╕рд░рд▓ рдирд╣реАрдВ рд╣реИред рд╕рд┐рд╕реНрдЯрдо рдЕрдкрдбреЗрдЯ рдХреЛ рддреИрдирд╛рдд рдХрд░рддреЗ рд╕рдордп, рд╣рдо рд╣рдореЗрд╢рд╛ рдЕрдкрдиреА рд╡рд┐рд╢реНрд╡рд╕рдиреАрдпрддрд╛ рдмрдирд╛рдП рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдЕрдкрдирд╛ рдореБрдЦреНрдп рд▓рдХреНрд╖реНрдп рдорд╛рдирддреЗ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП, рд╣рдо рд╕рд┐рд░реНрдл YOLO рд╕рд┐рджреНрдзрд╛рдВрдд рдЬреИрд╕реА рдХрд┐рд╕реА рдЪреАрдЬ рд╕реЗ рдирд┐рд░реНрджреЗрд╢рд┐рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд╕рд┐рд╕реНрдЯрдо рдХреЛ рд╕рдорд╛рдирд╛рдВрддрд░ рдХреНрд╡реЗрд░реА рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдореЛрдб рдореЗрдВ рдбрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВред рд╣рдореЗрдВ рдЙрдореНрдореАрдж рдереА рдХрд┐ рдЗрд╕ рддрд░рд╣ рдХрд╛ рд╕рд┐рд╕реНрдЯрдо рдЕрдкрдЧреНрд░реЗрдб рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЬреЛрдЦрд┐рдо рднрд░рд╛ рд╣реЛрдЧрд╛ред рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рдкреНрд░реЛрд╕реЗрд╕рд░, рдореЗрдореЛрд░реА рдФрд░ рдкреНрд░рджрд░реНрд╢рди рдХрд╛рд░реНрдпреЛрдВ рдореЗрдВ рджреЗрд░реА рдХреЗ рдЙрдкрдпреЛрдЧ рдкрд░ рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рдкреНрд░рднрд╛рд╡ рдкрдбрд╝реЗрдЧрд╛ред рдЪреВрдВрдХрд┐ Node.js рдореЗрдВ рдкреНрд░рдпреБрдХреНрдд
V8 рдЗрдВрдЬрди рдИрд╡реЗрдВрдЯ рд▓реВрдк рдореЗрдВ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд╕рдВрднрд╛рд▓рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдорд╛рд░реА рдореБрдЦреНрдп рдЪрд┐рдВрддрд╛ рдпрд╣ рдереА рдХрд┐ рдпрд╣ рдкрддрд╛ рдЪрд▓реЗ рдХрд┐ рд╣рдо рдИрд╡реЗрдВрдЯ рд▓реВрдк рдореЗрдВ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╕рд┐рд╕реНрдЯрдо рдереНрд░реВрдкреБрдЯ рдХреЛ рдХрдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдЗрди рдЬреЛрдЦрд┐рдореЛрдВ рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо, рдкрд╣рд▓реЗ рд╕рдорд╛рдирд╛рдВрддрд░ рдХрд░реНрдордЪрд╛рд░реА рдХреЗ рдЙрддреНрдкрд╛рджрди рдореЗрдВ рдЖрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдирд┐рдЧрд░рд╛рдиреА рдЙрдкрдХрд░рдгреЛрдВ рдФрд░ рдЙрдкрдХрд░рдгреЛрдВ рдХреА рдЙрдкрд▓рдмреНрдзрддрд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддреЗ рд╣реИрдВ:
- рд╣рдорд╛рд░реЗ рджреНрд╡рд╛рд░рд╛ рдкрд╣рд▓реЗ рд╕реЗ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХреА рдЧрдИ рдИрдПрд▓рдХреЗ рд╕реНрдЯреИрдХ рдиреЗ рд╣рдореЗрдВ рдкрд░реНрдпрд╛рдкреНрдд рдорд╛рддреНрд░рд╛ рдореЗрдВ рд▓реЙрдЧ рдЗрди рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рджрд╛рди рдХреА рд╣реИ, рдЬреЛ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдХреНрдпрд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИ, рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
- рд╣рдордиреЗ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдХрдИ рдкреНрд░реЛрдореЗрдерд┐рдпрд╕ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдЬреЛрдбрд╝реЗ рд╣реИрдВред рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:
- V8 рд╣реАрдк рдХрд╛ рдЖрдХрд╛рд░
process.memoryUsage()
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ред - рдЬреАрд╕реА-рд╕рд╛рдВрдЦреНрдпрд┐рдХреА рдкреИрдХреЗрдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрдЪрд░рд╛ рд╕рдВрдЧреНрд░рд╣рдг рд╕рдВрдЪрд╛рд▓рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реАред
- рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдордп рдкрд░ рдбреЗрдЯрд╛, рдмреИрдВрдХреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХреАрдХрд░рдг рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдкреНрд░рдХрд╛рд░ рдФрд░ рд╕рдореВрд╣реАрдХрд░рдг рдХреЗ рд╕реНрддрд░ рд╕реЗ рд╕рдореВрд╣реАрдХреГрддред рд╣рдореЗрдВ рдЗрд╕ рдмрд╛рдд рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХреИрд╕реЗ рд╕рдВрдЧрдгрдирд╛ рдкреНрд░рдгрд╛рд▓реА рдкреНрд░рд╡рд╛рд╣ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИ
- рд╣рдордиреЗ рдЧреНрд░реЗрдлрд╛рдирд╛ рдХрдВрдЯреНрд░реЛрд▓ рдкреИрдирд▓ рдмрдирд╛рдпрд╛, рдЬрд┐рд╕реЗ рд╕рд┐рд╕реНрдЯрдо рдкрд░ рдХрдВрд╕реАрдбрд░ рдХреЗ рдкреНрд░рднрд╛рд╡ рдХреА рдбрд┐рдЧреНрд░реА рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
- рд╣рдорд╛рд░реЗ рд▓рд┐рдП, рд╕реЗрд╡рд╛ рдХреЛ рдлрд┐рд░ рд╕реЗ рддреИрдпрд╛рд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рдмрд┐рдирд╛ рдЖрд╡реЗрджрди рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдмрджрд▓рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдмреЗрд╣рдж рдорд╣рддреНрд╡рдкреВрд░реНрдг рдереАред рдЗрд╕рд▓рд┐рдП, рд╣рдордиреЗ рд╡рд┐рднрд┐рдиреНрди рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдП рдЧрдП LaunchDarkly рдЭрдВрдбреЗ рдХрд╛ рдПрдХ рд╕реЗрдЯ рдмрдирд╛рдпрд╛ред рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рд╕рд╛рде, рд╢реНрд░рдорд┐рдХреЛрдВ рдХреЗ рдорд╛рдкрджрдВрдбреЛрдВ рдХрд╛ рдЪрдпрди, рдЧрдгрдирд╛ рдХреА рдЧрдИ рддрд╛рдХрд┐ рд╡реЗ рд╕рдорд╛рдирддрд╛ рдХреЗ рдЕрдзрд┐рдХрддрдо рд╕реНрддрд░ рддрдХ рдкрд╣реБрдВрдЪ рд╕рдХреЗрдВ, рд╣рдореЗрдВ рдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рдЬрд▓реНрджреА рдХрд░рдиреЗ рдФрд░ рд╕рд░реНрд╡реЛрддреНрддрдо рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рдЦреЛрдЬрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреА, рдЗрд╕ рдкрд░ рдХреБрдЫ рдорд┐рдирдЯ рдмрд┐рддрд╛рдПред
- рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд╡рд┐рднрд┐рдиреНрди рднрд╛рдЧ рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЛ рдХреИрд╕реЗ рд▓реЛрдб рдХрд░рддреЗ рд╣реИрдВ, рд╣рдордиреЗ рдЙрддреНрдкрд╛рджрди рд╕реЗрд╡рд╛ рдбреЗрдЯрд╛ рд╕рдВрдЧреНрд░рд╣ рдЙрдкрдХрд░рдг рдореЗрдВ рдмрдирд╛рдпрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд▓реМ рдЖрд░реЗрдЦ рдмрдирд╛рдП рдЧрдП рдереЗред
- рд╣рдордиреЗ 0x рдкреИрдХреЗрдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдХреНрдпреЛрдВрдХрд┐ Node.js рдЯреВрд▓ рдХреЛ рд╣рдорд╛рд░реА рд╕реЗрд╡рд╛ рдореЗрдВ рдПрдХреАрдХреГрдд рдХрд░рдирд╛ рдЖрд╕рд╛рди рдерд╛, рдФрд░ рдХреНрдпреЛрдВрдХрд┐ рдЕрдВрддрд┐рдо HTML рдбреЗрдЯрд╛ рд╡рд┐рдЬрд╝реБрдЕрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рдиреЗ рдЦреЛрдЬ рдХрд╛ рд╕рдорд░реНрдерди рдХрд┐рдпрд╛ рдФрд░ рд╣рдореЗрдВ рдЕрдЪреНрдЫреЗ рд╕реНрддрд░ рдХрд╛ рд╡рд┐рд╡рд░рдг рджрд┐рдпрд╛ред
- рд╣рдордиреЗ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдПрдХ рдкреНрд░реЛрдлрд╛рдЗрд▓рд┐рдВрдЧ рдореЛрдб рдЬреЛрдбрд╝рд╛ рдЬрдм рд╡рд░реНрдХрд░ рдиреЗ 0x рдкреИрдХреЗрдЬ рдХреЛ рдЪрд╛рд▓реВ рдХрд┐рдпрд╛ рдФрд░ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рддреЗ рд╕рдордп S3 рдореЗрдВ рдЕрдВрддрд┐рдо рдбреЗрдЯрд╛ рд▓рд┐рдЦрд╛ред рдлрд┐рд░ рд╣рдо S3 рд╕реЗ рдЙрди рд▓реЙрдЧ рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ
0x --visualize-only ./flamegraph
рдХреА рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред - рд╣рдордиреЗ, рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╕рдордп рдореЗрдВ, рдХреЗрд╡рд▓ рдПрдХ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрдлрд╛рдЗрд▓рд┐рдВрдЧ рд╢реБрд░реВ рдХреАред рдкреНрд░реЛрдлрд╛рдЗрд▓рд┐рдВрдЧ рд╕реЗ рд╕рдВрд╕рд╛рдзрди рдХреА рдЦрдкрдд рдмрдврд╝ рдЬрд╛рддреА рд╣реИ рдФрд░ рдЙрддреНрдкрд╛рджрдХрддрд╛ рдХрдо рд╣реЛ рдЬрд╛рддреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдЗрди рдирдХрд╛рд░рд╛рддреНрдордХ рдкреНрд░рднрд╛рд╡реЛрдВ рдХреЛ рдПрдХ рд╢реНрд░рдорд┐рдХ рддрдХ рд╕реАрдорд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣реЗрдВрдЧреЗред
Loyment рддреИрдирд╛рддреА рд╢реБрд░реВ рдХрд░реЗрдВ
рдкреНрд░рд╛рд░рдВрднрд┐рдХ рддреИрдпрд╛рд░реА рдкреВрд░реА рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдордиреЗ "рд╕рдорд╛рдирд╛рдВрддрд░ рд╢реНрд░рдорд┐рдХреЛрдВ" рдХреЗ рд▓рд┐рдП рдПрдХ рдирдпрд╛ рдИрд╕реАрдПрд╕ рдХреНрд▓рд╕реНрдЯрд░ рдмрдирд╛рдпрд╛ред рдпреЗ рд╡реЗ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдереЗ рдЬрд┐рдиреНрд╣реЛрдВрдиреЗ рд▓реЙрдиреНрдЪрдбрд╛рд░реНрдХрд▓реА рдЭрдВрдбреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рдЕрдкрдиреЗ рдЕрдзрд┐рдХрддрдо рд╕реНрддрд░ рдХреЗ рд╕рдорд╛рдирддрд╛рд╡рд╛рдж рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдерд╛ред
рд╣рдорд╛рд░реА рдкреНрд░рдгрд╛рд▓реА рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдпреЛрдЬрдирд╛ рдореЗрдВ рдкреБрд░рд╛рдиреЗ рдХреНрд▓рд╕реНрдЯрд░ рд╕реЗ рдирдП рддрдХ рдпрд╛рддрд╛рдпрд╛рдд рдХреА рдмрдврд╝рддреА рдорд╛рддреНрд░рд╛ рдХрд╛ рдЪрд░рдгрдмрджреНрдз рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рди рд╢рд╛рдорд┐рд▓ рдерд╛ред рдЗрд╕ рджреМрд░рд╛рди, рд╣рдо рдирдП рдХреНрд▓рд╕реНрдЯрд░ рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХреА рдмрд╛рд░реАрдХреА рд╕реЗ рдирд┐рдЧрд░рд╛рдиреА рдХрд░рдиреЗ рдЬрд╛ рд░рд╣реЗ рдереЗред рдкреНрд░рддреНрдпреЗрдХ рд▓реЛрдб рд╕реНрддрд░ рдкрд░, рд╣рдордиреЗ рдкреНрд░рддреНрдпреЗрдХ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдХреЗ рд╕рдорд╛рдирд╛рдВрддрд░рд╡рд╛рдж рдХреЗ рд╕реНрддрд░ рдХреЛ рдмрдврд╝рд╛рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛рдИ, рдЬрд┐рд╕рд╕реЗ рдЗрд╕реЗ рдЕрдзрд┐рдХрддрдо рдореВрд▓реНрдп рдкрд░ рд▓рд╛рдпрд╛ рдЧрдпрд╛, рдЬрд┐рд╕рдореЗрдВ рдХрд╛рд░реНрдпреЛрдВ рдХреА рдЕрд╡рдзрд┐ рдпрд╛ рдЕрдиреНрдп рд╕рдВрдХреЗрддрдХреЛрдВ рдХреА рдЧрд┐рд░рд╛рд╡рдЯ рдореЗрдВ рдХреЛрдИ рд╡реГрджреНрдзрд┐ рдирд╣реАрдВ рд╣реБрдИред рдпрджрд┐ рд╣рдо рдореБрд╕реАрдмрдд рдореЗрдВ рдереЗ, рддреЛ рд╣рдо рдХреБрдЫ рд╣реА рд╕реЗрдХрдВрдб рдХреЗ рднреАрддрд░, рдкреБрд░рд╛рдиреЗ рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рд┐рдд рдЯреНрд░реИрдлрд╝рд┐рдХ рдХрд░ рд╕рдХрддреЗ рдереЗред
рдЬреИрд╕реА рдХрд┐ рдЙрдореНрдореАрдж рдереА, рд╣рдо рдХреБрдЫ рдореБрд╢реНрдХрд┐рд▓ рд╕рдорд╕реНрдпрд╛рдУрдВ рдореЗрдВ рднрд╛рдЧ рдЧрдПред рдЕрджреНрдпрддрди рдкреНрд░рдгрд╛рд▓реА рдХрд╛ рд╕рд╣реА рд╕рдВрдЪрд╛рд▓рди рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдореЗрдВ рдЙрдирдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдФрд░ рдЙрдиреНрд╣реЗрдВ рд╕рдорд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереАред рдпрд╣реАрдВ рд╕реЗ рдорд╕реНрддреА рд╢реБрд░реВ рд╣реБрдИред
рд╡рд┐рд╕реНрддреГрдд рдХрд░реЗрдВ, рдЕрдиреНрд╡реЗрд╖рдг рдХрд░реЗрдВ, рджреЛрд╣рд░рд╛рдПрдВ
J Node.js рдХрд╛ рдЕрдзрд┐рдХрддрдо рдвреЗрд░ рдЖрдХрд╛рд░ рдмрдврд╝рд╛рдирд╛
рдЬрдм рд╣рдордиреЗ рдирдИ рдкреНрд░рдгрд╛рд▓реА рдХреЛ рддреИрдирд╛рдд рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛, рддреЛ рд╣рдо рдПрдХ рдЧреИрд░-рд╢реВрдиреНрдп рдирд┐рдХрд╛рд╕ рдХреЛрдб рдХреЗ рд╕рд╛рде рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдкреВрд░рд╛ рд╣реЛрдиреЗ рдХреА рд╕реВрдЪрдирд╛рдПрдВ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рд▓рдЧреЗред рд╡реИрд╕реЗ рдореИрдВ рдХреНрдпрд╛ рдХрд╣ рд╕рдХрддрд╛ рд╣реВрдВ - рдПрдХ рдЖрд╢рд╛рдЬрдирдХ рд╢реБрд░реБрдЖрддред рдлрд┐рд░ рд╣рдордиреЗ рдХрд┐рдмрд╛рдирд╛ рдореЗрдВ рджрдлрди рдХрд┐рдпрд╛ рдФрд░ рдЖрд╡рд╢реНрдпрдХ рд▓реЙрдЧ рдкрд╛рдпрд╛:
FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - Javascript heap out of memory 1: node::Abort() 2: node::FatalException(v8::Isolate*, v8::Local, v8::Local) 3: v8::internal::V8::FatalProcessOutOfMemory(char const*, bool) 4: v8::internal::Factory::NewFixedArray(int, v8::internal::PretenureFlag)
рдпрд╣ рдореЗрдореЛрд░реА рд▓реАрдХ рдХреЗ рдкреНрд░рднрд╛рд╡реЛрдВ рдХреА рдпрд╛рдж рджрд┐рд▓рд╛рддрд╛ рдерд╛ рдЬреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕рд╛рдордирд╛ рдХрд░ рдЪреБрдХреЗ рдереЗ рдЬрдм рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рд░реВрдк рд╕реЗ рд╕рдорд╛рдкреНрдд рд╣реЛ рдЧрдИ рдереА, рдПрдХ рд╕рдорд╛рди рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рджреЗ рд░рд╣реА рдереАред рдпрд╣ рдХрд╛рдлреА рдЕрдкреЗрдХреНрд╖рд┐рдд рд▓рдЧ рд░рд╣рд╛ рдерд╛: рд╕рдорд╛рдирддрд╛ рдХреЗ рд╕реНрддрд░ рдореЗрдВ рд╡реГрджреНрдзрд┐ рд╕реЗ рд╕реНрдореГрддрд┐ рдЙрдкрдпреЛрдЧ рдХреЗ рд╕реНрддрд░ рдореЗрдВ рд╡реГрджреНрдзрд┐ рд╣реЛрддреА рд╣реИред
рд╣рдордиреЗ рд╕реБрдЭрд╛рд╡ рджрд┐рдпрд╛ рдХрд┐ Node.js рд╣реАрдк рдХреЗ рдЕрдзрд┐рдХрддрдо рдЖрдХрд╛рд░ рдХреЛ рдмрдврд╝рд╛рдХрд░, рдЬреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ 1.7 GB рдкрд░ рд╕реЗрдЯ рд╣реИ, рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдлрд┐рд░ рд╣рдордиреЗ Node.js рдХреЛ рдЪрд▓рд╛рдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛, рдЕрдзрд┐рдХрддрдо рд╣реАрдк рдЖрдХрд╛рд░ рдХреЛ 6 GB рдкрд░ рд╕реЗрдЯ рдХрд░рдирд╛ (рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдзреНрд╡рдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛
--max-old-space-size=6144
)ред рдпрд╣ рд╕рдмрд╕реЗ рдмрдбрд╝рд╛ рдореВрд▓реНрдп рдерд╛ рдЬреЛ рд╣рдорд╛рд░реЗ EC2 рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рдерд╛ред рд╣рдорд╛рд░реА рдЦреБрд╢реА рдХреЗ рд▓рд┐рдП, рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рдХрджрдо рдиреЗ рд╣рдореЗрдВ рдЙрддреНрдкрд╛рджрди рдореЗрдВ рд╣реЛрдиреЗ рд╡рд╛рд▓реА рдЙрдкрд░реЛрдХреНрдд рддреНрд░реБрдЯрд┐ рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреАред
тЦН рдореЗрдореЛрд░реА рдЯреЛрдВрдЯреА рдкрд╣рдЪрд╛рди
рд╣рдордиреЗ рдореЗрдореЛрд░реА рдЖрд╡рдВрдЯрди рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдо рд╕рдорд╛рдирд╛рдВрддрд░ рд╢реНрд░рдорд┐рдХреЛрдВ рдкрд░ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдЦрд░рд╛рдм рдереНрд░реВрдкреБрдЯ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛ред рдЙрд╕реА рд╕рдордп, рдирд┐рдпрдВрддреНрд░рдг рдХрдХреНрд╖ рдкрд░ рд░реЗрдЦрд╛рдВрдХрди рдореЗрдВ рд╕реЗ рдПрдХ рдиреЗ рддреБрд░рдВрдд рд╣рдорд╛рд░рд╛ рдзреНрдпрд╛рди рдЖрдХрд░реНрд╖рд┐рдд рдХрд┐рдпрд╛ред рдпрд╣ рдПрдХ рд░рд┐рдкреЛрд░реНрдЯ рдереА рдХрд┐ рдХреИрд╕реЗ рд╕рдорд╛рдирд╛рдВрддрд░ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдПрдВ рдПрдХ рдЧреБрдЪреНрдЫрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИрдВред
рдвреЗрд░ рдХрд╛ рдЙрдкрдпреЛрдЧрдЗрд╕ рдЧреНрд░рд╛рдл рдХреЗ рдХреБрдЫ рдШрдЯрддрд╛ рд▓рдЧрд╛рддрд╛рд░ рдмрдврд╝рддреЗ рдЧрдП - рдЬрдм рддрдХ рд╡реЗ рдореБрдбрд╝ рдирд╣реАрдВ рдЧрдП, рдЕрдзрд┐рдХрддрдо рд╣реАрдк рдЖрдХрд╛рд░ рдХреЗ рд╕реНрддрд░ рдкрд░, рд▓рдЧрднрдЧ рдХреНрд╖реИрддрд┐рдЬ рд░реЗрдЦрд╛рдУрдВ рдореЗрдВред рд╣рдо рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕реЗ рдкрд╕рдВрдж рдирд╣реАрдВ рдХрд░рддреЗ рдереЗред
рд╣рдордиреЗ рдРрд╕реЗ рд╕рд┐рд╕реНрдЯрдо рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЗ рдХрд╛рд░рдгреЛрдВ рд╕реЗ рдлрд╝рд╛рдЗрд▓ рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ рдпрд╛ рдиреЗрдЯрд╡рд░реНрдХ рд╕реЙрдХреЗрдЯ рдХреЗ рд▓реАрдХ рдХреЛ рдЦрддреНрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрдореЗрдерд┐рдпрд╕ рдореЗрдВ рд╕рд┐рд╕реНрдЯрдо рдореЗрдЯреНрд░рд┐рдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ред рд╣рдорд╛рд░реА рд╕рдмрд╕реЗ рдЙрдкрдпреБрдХреНрдд рдзрд╛рд░рдгрд╛ рдпрд╣ рдереА рдХрд┐ рдХрдЪрд░рд╛ рд╕рдВрдЧреНрд░рд╣ рдкреБрд░рд╛рдиреА рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд▓рд┐рдП рдЕрдХреНрд╕рд░ рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рдерд╛ред рдпрд╣ рдЗрд╕ рддрдереНрдп рдХреЛ рдЬрдиреНрдо рджреЗ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЬреИрд╕реЗ рд╣реА рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЕрдирд╛рд╡рд╢реНрдпрдХ рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд▓рд┐рдП рдЖрд╡рдВрдЯрд┐рдд рдЕрдзрд┐рдХ рд╕реЗ рдЕрдзрд┐рдХ рдореЗрдореЛрд░реА рдЬрдорд╛ рдХрд░реЗрдЧрд╛ред рд╣рдордиреЗ рдорд╛рди рд▓рд┐рдпрд╛ рдХрд┐ рд╕рд┐рд╕реНрдЯрдо рдХрд╛ рд╕рдВрдЪрд╛рд▓рди, рдЬрд┐рд╕рдХреЗ рджреМрд░рд╛рди рдЗрд╕рдХрд╛ рдереНрд░реВрдкреБрдЯ рдЕрдкрдорд╛рдирд┐рдд рд╣реЛрддрд╛ рд╣реИ, рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:
- рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдПрдХ рдирдпрд╛ рдХрд╛рд░реНрдп рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рдХреБрдЫ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИред
- рдХрд╛рд░реНрдп рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ, рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдореЗрдореЛрд░реА рдХреЛ рдвреЗрд░ рдкрд░ рдЖрд╡рдВрдЯрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
- рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рдХрд┐ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдСрдкрд░реЗрд╢рди рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рд╡реЗ "рдХрд┐рдП рдЧрдП рдФрд░ рднреВрд▓ рдЧрдП" рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрдд рдкрд░ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ (рддрдм рдпрд╣ рдЕрднреА рддрдХ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рдерд╛ рдХрд┐ рдХреМрди рд╕рд╛) рдЕрдкреВрд░реНрдг рд╣реИ, рдХрд╛рд░реНрдп рдкреВрд░рд╛ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рднреА рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд╕рдВрджрд░реНрдн рд╕рд╣реЗрдЬреЗ рдЬрд╛рддреЗ рд╣реИрдВред
- рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рдХрдЪрд░рд╛ рд╕рдВрдЧреНрд░рд╣ рдзреАрдорд╛ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рд╡реА 8 рдХреЛ рдвреЗрд░ рдореЗрдВ рд╡рд╕реНрддреБрдУрдВ рдХреА рдмрдврд╝рддреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рд╕реНрдХреИрди рдХрд░рдирд╛ рд╣реИред
- рдЪреВрдВрдХрд┐ V8 рдПрдХ рдХрдЪрд░рд╛ рд╕рдВрдЧреНрд░рд╣ рдкреНрд░рдгрд╛рд▓реА рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рд╕реНрдЯреЙрдк-рдж-рд╡рд░реНрд▓реНрдб рд╕реНрдХреАрдо (рдХрдЪрд░рд╛ рд╕рдВрдЧреНрд░рд╣рдг рдХреА рдЕрд╡рдзрд┐ рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЛ рд░реЛрдХрдирд╛) рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдирдП рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рдХрдо рдкреНрд░реЛрд╕реЗрд╕рд░ рд╕рдордп рдкреНрд░рд╛рдкреНрдд рд╣реЛрдЧрд╛, рдЬреЛ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдХреЗ рдереНрд░реВрдкреБрдЯ рдХреЛ рдХрдо рдХрд░рддрд╛ рд╣реИред
рд╣рдордиреЗ рдЕрдкрдиреЗ рдХреЛрдб рдореЗрдВ "рдХрд┐рдП рдЧрдП рдФрд░ рднреВрд▓ рдЧрдП" рд╕рд┐рджреНрдзрд╛рдВрдд рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдХрд┐рдП рдЧрдП рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЦреЛрдЬ рд╢реБрд░реВ рдХреАред рдЙрдиреНрд╣реЗрдВ "рдлреНрд▓реЛрдЯрд┐рдВрдЧ рд╡рд╛рджреЗ" ("рдлреНрд▓реЛрдЯрд┐рдВрдЧ рд╡рд╛рджреЗ") рднреА рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рд╕рд░рд▓ рдерд╛ - рдпрд╣ рдЙрди рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдерд╛ рдЬрд┐рд╕рдореЗрдВ
рдиреЛ-рдлреНрд▓реЛрдЯрд┐рдВрдЧ-рд╡рд╛рджреЗ рд▓рд┐рдВрдЯрд░ рд╢рд╛рд╕рди рдХреЛ рдЕрдХреНрд╖рдо рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдПрдХ рд╡рд┐рдзрд┐ рдиреЗ рд╣рдорд╛рд░рд╛ рдзреНрдпрд╛рди рдЖрдХрд░реНрд╖рд┐рдд рдХрд┐рдпрд╛ред рдЙрдиреНрд╣реЛрдВрдиреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд┐рдП рдмрд┐рдирд╛
compressAndUploadDebuggingPayload
рдХреЙрд▓ рдХрд┐рдпрд╛ред рдРрд╕рд╛ рд▓рдЧ рд░рд╣рд╛ рдерд╛ рдХрд┐ рдЯрд╛рд╕реНрдХ рдХреА рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдкреВрд░реА рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рднреА рдЗрд╕ рддрд░рд╣ рдХреА рдХреЙрд▓ рдЖрд╕рд╛рдиреА рд╕реЗ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдЬрд╛рд░реА рд░рд╣ рд╕рдХрддреА рд╣реИред
const postTaskDebugging = async (data: TypedData) => { const payload = await generateDebuggingPayload(data);
рд╣рдо рдЗрд╕ рдкрд░рд┐рдХрд▓реНрдкрдирд╛ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рдереЗ рдХрд┐ рдЗрд╕ рддрд░рд╣ рдХреЗ рддреИрд░рддреЗ рд╡рд╛рджреЗ рдкрд░реЗрд╢рд╛рдиреА рдХрд╛ рдореБрдЦреНрдп рд╕реНрд░реЛрдд рдереЗред рдпрджрд┐ рдЖрдк рдЗрди рдЪреБрдиреМрддрд┐рдпреЛрдВ рдХреЛ рдкреВрд░рд╛ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд╕рд╣реА рд╕рдВрдЪрд╛рд▓рди рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдХреНрдпрд╛ рд╣рдо рдХрд╛рд░реНрдпреЛрдВ рдХреА рдЧрддрд┐ рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ? рдЬрдм рд╣рдо рдЕрд╕реНрдерд╛рдпреА рд░реВрдк рд╕реЗ
postTaskDebugging
рдХреЙрд▓ рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛
postTaskDebugging
рд╣реИрдВ, рддреЛ рдпрд╣рд╛рдВ рдХреНрдпрд╛ рд╣реАрдк рдЙрдкрдпреЛрдЧ рдЬрд╛рдирдХрд╛рд░реА рджрд┐рдЦрд╛рдИ
postTaskDebugging
рд╣реИред
PostTaskDebugging рдХреЛ рдЕрдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рд╣реАрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛рдпрд╣ рдирд┐рдХрд▓рд╛! рдЕрдм рд╕рдорд╛рдирд╛рдВрддрд░ рд╢реНрд░рдорд┐рдХреЛрдВ рдореЗрдВ рдвреЗрд░ рдЙрдкрдпреЛрдЧ рд╕реНрддрд░ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рд╕реНрдерд┐рд░ рд░рд╣рддрд╛ рд╣реИред
рдПрдХ рднрд╛рд╡рдирд╛ рдереА рдХрд┐ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ, рдЬреИрд╕реЗ-рдЬреИрд╕реЗ рдХрд╛рд░реНрдп рдкреВрд░реЗ рд╣реЛрддреЗ рдЧрдП, рд╡реИрд╕реЗ-рд╡реИрд╕реЗ
compressAndUploadDebuggingPayload
рд▓реЛрдб рдХреЗ "рдЛрдг" рдзреАрд░реЗ-рдзреАрд░реЗ рдЬрдорд╛ рд╣реЛрддреЗ рдЧрдПред рдпрджрд┐ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдХреЛ рдЗрди "рдЛрдгреЛрдВ" рдХрд╛ "рднреБрдЧрддрд╛рди" рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рддреЗрдЬреА рд╕реЗ рдХрд╛рд░реНрдп рдкреНрд░рд╛рдкреНрдд рд╣реБрдП, рддреЛ рдЬрд┐рди рд╡рд╕реНрддреБрдУрдВ рдХреЗ рддрд╣рдд рдореЗрдореЛрд░реА рдЖрд╡рдВрдЯрд┐рдд рдХреА рдЧрдИ рдереА, рд╡реЗ рдХрдЪрд░рд╛ рд╕рдВрдЧреНрд░рд╣рдг рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдЕрдзреАрди рдирд╣реАрдВ рдереЗред рдЗрд╕рд╕реЗ рдвреЗрд░ рдХреЛ рдмрд╣реБрдд рдКрдкрд░ рддрдХ рднрд░рдиреЗ рдореЗрдВ рдорджрдж рдорд┐рд▓реА, рдЬрд┐рд╕реЗ рд╣рдордиреЗ рдКрдкрд░ рдорд╛рдирд╛, рдкрд┐рдЫрд▓реЗ рдЪрд╛рд░реНрдЯ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд┐рдпрд╛ред
рд╣рдо рдЖрд╢реНрдЪрд░реНрдпрдЪрдХрд┐рдд рд╣реЛрдиреЗ рд▓рдЧреЗ рдХрд┐ рдЗрди рддреИрд░рдиреЗ рд╡рд╛рд▓реЗ рд╡рд╛рджреЛрдВ рдиреЗ рдЗрддрдиреА рдзреАрдореА рдЧрддрд┐ рд╕реЗ рдХреНрдпрд╛ рдХрд┐рдпрд╛ред рд╣рдо рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдХреЛрдб рд╕реЗ
compressAndUploadDebuggingPayload
рдХреЛ рд╣рдЯрд╛рдирд╛ рдирд╣реАрдВ рдЪрд╛рд╣рддреЗ рдереЗ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдХреЙрд▓ рдмреЗрд╣рдж рдорд╣рддреНрд╡рдкреВрд░реНрдг рдерд╛ рддрд╛рдХрд┐ рд╣рдорд╛рд░реЗ рдЗрдВрдЬреАрдирд┐рдпрд░ рдЕрдкрдиреЗ рд╕реНрдерд╛рдиреАрдп рдорд╢реАрдиреЛрдВ рдкрд░ рдЙрддреНрдкрд╛рджрди рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдбрд┐рдмрдЧ рдХрд░ рд╕рдХреЗрдВред рдПрдХ рддрдХрдиреАрдХреА рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ, рд╣рдо рдЗрд╕ рдХреЙрд▓ рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рдХреЗ рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдж рдХрд╛рд░реНрдп рдХреЛ рдкреВрд░рд╛ рдХрд░рдХреЗ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рд╕реЗ рдлреНрд▓реЛрдЯрд┐рдВрдЧ рд╡рд╛рджреЗ рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдорд┐рд▓ рдЬрд╛рдПрдЧрд╛ред рд▓реЗрдХрд┐рди рдЗрд╕рд╕реЗ рд╣рдорд╛рд░реЗ рджреНрд╡рд╛рд░рд╛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдП рдЬрд╛ рд░рд╣реЗ рдкреНрд░рддреНрдпреЗрдХ рдХрд╛рд░реНрдп рдХрд╛ рдирд┐рд╖реНрдкрд╛рджрди рд╕рдордп рдмрд╣реБрдд рдмрдврд╝ рдЬрд╛рдПрдЧрд╛ред
рдпрд╣ рддрдп рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдХрд┐ рд╣рдо рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЗ рд╕рдорд╛рдзрд╛рди рдХреЛ рдЕрдВрддрд┐рдо рдЙрдкрд╛рдп рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ, рд╣рдордиреЗ рдХреЛрдб рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛ред рдЗрд╕ рдСрдкрд░реЗрд╢рди рдХреЛ рдЧрддрд┐ рдХреИрд╕реЗ рджреЗрдВ?
тЦНрдлрд┐рдХреНрд╕ рдЯреЛрдВрдЯреА S3
compressAndUploadDebuggingPayload
рддрд░реНрдХ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рдЖрд╕рд╛рди рд╣реИред рдпрд╣рд╛рдВ рд╣рдо рдбрд┐рдмрдЧ рдбреЗрдЯрд╛ рдХреЛ рд╕рдВрдкреАрдбрд╝рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдпрд╣ рдХрд╛рдлреА рдмрдбрд╝рд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдореЗрдВ рдиреЗрдЯрд╡рд░реНрдХ рдЯреНрд░реИрдлрд╝рд┐рдХ рд╢рд╛рдорд┐рд▓ рд╣реИред рдлрд┐рд░ рд╣рдо рд╕рдВрдкреАрдбрд╝рд┐рдд рдбреЗрдЯрд╛ рдХреЛ S3 рдкрд░ рдЕрдкрд▓реЛрдб рдХрд░рддреЗ рд╣реИрдВред
export const compressAndUploadDebuggingPayload = async ( logger: Logger, data: any, ) => { const compressionStart = Date.now(); const base64CompressedData = await streamToString( bfj.streamify(data) .pipe(zlib.createDeflate()) .pipe(new b64.Encoder()), ); logger.trace('finished compressing data', { compression_time_ms: Date.now() - compressionStart, ); const uploadStart = Date.now(); s3Client.upload({ Body: base64CompressedData, Bucket: bucket, Key: key, }); logger.trace('finished uploading data', { upload_time_ms: Date.now() - uploadStart, ); }
рдХрд┐рдмрд╛рдирд╛ рд▓реЙрдЧ рд╕реЗ, рдпрд╣ рд╕реНрдкрд╖реНрдЯ рдерд╛ рдХрд┐ рдПрд╕ 3 рдореЗрдВ рдбреЗрдЯрд╛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдирд╛, рднрд▓реЗ рд╣реА рдЗрд╕рдХреА рдорд╛рддреНрд░рд╛ рдЫреЛрдЯреА рд╣реЛ, рдмрд╣реБрдд рд╕рдордп рд▓рдЧрддрд╛ рд╣реИред рд╣рдордиреЗ рд╢реБрд░реВ рдореЗрдВ рдпрд╣ рдирд╣реАрдВ рд╕реЛрдЪрд╛ рдерд╛ рдХрд┐ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рд╕реЙрдХреЗрдЯреНрд╕ рдПрдХ рдЕрдбрд╝рдЪрди рдмрди рд╕рдХрддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдорд╛рдирдХ Node.js HTTPS рдПрдЬреЗрдВрдЯ,
Infinity
рдХреЛ
рдореИрдХреНрд╕рд┐рдордо рдкреЙрдХреЗрдЯ рдкреИрд░рд╛рдореАрдЯрд░ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЕрдВрдд рдореЗрдВ, рд╣рдордиреЗ
maxSockets
рдкрд░ AWS рдХреЗ рдбреЙрдХреНрдпреВрдореЗрдВрдЯ рдХреЛ рдкрдврд╝рд╛ рдФрд░ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдХреБрдЫ рдЖрд╢реНрдЪрд░реНрдпрдЬрдирдХ рдкрд╛рдпрд╛: S3 рдХреНрд▓рд╛рдЗрдВрдЯ рдиреЗ
maxSockets
рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рдорд╛рди рдХреЛ
maxSockets
50
ред рдХрд╣рдиреЗ рдХреА рдЬрд░реВрд░рдд рдирд╣реАрдВ рд╣реИ, рдЗрд╕ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рд╕рд╣рдЬ рдирд╣реАрдВ рдХрд╣рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдЪреВрдВрдХрд┐ рд╣рдо рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдХреЛ рдПрдХ рдРрд╕реА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд▓рд╛рдП рд╣реИрдВ, рдЬрд╣рд╛рдВ рдкреНрд░рддрд┐рд╕реНрдкрд░реНрдзреА рдореЛрдб рдореЗрдВ, 50 рд╕реЗ рдЕрдзрд┐рдХ рдХрд╛рд░реНрдп рдХрд┐рдП рдЧрдП рдереЗ, рдбрд╛рдЙрдирд▓реЛрдб рдЪрд░рдг рдПрдХ рдЕрдбрд╝рдЪрди рдмрди рдЧрдпрд╛: рдпрд╣ рд╕реЙрдХреЗрдЯ рдХреЗ рд▓рд┐рдП рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рддрд╛рдХрд┐ рдбреЗрдЯрд╛ рдХреЛ S3 рдкрд░ рдЕрдкрд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред рд╣рдордиреЗ S3 рдХреНрд▓рд╛рдЗрдВрдЯ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рдХреЛрдб рдореЗрдВ рдирд┐рдореНрди рдкрд░рд┐рд╡рд░реНрддрди рдХрд░рдХреЗ рдбреЗрдЯрд╛ рд▓реЛрдбрд┐рдВрдЧ рд╕рдордп рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд┐рдпрд╛:
const s3Client = new AWS.S3({ httpOptions: { agent: new https.Agent({
Serial JSON рдХреНрд░рдорд╛рдВрдХрди рдХреЛ рдЧрддрд┐ рджреЗрдирд╛
S3 рдХреЛрдб рдореЗрдВ рд╕реБрдзрд╛рд░ рдиреЗ рдвреЗрд░ рдХреЗ рдЖрдХрд╛рд░ рдореЗрдВ рд╡реГрджреНрдзрд┐ рдХреЛ рдзреАрдорд╛ рдХрд░ рджрд┐рдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЙрдиреНрд╣реЛрдВрдиреЗ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдкреВрд░реНрдг рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИред рдПрдХ рдФрд░ рд╕реНрдкрд╖реНрдЯ рдЙрдкрджреНрд░рд╡ рдерд╛: рд╣рдорд╛рд░реЗ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдЙрдкрд░реЛрдХреНрдд рдХреЛрдб рдореЗрдВ рдбреЗрдЯрд╛ рд╕рдВрдкреАрдбрд╝рди рдХрджрдо 4 рдорд┐рдирдЯ рддрдХ рд░рд╣рддрд╛ рд╣реИред рдпрд╣ рд╕рд╛рдорд╛рдиреНрдп рдХрд╛рд░реНрдп рдкреВрд░рд╛ рд╣реЛрдиреЗ рдХреЗ рд╕рдордп рд╕реЗ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдерд╛, рдЬреЛ рдХрд┐ 4 рд╕реЗрдХрдВрдб рд╣реИред рд╣рдорд╛рд░реА рдЖрдВрдЦреЛрдВ рдкрд░ рд╡рд┐рд╢реНрд╡рд╛рд╕ рди рдХрд░рддреЗ рд╣реБрдП, рдпрд╣ рд╕рдордЭрддреЗ рд╣реБрдП рдХрд┐ рдпрд╣ 4 рдорд┐рдирдЯ рдХреИрд╕реЗ рд▓реЗ рд╕рдХрддрд╛ рд╣реИ, рд╣рдордиреЗ рд╕реНрдерд╛рдиреАрдп рдмреЗрдВрдЪрдорд╛рд░реНрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдФрд░ рдзреАрдореЗ рдХреЛрдб рдмреНрд▓реЙрдХ рдХрд╛ рдЕрдиреБрдХреВрд▓рди рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред
рдбреЗрдЯрд╛ рд╕рдВрдкреАрдбрд╝рди рдореЗрдВ рддреАрди рдЪрд░рдг рд╣реЛрддреЗ рд╣реИрдВ (рдпрд╣рд╛рдВ, рдореЗрдореЛрд░реА рдЙрдкрдпреЛрдЧ рдХреЛ рд╕реАрдорд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, Node.js
рд╕реНрдЯреНрд░реАрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ)ред рдЕрд░реНрдерд╛рддреН, рдкрд╣рд▓реЗ рдЪрд░рдг рдореЗрдВ, рд╕реНрдЯреНрд░рд┐рдВрдЧ JSON рдбреЗрдЯрд╛ рдЙрддреНрдкрдиреНрди рд╣реЛрддрд╛ рд╣реИ, рджреВрд╕рд░реЗ рдореЗрдВ, рдбреЗрдЯрд╛ рдХреЛ zlib рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рдВрдкреАрдбрд╝рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреАрд╕рд░реЗ рдореЗрдВ, рдЗрд╕реЗ рдмреЗрд╕ 64 рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рдореЗрдВ рдмрджрд▓ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╣рдореЗрдВ рд╕рдВрджреЗрд╣ рдерд╛ рдХрд┐ рдЬрд┐рди рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рд╕реНрд░реЛрдд рд╣рдо JSON рддрд╛рд░ -
bfj рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рд╡реЗ рддреГрддреАрдп-рдкрдХреНрд╖ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рд╣рдордиреЗ рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд┐рдЦреА рдереА рдЬреЛ рдзрд╛рд░рд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ JSON рд╕реНрдЯреНрд░рд┐рдВрдЧ рдбреЗрдЯрд╛ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рднрд┐рдиреНрди рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХреА рдЬрд╛рдВрдЪ рдХрд░рддреА рд╣реИ (рдЗрд╕реА рдХреЛрдб рдХреЛ
рдпрд╣рд╛рдВ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛
рд╣реИ )ред рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдмрд┐рдЧ рдлреНрд░реЗрдВрдбрд▓реА JSON рдкреИрдХреЗрдЬ рдЬреЛ рд╣рдо рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рдереЗ, рд╡рд╣ рдмрд┐рд▓реНрдХреБрд▓ рднреА рдЕрдиреБрдХреВрд▓ рдирд╣реАрдВ рдерд╛ред рдкреНрд░рдпреЛрдЧ рдХреЗ рджреМрд░рд╛рди рдкреНрд░рд╛рдкреНрдд рдорд╛рдк рдХреЗ рдХреБрдЫ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЛ рджреЗрдЦреЗрдВ:
benchBFJ*100: 67652.616ms benchJSONStream*100: 14094.825ms
рдЖрд╢реНрдЪрд░реНрдпрдЬрдирдХ рдкрд░рд┐рдгрд╛рдоред рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдкрд░реАрдХреНрд╖рдг рдореЗрдВ рднреА, bfj рдкреИрдХреЗрдЬ рджреВрд╕рд░реЗ рдкреИрдХреЗрдЬ, JSONStream рдХреА рддреБрд▓рдирд╛ рдореЗрдВ 5 рдЧреБрдирд╛ рдзреАрдорд╛ рдирд┐рдХрд▓рд╛ред рдЗрд╕рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рддреЗ рд╣реБрдП, рд╣рдордиреЗ рдЬрд▓реНрджреА рд╕реЗ bjj рдХреЛ
JSONStream рдореЗрдВ рдмрджрд▓ рджрд┐рдпрд╛ рдФрд░ рддреБрд░рдВрдд рдкреНрд░рджрд░реНрд╢рди рдореЗрдВ рдЙрд▓реНрд▓реЗрдЦрдиреАрдп рд╡реГрджреНрдзрд┐ рджреЗрдЦреАред
ред рдХрдЪрд░рд╛ рд╕рдВрдЧреНрд░рд╣рдг рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╕рдордп рдХреЛ рдХрдо рдХрд░рдирд╛
рдореЗрдореЛрд░реА рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдордиреЗ рдирд┐рдпрдорд┐рдд рдФрд░ рд╕рдорд╛рдирд╛рдВрддрд░ рд╢реНрд░рдорд┐рдХреЛрдВ рдХреЗ рдмреАрдЪ рдПрдХ рд╣реА рдкреНрд░рдХрд╛рд░ рдХреЗ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╕рдордп рдХреЗ рдЕрдВрддрд░ рдкрд░ рдзреНрдпрд╛рди рджреЗрдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛ред рдпрд╣ рддреБрд▓рдирд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╡реИрдз рдереА, рдЗрд╕рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╣рдо рдирдИ рдкреНрд░рдгрд╛рд▓реА рдХреА рдкреНрд░рднрд╛рд╡рд╢реАрд▓рддрд╛ рдХрд╛ рдиреНрдпрд╛рдп рдХрд░ рд╕рдХрддреЗ рдереЗред рдЗрд╕рд▓рд┐рдП, рдпрджрд┐ рдирд┐рдпрдорд┐рдд рдФрд░ рд╕рдорд╛рдирд╛рдВрддрд░ рд╢реНрд░рдорд┐рдХреЛрдВ рдХреЗ рдмреАрдЪ рдХрд╛ рдЕрдиреБрдкрд╛рдд рд▓рдЧрднрдЧ 1 рд╣реЛрдЧрд╛, рддреЛ рдпрд╣ рд╣рдореЗрдВ рд╡рд┐рд╢реНрд╡рд╛рд╕ рджрд┐рд▓рд╛рдПрдЧрд╛ рдХрд┐ рд╣рдо рд╕реБрд░рдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рдЗрди рд╢реНрд░рдорд┐рдХреЛрдВ рдХреЛ рдпрд╛рддрд╛рдпрд╛рдд рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдкрд╣рд▓реЗ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд▓реЙрдиреНрдЪ рдХреЗ рджреМрд░рд╛рди, рдЧреНрд░рд╛рдлрд╛рдирд╛ рдирд┐рдпрдВрддреНрд░рдг рдкреИрдирд▓ рдореЗрдВ рд╕рдВрдмрдВрдзрд┐рдд рдЧреНрд░рд╛рдл рдиреАрдЪреЗ рджрд┐рдЦрд╛рдП рдЧрдП рдЬреИрд╕рд╛ рджрд┐рдЦрддрд╛ рдерд╛ред

рдкрд╛рд░рдВрдкрд░рд┐рдХ рдФрд░ рд╕рдорд╛рдирд╛рдВрддрд░ рд╢реНрд░рдорд┐рдХреЛрдВ рджреНрд╡рд╛рд░рд╛ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рд╕рдордп рдХрд╛ рдЕрдиреБрдкрд╛рддрдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдХрднреА-рдХрднреА рд╕рдВрдХреЗрддрдХ 8: 1 рдХреЗ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рдЗрд╕ рддрдереНрдп рдХреЗ рдмрд╛рд╡рдЬреВрдж рдХрд┐ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд╕рдорд╛рдирд╛рдВрддрд░ рд╣реЛрдиреЗ рдХрд╛ рдФрд╕рдд рд╕реНрддрд░ рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рдХрдо рд╣реИ рдФрд░ 30 рдХреЗ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рд╣реИред рд╣рдо рдЬрд╛рдирддреЗ рдереЗ рдХрд┐ рдЬрд┐рди рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд╣рдо рдмреИрдВрдХреЛрдВ рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рд╕реЗ рд╣рд▓ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рд╡реЗ рдкреИрджрд╛ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред рдкреНрд░реЛрд╕реЗрд╕рд░ рдкрд░ рднрд╛рд░реА рднрд╛рд░ред рд╣рдо рдпрд╣ рднреА рдЬрд╛рдирддреЗ рдереЗ рдХрд┐ рд╣рдорд╛рд░реЗ "рд╕рдорд╛рдирд╛рдВрддрд░" рдХрдВрдЯреЗрдирд░ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рд╕реАрдорд┐рдд рдирд╣реАрдВ рдереЗред рдпрд╣ рдирд╣реАрдВ рдЬрд╛рдирддреЗ рдХрд┐ рд╕рдорд╕реНрдпрд╛ рдХреЗ рдХрд╛рд░рдг рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо Node.js рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рдЕрдиреБрдХреВрд▓рди рдкрд░ рд╕рд╛рдордЧреНрд░реА рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдЧрдПред рдЗрд╕ рддрд░рд╣ рдХреЗ рд▓реЗрдЦреЛрдВ рдХреА рдХрдо рд╕рдВрдЦреНрдпрд╛ рдХреЗ рдмрд╛рд╡рдЬреВрдж, рд╣рдо
рдЗрд╕ рд╕рд╛рдордЧреНрд░реА рдХреЗ рдкрд╛рд░ рдЖрдП, рдЬреЛ рдиреЛрдбреНрд╕ .js. рдореЗрдВ 600 рд╣рдЬрд╛рд░ рдкреНрд░рддрд┐рд╕реНрдкрд░реНрдзреА рд╡реЗрдм рд╕реЙрдХреЗрдЯ рдХрдиреЗрдХреНрд╢рдиреЛрдВ рдХреА рдЙрдкрд▓рдмреНрдзрд┐ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИред
рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рд╣рдорд╛рд░рд╛ рдзреНрдпрд╛рди
--nouse-idle-notification
рдзреНрд╡рдЬ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдЖрдХрд░реНрд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдХреНрдпрд╛ рд╣рдорд╛рд░реА Node.js рдкреНрд░рдХреНрд░рд┐рдпрд╛рдПрдВ рдХрдЪрд░рд╛ рдЗрдХрдЯреНрдард╛ рдХрд░рдиреЗ рдореЗрдВ рдЗрддрдирд╛ рд╕рдордп рд▓рдЧрд╛ рд╕рдХрддреА рд╣реИрдВ? рдпрд╣рд╛рдБ, рдЬреАрд╕реА-рд╕реНрдЯреИрдЯрд┐рд╕реНрдЯрд┐рдХреНрд╕ рдкреИрдХреЗрдЬ рдиреЗ рд╣рдореЗрдВ рдХрдЪрд░рд╛ рд╕рдВрдЧреНрд░рд╣рдг рдкрд░ рдмрд┐рддрд╛рдП рдФрд╕рдд рд╕рдордп рдХреЛ рджреЗрдЦрдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рджрд┐рдпрд╛ред
рдХрдЪрд░рд╛ рд╕рдВрдЧреНрд░рд╣ рдкрд░ рдмрд┐рддрд╛рдП рд╕рдордп рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдгрдПрдХ рднрд╛рд╡рдирд╛ рдереА рдХрд┐ рд╣рдорд╛рд░реА рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдиреЗ рд╕реНрдХреИрд╡реЗрдВрдЬ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрдЪрд░рд╛ рдЗрдХрдЯреНрдард╛ рдХрд░рдиреЗ рдореЗрдВ рд▓рдЧрднрдЧ 30% рд╕рдордп рд╡реНрдпрддреАрдд рдХрд┐рдпрд╛ред рдпрд╣рд╛рдБ рд╣рдо Node.js. рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреЗ рдХрдЪрд░рд╛ рд╕рдВрдЧреНрд░рд╣рдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рддрдХрдиреАрдХреА рд╡рд┐рд╡рд░рдгреЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗред рдпрджрд┐ рдЖрдк рдЗрд╕ рд╡рд┐рд╖рдп рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ -
рдЗрд╕ рд╕рд╛рдордЧреНрд░реА рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВред рд╕реНрдХреЗрд╡реЗрдВрдЬ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХрд╛ рд╕рд╛рд░ рдпрд╣ рд╣реИ рдХрд┐ рдХрдЪрд░рд╛ рд╕рдВрдЧреНрд░рд╣ рдХреЛ рдЕрдХреНрд╕рд░ "рдирдИ рдЬрдЧрд╣" рдирд╛рдордХ Node.js рдвреЗрд░ рдореЗрдВ рдЫреЛрдЯреА рд╡рд╕реНрддреБрдУрдВ рджреНрд╡рд╛рд░рд╛ рдХрдмреНрдЬрд╛ рдХреА рдЧрдИ рдореЗрдореЛрд░реА рдХреЛ рдЦрд╛рд▓реА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╢реБрд░реВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЗрд╕рд▓рд┐рдП, рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рд╣рдорд╛рд░реЗ рдиреЛрдбреНрд╕ рдореЗрдВ рдХрдЪрд░рд╛ рд╕рдВрдЧреНрд░рд╣рдг рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдмрд╣реБрдд рдмрд╛рд░ рд╢реБрд░реВ рд╣реЛрддреА рд╣реИред рдХреНрдпрд╛ рдореИрдВ V8 рдХрдЪрд░рд╛ рд╕рдВрдЧреНрд░рд╣ рдХреЛ рдЕрдХреНрд╖рдо рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдФрд░ рдЗрд╕реЗ рд╕реНрд╡рдпрдВ рдЪрд▓рд╛ рд╕рдХрддрд╛ рд╣реВрдВ? рдХреНрдпрд╛ рдХрдЪрд░рд╛ рд╕рдВрдЧреНрд░рд╣ рдХреЙрд▓
рдХреА рдЖрд╡реГрддреНрддрд┐ рдХреЛ
рдХрдо рдХрд░рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рд╣реИ? рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдЙрдкрд░реЛрдХреНрдд рдореЗрдВ рд╕реЗ рдкрд╣рд▓рд╛ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдВрддрд┐рдо - рдпрд╣ рд╕рдВрднрд╡ рд╣реИ! рд╣рдо рдмрд╕ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдлреНрд▓реИрдЧ
--max-semi-space-size=1024
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ Node.js рдореЗрдВ "рд╕реЗрдореА рд╕реНрдкреЗрд╕" рдХреНрд╖реЗрддреНрд░ рдХреА рд╕реАрдорд╛ рдХреЛ рдмрдврд╝рд╛рдХрд░ "рдирдИ рдЬрдЧрд╣" рдХреНрд╖реЗрддреНрд░ рдХрд╛ рдЖрдХрд╛рд░ рдмрдврд╝рд╛ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рдЖрдкрдХреЛ V8 рдХрдЪрд░рд╛ рд╕рдВрдЧреНрд░рд╣рдг рд╢реБрд░реВ рд╣реЛрдиреЗ рддрдХ рдЕрд▓реНрдкрдХрд╛рд▓рд┐рдХ рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рдореЗрдореЛрд░реА рдЖрд╡рдВрдЯрди рд╕рдВрдЪрд╛рд▓рди рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдирддреАрдЬрддрди, рдРрд╕реЗ рдСрдкрд░реЗрд╢рди рд▓реЙрдиреНрдЪ рдХрд░рдиреЗ рдХреА рдЖрд╡реГрддреНрддрд┐ рдХрдо рд╣реЛ рдЬрд╛рддреА рд╣реИред
рдХрдЪрд░рд╛ рд╕рдВрдЧреНрд░рд╣рдг рдЕрдиреБрдХреВрд▓рди рдкрд░рд┐рдгрд╛рдордПрдХ рдФрд░ рдЬреАрдд! "рдирдИ рдЬрдЧрд╣" рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рд╡реГрджреНрдзрд┐ рдиреЗ рд╕реНрдХреЗрд╡реЗрдВрдЬ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рдХрдЪрд░рд╛ рд╕рдВрдЧреНрд░рд╣ рдкрд░ рдмрд┐рддрд╛рдП рд╕рдордп рдХреА рдорд╛рддреНрд░рд╛ рдореЗрдВ рдЙрд▓реНрд▓реЗрдЦрдиреАрдп рдХрдореА рдХрд╛ рдХрд╛рд░рдг рдмрдирд╛ - 30% рд╕реЗ 2% рддрдХред
PtрдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝ рдкреНрд░реЛрд╕реЗрд╕рд░ рдкреНрд░реЛрд╕реЗрд╕рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ
рдпрд╣ рд╕рдм рдХрд╛рдо рдкреВрд░рд╛ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, рдкрд░рд┐рдгрд╛рдо рд╣рдорд╛рд░реЗ рдЕрдиреБрдХреВрд▓ рдерд╛ред рд╕рдорд╛рдирд╛рдВрддрд░ рд╢реНрд░рдорд┐рдХреЛрдВ рдореЗрдВ рдХрд┐рдП рдЧрдП рдХрд╛рд░реНрдп, рдХрд╛рд░реНрдп рдХреЗ 20-рдЧреБрдирд╛ рд╕рдорд╛рдирд╛рдВрддрд░рдХрд░рдг рдХреЗ рд╕рд╛рде, рд▓рдЧрднрдЧ рдЙрддрдиреА рд╣реА рддреЗрдЬреА рд╕реЗ рдХрд╛рд░реНрдп рдХрд┐рдпрд╛ рдЬреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╢реНрд░рдорд┐рдХреЛрдВ рдореЗрдВ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкреНрд░рджрд░реНрд╢рди рдХрд┐рдП рдЧрдП рдереЗред рд╣рдореЗрдВ рдРрд╕рд╛ рд▓рдЧ рд░рд╣рд╛ рдерд╛ рдХрд┐ рд╣рдордиреЗ рд╕рд╛рд░реА рдЕрдбрд╝рдЪрдиреЛрдВ рдХреЛ рджреВрд░ рдХрд░ рд▓рд┐рдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдореЗрдВ рдЕрднреА рддрдХ рдпрд╣ рдирд╣реАрдВ рдкрддрд╛ рдерд╛ рдХрд┐ рдХреМрди рд╕реЗ рдСрдкрд░реЗрд╢рдиреЛрдВ рдиреЗ рдЙрддреНрдкрд╛рджрди рдореЗрдВ рдкреНрд░рдгрд╛рд▓реА рдХреЛ рдзреАрдорд╛ рдХрд░ рджрд┐рдпрд╛ рд╣реИред рдЪреВрдВрдХрд┐ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдХреЛрдИ рдФрд░ рд╕реНрдерд╛рди рдирд╣реАрдВ рдереЗ рдЬреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЕрдиреБрдХреВрд▓рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереА, рд╣рдордиреЗ рдпрд╣ рдЕрдзреНрдпрдпрди рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рдХрд┐ рд╢реНрд░рдорд┐рдХ рдкреНрд░реЛрд╕реЗрд╕рд░ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░рддреЗ рд╣реИрдВред
рд╣рдорд╛рд░реЗ рд╕рдорд╛рдирд╛рдВрддрд░ рд╢реНрд░рдорд┐рдХреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдкрд░ рдПрдХрддреНрд░рд┐рдд рдЖрдВрдХрдбрд╝реЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдПрдХ рдЙрдЧреНрд░ рдХрд╛рд░реНрдпрдХреНрд░рдо рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ред рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЕрдкрдиреЗ рдирд┐рдкрдЯрд╛рди рдореЗрдВ рдПрдХ рд╕рд╛рдл-рд╕реБрдерд░рд╛ рджреГрд╢реНрдп рдерд╛, рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рд╣рдо рд╕реНрдерд╛рдиреАрдп рдорд╢реАрди рдкрд░ рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рдереЗред рд╣рд╛рдВ, рдпрд╣рд╛рдВ рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рд╡рд┐рд╡рд░рдг рд╣реИ: рдЗрд╕ рдбреЗрдЯрд╛ рдХрд╛ рдЖрдХрд╛рд░ 60 рдПрдордмреА рдерд╛ред рдпрд╣ рд╣рдордиреЗ 0x рдЪрд╛рд░реНрдЯ рдореЗрдВ
logger
рд╢рдмреНрдж рдЦреЛрдЬрдХрд░ рджреЗрдЦрд╛ред
0x рдЙрдкрдХрд░рдг рдХреЗ рд╕рд╛рде рдбреЗрдЯрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдгрд╕реНрддрдВрднреЛрдВ рдореЗрдВ рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдХрд┐рдП рдЧрдП рдиреАрд▓реЗ-рд╣рд░реЗ рдХреНрд╖реЗрддреНрд░реЛрдВ рд╕реЗ рд╕рдВрдХреЗрдд рдорд┐рд▓рддрд╛ рд╣реИ рдХрд┐ рдХрдо рд╕реЗ рдХрдо 15% рдкреНрд░реЛрд╕реЗрд╕рд░ рд╕рдордп рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рд▓реЙрдЧ рдмрдирд╛рдиреЗ рдореЗрдВ рдЦрд░реНрдЪ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдирддреАрдЬрддрди, рд╣рдо рдЗрд╕ рд╕рдордп рдХреЛ 75% рддрдХ рдХрдо рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдереЗред рдпрд╣ рд╕рдЪ рд╣реИ рдХрд┐ рд╣рдордиреЗ рдпрд╣ рдХреИрд╕реЗ рдХрд┐рдпрд╛, рдЗрд╕рдХреА рдХрд╣рд╛рдиреА рдПрдХ рдЕрд▓рдЧ рд▓реЗрдЦ рд╣реИред (рд╕рдВрдХреЗрдд: рд╣рдордиреЗ рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдФрд░ рдЧреБрдгреЛрдВ рдХреЗ рд╕рд╛рде рдмрд╣реБрдд рдХрд╛рдо рдХрд┐рдпрд╛)ред
рдЗрд╕ рдЕрдиреБрдХреВрд▓рди рдХреЗ рдмрд╛рдж, рд╣рдо рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХреЛ рдиреБрдХрд╕рд╛рди рдкрд╣реБрдВрдЪрд╛рдП рдмрд┐рдирд╛ рдПрдХ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдореЗрдВ 30 рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдПрдХ рд╕рд╛рде рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдереЗред
рдкрд░рд┐рдгрд╛рдо
рд╕рдорд╛рдирд╛рдВрддрд░ рд╢реНрд░рдорд┐рдХреЛрдВ рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рд╕реЗ EC2 рдХреЗ рд▓рд┐рдП рд▓рдЧрднрдЧ 300 рд╣рдЬрд╛рд░ рдбреЙрд▓рд░ рдХреА рд╡рд╛рд░реНрд╖рд┐рдХ рд▓рд╛рдЧрдд рдХрдо рд╣реЛ рдЧрдИ рд╣реИ рдФрд░ рд╕рд┐рд╕реНрдЯрдо рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдХреЛ рдмрд╣реБрдд рд╕рд░рд▓ рдмрдирд╛ рджрд┐рдпрд╛ рд╣реИред рдЕрдм рд╣рдо рдЙрддреНрдкрд╛рджрди рдореЗрдВ рдкрд╣рд▓реЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рд▓рдЧрднрдЧ 30 рдЧреБрдирд╛ рдХрдо рдХрдВрдЯреЗрдирд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рд╣рдорд╛рд░реА рдкреНрд░рдгрд╛рд▓реА рдЖрдЙрдЯрдЧреЛрдЗрдВрдЧ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рджреЗрд░реА рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рд╕реЗ рдЖрдиреЗ рд╡рд╛рд▓реЗ рдПрдкреАрдЖрдИ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рд╢рд┐рдЦрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рдкреНрд░рддрд┐рд░реЛрдзреА рд╣реИред
рдмреИрдВрдХреЛрдВ рдХреЗ рд╕рд╛рде рд╣рдорд╛рд░реА рдПрдХреАрдХрд░рдг рд╕реЗрд╡рд╛ рдХреЛ рд╕рдорд╛рдирд╛рдВрддрд░ рдХрд░рддреЗ рд╣реБрдП, рд╣рдордиреЗ рдмрд╣реБрдд рд╕реА рдирдИ рдЪреАрдЬреЗрдВ рд╕реАрдЦреАрдВ:
- рдХрднреА рднреА рдирд┐рдореНрди-рд╕реНрддрд░реАрдп рд╕рд┐рд╕реНрдЯрдо рдореЗрдЯреНрд░рд┐рдХреНрд╕ рд╣реЛрдиреЗ рдХреЗ рдорд╣рддреНрд╡ рдХреЛ рдХрдо рдордд рд╕рдордЭреЛред рдХрдЪрд░рд╛ рд╕рдВрдЧреНрд░рд╣рдг рдФрд░ рд╕реНрдореГрддрд┐ рдЙрдкрдпреЛрдЧ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдбреЗрдЯрд╛ рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдиреЗ рд╣рдореЗрдВ рд╕рд┐рд╕реНрдЯрдо рдХреЛ рддреИрдирд╛рдд рдХрд░рдиреЗ рдФрд░ рдЗрд╕реЗ рдЕрдВрддрд┐рдо рд░реВрдк рджреЗрдиреЗ рдореЗрдВ рдЬрдмрд░рджрд╕реНрдд рд╕рд╣рд╛рдпрддрд╛ рдкреНрд░рджрд╛рди рдХреА рд╣реИред
- рдЬреНрд╡рд▓рдВрдд рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдПрдХ рдорд╣рд╛рди рдЙрдкрдХрд░рдг рд╣реИрдВред рдЕрдм рдЬрдм рд╣рдордиреЗ рд╕реАрдЦрд╛ рдХрд┐ рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рдП, рддреЛ рд╣рдо рдЙрдирдХреА рдорджрдж рд╕реЗ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдирдИ рдЕрдбрд╝рдЪрдиреЛрдВ рдХреЛ рдЖрд╕рд╛рдиреА рд╕реЗ рдкрд╣рдЪрд╛рди рд╕рдХрддреЗ рд╣реИрдВред
- Node.js рд░рдирдЯрд╛рдЗрдо рддрдВрддреНрд░ рдХреЛ рд╕рдордЭрдиреЗ рд╕реЗ рд╣рдореЗрдВ рдмреЗрд╣рддрд░ рдХреЛрдб рд▓рд┐рдЦрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдорд┐рд▓реАред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрд╣ рдЬрд╛рдирддреЗ рд╣реБрдП рдХрд┐ рд╡реА 8 рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд▓рд┐рдП рд╕реНрдореГрддрд┐ рдХреИрд╕реЗ рдЖрд╡рдВрдЯрд┐рдд рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдХрдЪрд░рд╛ рд╕рдВрдЧреНрд░рд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд╣рдордиреЗ рд╡рд╕реНрддреБрдУрдВ рдХрд╛ рдкреБрди: рдЙрдкрдпреЛрдЧ рддрдХрдиреАрдХ рдХрд╛ рд╡реНрдпрд╛рдкрдХ рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рдмрд┐рдВрджреБ рдХреЛ рджреЗрдЦрд╛ред рдХрднреА-рдХрднреА рдпрд╣ рд╕рдм рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рд╕реАрдзреЗ V8 рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдпрд╛ Node.js. рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдХреЗ рдЭрдВрдбреЗ рдХреЗ рд╕рд╛рде рдкреНрд░рдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
- , .
maxSocket
, Node.js, , , , AWS Node.js . , , , .
рдкреНрд░рд┐рдп рдкрд╛рдардХреЛрдВ! Node.js-?
