Node.js рдореЗрдВ рдореЗрдореЛрд░реА рд▓реАрдХ рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдорд╛рд░реНрдЧрджрд░реНрд╢рд┐рдХрд╛

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





рд╕реНрдореГрддрд┐ рд░рд┐рд╕рд╛рд╡ рдХреНрдпрд╛ рд╣реИ?


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

рд╕реНрдореГрддрд┐ рдкреНрд░рдмрдВрдзрди


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

  • . . . , . C C++. , , malloc free, .
  • . , , , . , , , . , , , , . . тАФ JavaScript, , JVM (Java, Scala, Kotlin), Golang, Python, Ruby .
  • рд╕реНрдореГрддрд┐ рдХреЗ рд╕реНрд╡рд╛рдорд┐рддреНрд╡ рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛ рдХрд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧред рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рд╕рд╛рде, рдкреНрд░рддреНрдпреЗрдХ рдЪрд░ рдХрд╛ рдЕрдкрдирд╛ рд╕реНрд╡рд╛рдореА рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЬреИрд╕реЗ рд╣реА рдорд╛рд▓рд┐рдХ рджрд╛рдпрд░реЗ рд╕реЗ рдмрд╛рд╣рд░ рд╣реЛрддрд╛ рд╣реИ, рдЪрд░ рдореЗрдВ рдореВрд▓реНрдп рдирд╖реНрдЯ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рд╕реНрдореГрддрд┐ рдХреЛ рдореБрдХреНрдд рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рд╡рд┐рдЪрд╛рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЬрдВрдЧ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рд╕реНрдореГрддрд┐ рдкреНрд░рдмрдВрдзрди рдХреЗ рд▓рд┐рдП рдЕрдиреНрдп рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╣реИрдВ рдЬреЛ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, C ++ 11 RAII рдореБрд╣рд╛рд╡рд░реЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдЬрдмрдХрд┐ рд╕реНрд╡рд┐рдлреНрдЯ ARC рддрдВрддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ ред рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдирд╛ рдЗрд╕ рд▓реЗрдЦ рдХреЗ рджрд╛рдпрд░реЗ рд╕реЗ рдкрд░реЗ рд╣реИред рд╕реНрдореГрддрд┐ рдкреНрд░рдмрдВрдзрди рдХреЗ рдЙрдкрд░реЛрдХреНрдд рддрд░реАрдХреЛрдВ рдХреА рддреБрд▓рдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЙрдирдХреЗ рдкреЗрд╢реЗрд╡рд░реЛрдВ рдФрд░ рд╡рд┐рдкрдХреНрд╖реЛрдВ рдХреЛ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдПрдХ рдЕрд▓рдЧ рд▓реЗрдЦ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ, рдПрдХ рднрд╛рд╖рд╛ рдЬрд┐рд╕рдХреЗ рдмрд┐рдирд╛ рд╡реЗрдм рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдЕрдкрдиреЗ рдХрд╛рдо рдХреА рдХрд▓реНрдкрдирд╛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ, рдХрдЪрд░рд╛ рд╕рдВрдЧреНрд░рд╣ рдХреЗ рд╡рд┐рдЪрд╛рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рд╣рдо рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдмрд╛рдд рдХрд░реЗрдВрдЧреЗ рдХрд┐ рдпрд╣ рддрдВрддреНрд░ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрдЪрд░рд╛ рд╕рдВрдЧреНрд░рд╣


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


рдорд╛рд░реНрдХ рдФрд░ рд╕реНрд╡реАрдк

рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЗ рдЪрд░рдг (рдорд╛рд░реНрдХрд┐рдВрдЧ) рдФрд░ рд╕реНрд╡реАрдк (рд╕рдлрд╛рдИ) рдорд╛рд░реНрдХрд┐рдВрдЧ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╕рдордп, рд╡реИрд╢реНрд╡рд┐рдХ рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ (рдпрд╣ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдПрдХ рд╡рд╕реНрддреБ рд╣реИwindow)рджреНрд╡рд╛рд░рд╛ рджрд░реНрд╢рд╛рдП рдЧрдП рд░реВрдЯ рдиреЛрдбреНрд╕ рдХреА рдПрдХ рд╕реВрдЪреАрд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдмрдирд╛рдИ рдЬрд╛рддреА рд╣реИ, рдФрд░ рдлрд┐рд░ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдкреЗрдбрд╝ рдХреЛ рд░реВрдЯ рд╕реЗ рд▓реАрдл рдиреЛрдбреНрд╕ рддрдХ рдХреНрд░реЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рд╕рднреА рдХреЗ рд╕рд╛рде рдЪрд┐рд╣реНрдирд┐рдд рд╣реЛрддрд╛ рд╣реИред рд░рд╛рд╕реНрддреЗ рдХреА рд╡рд╕реНрддреБрдУрдВ рдкрд░ рдорд┐рд▓реЗред рдЕрдирд▓реЗрдмрд▓ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рджреНрд╡рд╛рд░рд╛ рдХрдмреНрдЬрд╛ рдХрд┐рдП рдЧрдП рдвреЗрд░ рдкрд░ рдореЗрдореЛрд░реА рдХреЛ рдореБрдХреНрдд рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдореЗрдореЛрд░реА Node.js рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ рд▓реАрдХ рд╣реЛрддреА рд╣реИ


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

Code рдПрдХ рдХреЛрдб рдХреЗ рд╕рд╛рде рдкрд░рд┐рдЪрд┐рддрддрд╛ рдЬрд┐рд╕рдореЗрдВ рд╕реНрдореГрддрд┐ рд░рд┐рд╕рд╛рд╡ рд╣реЛрддрд╛ рд╣реИ


рдкреНрд░рджрд░реНрд╢рди рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдПрдХ рдПрдХреНрд╕рдкреНрд░реЗрд╕ рд╕рд░реНрд╡рд░ рд▓рд┐рдЦрд╛ рдЬрд┐рд╕рдореЗрдВ рдореЗрдореЛрд░реА рд▓реАрдХ рдорд╛рд░реНрдЧ рд╣реИред рд╣рдо рдЗрд╕ рд╕рд░реНрд╡рд░ рдХреЛ рдбреАрдмрдЧ рдХрд░реЗрдВрдЧреЗред

const express = require('express')

const app = express();
const port = 3000;

const leaks = [];

app.get('/bloatMyServer', (req, res) => {
  const redundantObj = {
    memory: "leaked",
    joke: "meta"
  };

  [...Array(10000)].map(i => leaks.push(redundantObj));

  res.status(200).send({size: leaks.length})
});

app.listen(port, () => console.log(`Example app listening on port ${port}!`));

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

AllрдХрд▓ рдореЗрдореЛрд░реА рд▓реАрдХ


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

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

Ump рд╣реАрдк рдбрдВрдк


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

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

рдмрд╛рддрдЪреАрдд рдЬрд╛рд░реА рд░рдЦрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдЖрдЗрдП рд╣рдо рдвреЗрд░ рдбрдВрдк рдмрдирд╛рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реЗрдВред рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдПрдирдкреАрдПрдо рдкреИрдХреЗрдЬ рд╣реАрдбрдореНрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ , рдЬреЛ рдЖрдкрдХреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛ рд╕рд░реНрд╡рд░ рд╣реАрдк рдХрд╛ рдбрдВрдк рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред

рдкреИрдХреЗрдЬ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ:

npm i heapdump

рд╣рдо рд╕рд░реНрд╡рд░ рдХреЛрдб рдореЗрдВ рдХреБрдЫ рдмрджрд▓рд╛рд╡ рдХрд░реЗрдВрдЧреЗ рдЬрд┐рд╕рд╕реЗ рд╣рдо рдЗрд╕ рдкреИрдХреЗрдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХреЗрдВрдЧреЗ:

const express = require('express');
const heapdump = require("heapdump");

const app = express();
const port = 3000;

const leaks = [];

app.get('/bloatMyServer', (req, res) => {
  const redundantObj = {
    memory: "leaked",
    joke: "meta"
  };

  [...Array(10000)].map(i => leaks.push(redundantObj));

  res.status(200).send({size: leaks.length})
});

app.get('/heapdump', (req, res) => {
  heapdump.writeSnapshot(`heapDump-${Date.now()}.heapsnapshot`, (err, filename) => {
    console.log("Heap dump of a bloated server written to", filename);

    res.status(200).send({msg: "successfully took a heap dump"})
  });
});

app.listen(port, () => {
  heapdump.writeSnapshot(`heapDumpAtServerStart.heapsnapshot`, (err, filename) => {
    console.log("Heap dump of a fresh server written to", filename);
  });
});

рдпрд╣рд╛рдВ рд╣рдордиреЗ рдЗрд╕ рдкреИрдХреЗрдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдПрдХ рддрд╛рдЬрд╝рд╛ рд▓реЙрдиреНрдЪ рдХрд┐рдП рдЧрдП рд╕рд░реНрд╡рд░ рдХреЛ рдбрдВрдк рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рд╣реИред рд╣рдордиреЗ /heapdumpрдЗрд╕реЗ рдПрдХреНрд╕реЗрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдПрдХ рдПрдкреАрдЖрдИ рднреА рдмрдирд╛рдпрд╛ рдЬрдм рдЗрд╕реЗ рдПрдХреНрд╕реЗрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдвреЗрд░ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ред рд╣рдо рдЗрд╕ рдПрдкреАрдЖрдИ рдХреЛ рдЙрд╕ рд╕рдордп рдмрджрд▓ рджреЗрдВрдЧреЗ рдЬрдм рд╣рдореЗрдВ рдПрд╣рд╕рд╛рд╕ рд╣реЛрдЧрд╛ рдХрд┐ рд╕рд░реНрд╡рд░ рдиреЗ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдореЗрдореЛрд░реА рдХрд╛ рдЙрдкрднреЛрдЧ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛ рд╣реИред

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

тЦН рдореЗрдореЛрд░реА рд▓реАрдХ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдирд╛


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

рдпрд╣рд╛рдВ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рдбрдВрдк рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрд╡реЗрд░реА рдХреНрдпрд╛ рд▓рдЧрддреА рд╣реИ:

curl --location --request GET 'http://localhost:3000/heapdump'

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

рд╣рдорд╛рд░реЗ рдирд┐рдкрдЯрд╛рди рдореЗрдВ рджреЛрдиреЛрдВ рдбрдВрдк рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж (рддрд╛рдЬрд╝рд╛ рд▓реЙрдиреНрдЪ рдХрд┐рдП рдЧрдП рд╕рд░реНрд╡рд░ рдХрд╛ рдПрдХ рдбрдВрдк рдФрд░ рдХреБрдЫ рд╕рдордп рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╕рд░реНрд╡рд░ рдХрд╛ рдбрдВрдк), рд╣рдо рдЙрдирдХреА рддреБрд▓рдирд╛ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

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

Chrome рд▓реЙрдиреНрдЪ рдХрд░реЗрдВ рдФрд░ рдХреБрдВрдЬреА рджрдмрд╛рдПрдВредF12ред рдЗрд╕рд╕реЗ рдбреЗрд╡рд▓рдкрд░ рдЯреВрд▓ рдХреА рдЦреЛрдЬ рд╣реЛрдЧреАред рдпрд╣рд╛рдВ рдЖрдкрдХреЛ рдЯреИрдм рдкрд░ рдЬрд╛рдиреЗ MemoryрдФрд░ рдореЗрдореЛрд░реА рдХреЗ рджреЛрдиреЛрдВ рд╕реНрдиреИрдкрд╢реЙрдЯ рд▓реЛрдб рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ ред


рдбрд╛рдЙрдирд▓реЛрдб рдХрд░ рд░рд╣рд╛ рд╣реИ рд╕реНрдореГрддрд┐ Chrome рдбреЗрд╡рд▓рдкрд░ рдЯреВрд▓ рдХреА рд╕реНрдореГрддрд┐ рдЯреИрдм рдкрд░ рдЙрджрд╛рд╕реАрдирддрд╛

рджреЛрдиреЛрдВ рд╕реНрдиреИрдкрд╢реЙрдЯ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдк рдХреЛ рдмрджрд▓рдиреЗ рдХреА рдЬрд░реВрд░рддperspectiveрдХреЗ рд▓рд┐рдПComparisonрдФрд░ рд╕рд░реНрд╡рд░ рд╣реИ рдХрд┐ рдХреБрдЫ рд╕рдордп рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд┐рдпрд╛ рдХреА рд╕реНрдореГрддрд┐ рдХреЗ рд╕реНрдиреИрдкрд╢реЙрдЯ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред


рд╕реНрдиреИрдкрд╢реЙрдЯ рдХреА рддреБрд▓рдирд╛ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░реЗрдВ

рдпрд╣рд╛рдВ рд╣рдо рдХреЙрд▓рдо рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВConstructorрдФрд░ рдЙрди рд╡рд╕реНрддреБрдУрдВ рдХреА рддрд▓рд╛рд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдХрдЪрд░рд╛ рдХрд▓реЗрдХреНрдЯрд░ рдирд┐рдХрд╛рд▓ рдирд╣реАрдВ рд╕рдХрддрд╛ рд╣реИред рдЗрдирдореЗрдВ рд╕реЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдЖрдВрддрд░рд┐рдХ рд▓рд┐рдВрдХ рджреНрд╡рд╛рд░рд╛ рджрд░реНрд╢рд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдЬреЛ рдиреЛрдбреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдпрд╣рд╛рдВ рдПрдХ рдЪрд╛рд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЙрдкрдпреЛрдЧреА рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдлрд╝реАрд▓реНрдб рджреНрд╡рд╛рд░рд╛ рд╕реВрдЪреА рдХреЛ рд╕реЙрд░реНрдЯ рдХрд░рдирд╛ рд╢рд╛рдорд┐рд▓ рд╣реИAlloc. Sizeред рдпрд╣ рдЙрди рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдЬрд▓реНрджреА рд╕реЗ рдЦреЛрдЬ рд▓реЗрдЧрд╛ рдЬреЛ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдореЗрдореЛрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИрдВред рдпрджрд┐ рдЖрдк рдмреНрд▓реЙрдХ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рддреЗ рд╣реИрдВ(array), рдФрд░ рдлрд┐рд░ -(object elements), рдЖрдк рдПрдХ рд╕рд░рдгреА рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВleaksрдЬрд┐рд╕рдореЗрдВ рднрд╛рд░реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдСрдмреНрдЬреЗрдХреНрдЯ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдХрдЪрд░рд╛ рдХрд▓реЗрдХреНрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╣рдЯрд╛рдпрд╛ рдирд╣реАрдВ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред


рдПрдХ рд╕рдВрджрд┐рдЧреНрдз рд╕рд░рдгреА рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг

рдпрд╣ рддрдХрдиреАрдХ рд╣рдореЗрдВ рд╕рд░рдгреА рдореЗрдВ рдЬрд╛рдиреЗleaksрдФрд░ рдпрд╣ рд╕рдордЭрдиреЗ рдХреАрдЕрдиреБрдорддрд┐ рджреЗрдЧреАрдХрд┐ рдпрд╣ рдЗрд╕рдХреЗ рд╕рд╛рде рдЧрд▓рдд рд╕рдВрдЪрд╛рд▓рди рд╣реИ рдЬреЛ рдореЗрдореЛрд░реА рд░рд┐рд╕рд╛рд╡ рдХрд╛ рдХрд╛рд░рдг рдмрдирддрд╛ рд╣реИред

тЦНрдлрд┐рдХреНрд╕ рдореЗрдореЛрд░реА рд▓реАрдХ


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

app.get('/bloatMyServer', (req, res) => {
  const redundantObj = {
    memory: "leaked",
    joke: "meta"
  };

  const leaks = [];

  [...Array(10000)].map(i => leaks.push(redundantObj));

  res.status(200).send({size: leaks.length})
});

рдЙрдард╛рдП рдЧрдП рдЙрдкрд╛рдпреЛрдВ рдХреА рдкреНрд░рднрд╛рд╡рд╢реАрд▓рддрд╛ рдХреЛ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЙрдкрд░реЛрдХреНрдд рдЪрд░рдгреЛрдВ рдХреЛ рджреЛрд╣рд░рд╛рдирд╛ рдФрд░ рдвреЗрд░ рдЫрд╡рд┐рдпреЛрдВ рдХреА рдлрд┐рд░ рд╕реЗ рддреБрд▓рдирд╛ рдХрд░рдирд╛ рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред

рд╕рд╛рд░рд╛рдВрд╢


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

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

рдкреНрд░рд┐рдп рдкрд╛рдардХреЛрдВ! рдХреНрдпрд╛ рдЖрдкрдХреЛ рдЕрдкрдиреЗ рд╡реЗрдм рдкреНрд░реЛрдЬреЗрдХреНрдЯреНрд╕ рдореЗрдВ рдореЗрдореЛрд░реА рд▓реАрдХ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛ рд╣реИ?


All Articles