22 рдЬреВрди 2023┬╖2 рдорд┐рдирдЯ рдкрдврд╝рдиреЗ рдореЗрдВ

рдЧреЛ рдореЗрдВ рдкреНрд░рджрд░реНрд╢рди рдЕрдиреБрдХреВрд▓рди

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

рдЧреЛ рдореЗрдВ рдкреНрд░рджрд░реНрд╢рди рдЕрдиреБрдХреВрд▓рди

рдЧреЛ рдореЗрдВ рдкреНрд░рджрд░реНрд╢рди рдЕрдиреБрдХреВрд▓рди рдХрд╛ рдкрд░рд┐рдЪрдп

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

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

рдмреЗрд╣рддрд░ рдкреНрд░рджрд░реНрд╢рди рдХреЗ рд▓рд┐рдП рдЙрддреНрддреЛрд▓рди рд╕рдорд╡рд░реНрддреА

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

рдЧреЛрд░реВрдЯрд╛рдЗрдиреНрд╕

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

рдЪреИрдирд▓

рдЪреИрдирд▓ рдЧреЛ рдореЗрдВ рдЧреЛрд░реВрдЯрд╛рдЗрдиреНрд╕ рдХреЗ рдмреАрдЪ рд╕рдВрдЪрд╛рд░ рдХрд╛ рдкреНрд░рд╛рдердорд┐рдХ рд░реВрдк рд╣реИред рдЪреИрдирд▓ рдПрдХ рдЯрд╛рдЗрдк рдХрд┐рдпрд╛ рд╣реБрдЖ рдХрдВрдбреНрдпреВрдЯ рд╣реИ рдЬрд┐рд╕рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЖрдк рдЧреЛрд░реВрдЯрд╛рдЗрдиреНрд╕ рдХреЗ рдмреАрдЪ рдорд╛рди рднреЗрдЬ рдФрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдПрдХ рдЪреИрдирд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, `рдЪрд╛рди` рдХреАрд╡рд░реНрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ: ``go channelName:= make(chan dataType) ``` рдПрдХ рдЪреИрдирд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдорд╛рди рднреЗрдЬрдирд╛ рдФрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдПрд░реЛ рдСрдкрд░реЗрдЯрд░ (`<-`) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣рд╛рдБ рдПрдХ рдЙрджрд╛рд╣рд░рдг рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ: ```go // рдЪреИрдирд▓ channelName рдХреЛ рдорд╛рди рднреЗрдЬрдирд╛ <- valueToSend // рдкреНрд░рд╛рдкреНрдд рдЪреИрдирд▓ рд╕реЗ рдорд╛рди рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛:= <-channelName ``` рдЪреИрдирд▓реЛрдВ рдХрд╛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЧреЛрд░реВрдЯрд╛рдЗрдиреНрд╕ рдХреЗ рдмреАрдЪ рд╕реБрд░рдХреНрд╖рд┐рдд рд╕рдВрдЪрд╛рд░ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рд╕рдВрднрд╛рд╡рд┐рдд рджреМрдбрд╝ рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ .

рд╕рдорд╡рд░реНрддреА рдкреИрдЯрд░реНрди рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛

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

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

рдЕрдиреБрдХреВрд▓рди рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрдлрд╛рдЗрд▓рд┐рдВрдЧ рдЧреЛ рдПрдкреНрд▓реАрдХреЗрд╢рди

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

рд╕реАрдкреАрдпреВ рдкреНрд░реЛрдлрд╛рдЗрд▓рд┐рдВрдЧ

рд╕реАрдкреАрдпреВ рдкреНрд░реЛрдлрд╛рдЗрд▓рд┐рдВрдЧ рд╕реАрдкреАрдпреВ рдЙрдкрдпреЛрдЧ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдЖрдкрдХреЗ рдЧреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХреЛ рдорд╛рдкрддрд╛ рд╣реИред `рдкреАрдкреНрд░реЛрдл` рдкреИрдХреЗрдЬ рд╕реАрдкреАрдпреВ рдкреНрд░реЛрдлрд╛рдЗрд▓ рдЙрддреНрдкрдиреНрди рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХрд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЕрдкрдиреЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рдирд┐рд╖реНрдкрд╛рджрди рд╕рдордп рдХреЛ рдХрд╣рд╛рдВ рдЦрд░реНрдЪ рдХрд░ рд░рд╣рд╛ рд╣реИред рд╕реАрдкреАрдпреВ рдкреНрд░реЛрдлрд╛рдЗрд▓рд┐рдВрдЧ рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рд╕реНрдирд┐рдкреЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ: ```go import "runtime/pprof" // ... func main() {// рд╕реАрдкреАрдпреВ рдкреНрд░реЛрдлрд╛рдЗрд▓ рдХреЛ рд╕реНрдЯреЛрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдВ f, err := os.Create( "cpu_profile.prof") if err != nil { log.Fatal(err) } defer f.Close() // рдЧрд▓рдд рд╣реЛрдиреЗ рдкрд░ CPU рдкреНрд░реЛрдлрд╛рдЗрд▓ рд╢реБрд░реВ рдХрд░реЗрдВ:= pprof.StartCPUProfile(f); err != nil {log.Fatal(err) } defer pprof.StopCPUProfile() // рдЕрдкрдирд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛрдб рдпрд╣рд╛рдВ рдЪрд▓рд╛рдПрдВ} ``` рдЕрдкрдирд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЪрд▓рд╛рдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ `cpu_profile.prof` рдлрд╝рд╛рдЗрд▓ рд╣реЛрдЧреА рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЖрдк рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ 'рдкреАрдкреНрд░реЛрдл' рдЙрдкрдХрд░рдг рдпрд╛ рдПрдХ рд╕рдВрдЧрдд рдкреНрд░реЛрдлрд╛рдЗрд▓рд░ рдХреА рдорджрдж рд╕реЗ рдХрд▓реНрдкрдирд╛ рдХрд░реЗрдВред

рдореЗрдореЛрд░реА рдкреНрд░реЛрдлрд╛рдЗрд▓рд┐рдВрдЧ

рдореЗрдореЛрд░реА рдкреНрд░реЛрдлрд╛рдЗрд▓рд┐рдВрдЧ рдЖрдкрдХреЗ рдЧреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдореЗрдореЛрд░реА рдЖрд╡рдВрдЯрди рдФрд░ рдЙрдкрдпреЛрдЧ рдкрд░ рдХреЗрдВрджреНрд░рд┐рдд рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдЖрдкрдХреЛ рд╕рдВрднрд╛рд╡рд┐рдд рдореЗрдореЛрд░реА рд▓реАрдХ, рдЕрддреНрдпрдзрд┐рдХ рдЖрд╡рдВрдЯрди рдпрд╛ рдЙрди рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреА рдкрд╣рдЪрд╛рди рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдорд┐рд▓рддреА рд╣реИ рдЬрд╣рд╛рдВ рдореЗрдореЛрд░реА рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдореЗрдореЛрд░реА рдкреНрд░реЛрдлрд╛рдЗрд▓рд┐рдВрдЧ рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЗрд╕ рдХреЛрдб рд╕реНрдирд┐рдкреЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ: ```рдЧреЛ рдЗрдВрдкреЛрд░реНрдЯ "рд░рдирдЯрд╛рдЗрдо/рдкреАрдкреНрд░реЛрдл" // ... func main() {// рдЕрдкрдирд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛрдб рдпрд╣рд╛рдВ рдЪрд▓рд╛рдПрдВ // рдореЗрдореЛрд░реА рдкреНрд░реЛрдлрд╛рдЗрд▓ рдХреЛ рд╕реНрдЯреЛрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдлрд╛рдЗрд▓ рдмрдирд╛рдПрдВ f, err := os.Create("mem_profile.prof") if err != nil { log.Fatal(err) } defer f.Close() // рдореЗрдореЛрд░реА рдкреНрд░реЛрдлрд╛рдЗрд▓ рд▓рд┐рдЦреЗрдВ runtime.GC() // рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдХрдЪрд░рд╛ рд╕рдВрдЧреНрд░рд╣ рдХрд░реЗрдВ рд╕рдЯреАрдХ рд╕реНрдореГрддрд┐ рдЖрдБрдХрдбрд╝реЗ рдЕрдЧрд░ рдЧрд▓рддреА: = pprof.WriteHeapProfile (рдПрдл); err != nil {log.Fatal(err)} } ``` CPU рдкреНрд░реЛрдлрд╛рдЗрд▓ рдХреЗ рд╕рдорд╛рди, рдЖрдк `pprof` рдЯреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ `mem_profile.prof` рдлрд╝рд╛рдЗрд▓ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдпрд╛ рдПрдХ рд╕рдВрдЧрдд рдкреНрд░реЛрдлрд╛рдЗрд▓рд░ рдХреЗ рд╕рд╛рде рдЗрд╕рдХреА рдХрд▓реНрдкрдирд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

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

рдЧреЛ рдореЗрдВ рдореЗрдореЛрд░реА рдЖрд╡рдВрдЯрди рдФрд░ рдкреЙрдЗрдВрдЯрд░реНрд╕

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

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

рдЬрд╣рд╛рдВ рд╕рдВрднрд╡ рд╣реЛ рдореЗрдореЛрд░реА рдХрд╛ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ

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

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

рдЕрдирд╛рд╡рд╢реНрдпрдХ рдЖрд╡рдВрдЯрди рд╕реЗ рдмрдЪреЗрдВ

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

  • make([]T, size, capacity) рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЬреНрдЮрд╛рдд рдЖрдХрд╛рд░ рдХреЗ рд╕рд╛рде рд╕реНрд▓рд╛рдЗрд╕ рдХрд╛ рдкреВрд░реНрд╡-рдЖрд╡рдВрдЯрдиред
  • рд╕рдВрдпреЛрдЬрди рдХреЗ рджреМрд░рд╛рди рдордзреНрдпрд╡рд░реНрддреА рд╕реНрд▓рд╛рдЗрд╕ рдХреЗ рдирд┐рд░реНрдорд╛рдг рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП append рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдмреБрджреНрдзрд┐рдорд╛рдиреА рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ред
  • рдореВрд▓реНрдп рджреНрд╡рд╛рд░рд╛ рдмрдбрд╝реА рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХреЛ рдкрд╛рд░рд┐рдд рдХрд░рдиреЗ рд╕реЗ рдмрдЪреЗрдВ; рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рдбреЗрдЯрд╛ рдХреЗ рд╕рдВрджрд░реНрдн рдХреЛ рдкрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреЙрдЗрдВрдЯрд░реНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред

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

рдкреЙрдЗрдВрдЯрд░реНрд╕ рдХреЗ рд╕рд╛рде рд╕реБрд░рдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рдХрд╛рд░реНрдп рдХрд░рдирд╛

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

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

рдмреЗрдВрдЪрдорд╛рд░реНрдХрд┐рдВрдЧ рдпреЛрд░ рдЧреЛ рдПрдкреНрд▓реАрдХреЗрд╢рди

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

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

рдмреЗрдВрдЪрдорд╛рд░реНрдХ рдЯреЗрд╕реНрдЯ рд▓рд┐рдЦрдирд╛

рдмреЗрдВрдЪрдорд╛рд░реНрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдкрд░реАрдХреНрд╖рдг рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╕рдорд╛рди рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рдЕрд▓рдЧ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХреЗ рд╕рд╛рде:

 func BenchmarkMyFunction(b *testing.B) { // Benchmarking code goes here... }

рдлрд╝рдВрдХреНрд╢рди рдХреЛ рджреА рдЧрдИ *testing.B рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рдмреЗрдВрдЪрдорд╛рд░реНрдХрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдХрдИ рдЙрдкрдпреЛрдЧреА рдЧреБрдг рдФрд░ рд╡рд┐рдзрд┐рдпрд╛рдБ рд╣реИрдВ:

  • bN : рдмреЗрдВрдЪрдорд╛рд░реНрдХрд┐рдВрдЧ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдЪрд▓рдиреЗ рд╡рд╛рд▓реЗ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐рдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ред
  • b.ReportAllocs() : рдмреЗрдВрдЪрдорд╛рд░реНрдХ рдХреЗ рджреМрд░рд╛рди рдореЗрдореЛрд░реА рдЖрд╡рдВрдЯрди рдХреА рд╕рдВрдЦреНрдпрд╛ рд░рд┐рдХреЙрд░реНрдб рдХрд░рддрд╛ рд╣реИред
  • b.SetBytes(int64) : рдкреНрд░рддрд┐ рдСрдкрд░реЗрд╢рди рд╕рдВрд╕рд╛рдзрд┐рдд рдмрд╛рдЗрдЯреНрд╕ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдереНрд░реВрдкреБрдЯ рдХреА рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдмреЗрдВрдЪрдорд╛рд░реНрдХ рдкрд░реАрдХреНрд╖рдг рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЪрд░рдг рд╢рд╛рдорд┐рд▓ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ:

  1. рдмреЗрдВрдЪрдорд╛рд░реНрдХ рдХрд┐рдП рдЬрд╛ рд░рд╣реЗ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╡рд╛рддрд╛рд╡рд░рдг рдФрд░ рдЗрдирдкреБрдЯ рдбреЗрдЯрд╛ рд╕реЗрдЯ рдХрд░реЗрдВред
  2. рдмреЗрдВрдЪрдорд╛рд░реНрдХ рдорд╛рдк рд╕реЗ рдХрд┐рд╕реА рднреА рд╕реЗрдЯрдЕрдк рд╕рдордп рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЯрд╛рдЗрдорд░ ( b.ResetTimer() ) рдХреЛ рд░реАрд╕реЗрдЯ рдХрд░реЗрдВред
  3. рджрд┐рдП рдЧрдП рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐рдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд╕рд╛рде рдмреЗрдВрдЪрдорд╛рд░реНрдХ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд▓реВрдк рдХрд░реЗрдВ: for i := 0; i < bN; i++ ред
  4. рдЙрдкрдпреБрдХреНрдд рдЗрдирдкреБрдЯ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдмреЗрдВрдЪрдорд╛рд░реНрдХ рдХрд┐рдП рдЬрд╛ рд░рд╣реЗ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдВред

рд░рдирд┐рдВрдЧ рдмреЗрдВрдЪрдорд╛рд░реНрдХ рдЯреЗрд╕реНрдЯ

go test рдХрдорд╛рдВрдб рдХреЗ рд╕рд╛рде рдЕрдкрдиреЗ рдмреЗрдВрдЪрдорд╛рд░реНрдХ рдЯреЗрд╕реНрдЯ рдЪрд▓рд╛рдПрдВ, рдЬрд┐рд╕рдореЗрдВ -bench рдлреНрд▓реИрдЧ рдХреЗ рдмрд╛рдж рдПрдХ рд░реЗрдЧреБрд▓рд░ рдПрдХреНрд╕рдкреНрд░реЗрд╢рди рд╢рд╛рдорд┐рд▓ рд╣реИ рдЬреЛ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдЪрд▓рд╛рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдмреЗрдВрдЪрдорд╛рд░реНрдХ рдХрд╛рд░реНрдпреЛрдВ рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:

 go test -bench=.

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

рдмреЗрдВрдЪрдорд╛рд░реНрдХ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг

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

рдЧреЛ рдкреНрд░рджрд░реНрд╢рди рдЕрдиреБрдХреВрд▓рди рдХреЗ рд▓рд┐рдП рдЕрддрд┐рд░рд┐рдХреНрдд рдпреБрдХреНрддрд┐рдпрд╛рдБ

рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ API рддрдХ
рдЕрдкрдиреЗ PostgreSQL рд╕реНрдХреАрдорд╛ рдХреЛ рд╡рд┐рдЬреБрдЕрд▓реА рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд░реЗрдВ рдФрд░ Go рдореЗрдВ API endpoints рдЬрдирд░реЗрдЯ рдХрд░реЗрдВред
рдмреИрдХрдПрдВрдб рдмрдирд╛рдПрдВ

рд╕реНрдореГрддрд┐ рдЖрд╡рдВрдЯрди рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдФрд░ рдЕрдкрдиреЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рдмреЗрдВрдЪрдорд╛рд░реНрдХ рдХрд░рдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╣рд╛рдВ рдЖрдкрдХреЗ рдЧреЛ рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдореЗрдВ рд╕реБрдзрд╛рд░ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдЕрдиреНрдп рд╕реБрдЭрд╛рд╡ рджрд┐рдП рдЧрдП рд╣реИрдВ:

  • рдЕрдкрдиреЗ рдЧреЛ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВ : рд╣рдореЗрд╢рд╛ рдЧреЛ рдХреЗ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдореЗрдВ рдЕрдХреНрд╕рд░ рдкреНрд░рджрд░реНрд╢рди рдореЗрдВ рд╡реГрджреНрдзрд┐ рдФрд░ рдЕрдиреБрдХреВрд▓рди рд╢рд╛рдорд┐рд▓ рд╣реЛрддреЗ рд╣реИрдВред
  • рдЗрдирд▓рд╛рдЗрди рдлрд╝рдВрдХреНрд╢рди рдЬрд╣рд╛рдВ рд▓рд╛рдЧреВ рд╣реЛ : рдлрд╝рдВрдХреНрд╢рди рдЗрдирд▓рд╛рдЗрдирд┐рдВрдЧ рдлрд╝рдВрдХреНрд╢рди рдХреЙрд▓ рдУрд╡рд░рд╣реЗрдб рдХреЛ рдХрдо рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдкреНрд░рджрд░реНрд╢рди рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдЗрдирд▓рд╛рдЗрдирд┐рдВрдЧ рдЖрдХреНрд░рд╛рдордХрддрд╛ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП go build -gcflags '-l=4' рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ (рдЙрдЪреНрдЪ рдорд╛рди рдЗрдирд▓рд╛рдЗрдирд┐рдВрдЧ рдХреЛ рдмрдврд╝рд╛рддреЗ рд╣реИрдВ)ред
  • рдмрдлрд╝рд░реНрдб рдЪреИрдирд▓реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ : рд╕рдВрдЧрд╛рдорд┐рддрд┐ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп рдФрд░ рд╕рдВрдЪрд╛рд░ рдХреЗ рд▓рд┐рдП рдЪреИрдирд▓реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп, рдмрдлрд╝рд░ рдХрд┐рдП рдЧрдП рдЪреИрдирд▓реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдмреНрд▓реЙрдХрд┐рдВрдЧ рдХреЛ рд░реЛрдХрдиреЗ рдФрд░ рдереНрд░реВрдкреБрдЯ рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░реЗрдВред
  • рд╕рд╣реА рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛ рдЪреБрдиреЗрдВ : рдЕрдкрдиреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреА рдЬрд╝рд░реВрд░рддреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЙрдкрдпреБрдХреНрдд рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛ рдЪреБрдиреЗрдВред рдЗрд╕рдореЗрдВ рд╕рдВрднрд╡ рд╣реЛрдиреЗ рдкрд░ рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рдмрдЬрд╛рдп рд╕реНрд▓рд╛рдЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛, рдпрд╛ рдХреБрд╢рд▓ рд▓реБрдХрдЕрдк рдФрд░ рд╣реЗрд░рдлреЗрд░ рдХреЗ рд▓рд┐рдП рдЕрдВрддрд░реНрдирд┐рд░реНрдорд┐рдд рдорд╛рдирдЪрд┐рддреНрд░реЛрдВ рдФрд░ рд╕реЗрдЯреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╢рд╛рдорд┐рд▓ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
  • рдЕрдкрдирд╛ рдХреЛрдб рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░реЗрдВ - рдПрдХ рд╕рдордп рдореЗрдВ рдереЛрдбрд╝рд╛ рд╕рд╛ : рдПрдХ рд╕рд╛рде рд╕рдм рдХреБрдЫ рдирд┐рдкрдЯрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдПрдХ рд╕рдордп рдореЗрдВ рдПрдХ рдХреНрд╖реЗрддреНрд░ рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдкрд░ рдзреНрдпрд╛рди рджреЗрдВред рдПрд▓реНрдЧреЛрд░рд┐рджрдорд┐рдХ рдЕрдХреНрд╖рдорддрд╛рдУрдВ рдХреЛ рд╕рдВрдмреЛрдзрд┐рдд рдХрд░рдХреЗ рдкреНрд░рд╛рд░рдВрдн рдХрд░реЗрдВ, рдлрд┐рд░ рд╕реНрдореГрддрд┐ рдкреНрд░рдмрдВрдзрди рдФрд░ рдЕрдиреНрдп рдЕрдиреБрдХреВрд▓рди рдкрд░ рдЬрд╛рдПрдВред

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

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

рд╕рд╛рдорд╛рдиреНрдп рдкреНрд░рд╢реНрди

рдЧреЛ рдХреНрдпрд╛ рд╣реИ?

Go, рдпрд╛ Golang, рдПрдХ рдУрдкрди-рд╕реЛрд░реНрд╕ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рд▓реИрдВрдЧреНрд╡реЗрдЬ рд╣реИ рдЬрд┐рд╕реЗ Google рдореЗрдВ рд░реЙрдмрд░реНрдЯ рдЧреНрд░рд┐рд╕реЗрдорд░, рд░реЙрдм рдкрд╛рдЗрдХ рдФрд░ рдХреЗрди рдереЙрдореНрдкрд╕рди рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрд╣ рд╕рд┐рд╕реНрдЯрдо рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдЗрд╕рдХреА рджрдХреНрд╖рддрд╛, рдордЬрдмреВрдд рдЯрд╛рдЗрдкрд┐рдВрдЧ рдФрд░ рдХрдЪрд░рд╛ рд╕рдВрдЧреНрд░рд╣рдг рдХреЗ рд▓рд┐рдП рдЬрд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред

рдЧреЛ рдореЗрдВ рдкреНрд░рджрд░реНрд╢рди рдЕрдиреБрдХреВрд▓рди рдХреНрдпреЛрдВ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ?

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

рдЧреЛ рдореЗрдВ рдкреНрд░рдореБрдЦ рдЕрдиреБрдХреВрд▓рди рддрдХрдиреАрдХреЗрдВ рдХреНрдпрд╛ рд╣реИрдВ?

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

Concurrency, Go рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХреЛ рдХреИрд╕реЗ рдмреЗрд╣рддрд░ рдмрдирд╛рддреА рд╣реИ?

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

рдкреНрд░реЛрдлрд╛рдЗрд▓рд┐рдВрдЧ рдХреНрдпрд╛ рд╣реИ рдФрд░ рдпрд╣ рдЧреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдХреИрд╕реЗ рдорджрдж рдХрд░рддреА рд╣реИ?

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

рдЧреЛ рдореЗрдВ рдореЗрдореЛрд░реА рдПрд▓реЛрдХреЗрд╢рди рдФрд░ рдкреЙрдЗрдВрдЯрд░реНрд╕ рдХреЛ рдХреИрд╕реЗ рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ?

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

рдмреЗрдВрдЪрдорд╛рд░реНрдХрд┐рдВрдЧ рдХреНрдпрд╛ рд╣реИ рдФрд░ рдпрд╣ рдЧреЛ рдореЗрдВ рдкреНрд░рджрд░реНрд╢рди рдЕрдиреБрдХреВрд▓рди рдореЗрдВ рдХреИрд╕реЗ рдорджрдж рдХрд░ рд╕рдХрддрд╛ рд╣реИ?

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

AppMaster Go рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░рддрд╛ рд╣реИ?

AppMaster рдЕрдкрдиреЗ рдмреИрдХрдПрдВрдб рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЧреЛ (рдЧреЛрд▓рдВрдЧ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ; рдпрд╣ рдЕрджреНрднреБрдд рдорд╛рдкрдиреАрдпрддрд╛ рдФрд░ рдЙрдЪреНрдЪ рдкреНрд░рджрд░реНрд╢рди рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдЙрдЪреНрдЪ-рд▓реЛрдб рдФрд░ рдЙрджреНрдпрдо рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИред

рд╢реБрд░реВ рдХрд░рдирд╛ рдЖрд╕рд╛рди
рдХреБрдЫ рдмрдирд╛рдПрдВ рдЕрджреНрднреБрдд

рдлреНрд░реА рдкреНрд▓рд╛рди рдХреЗ рд╕рд╛рде рдРрдкрдорд╛рд╕реНрдЯрд░ рдХреЗ рд╕рд╛рде рдкреНрд░рдпреЛрдЧ рдХрд░реЗрдВред
рдЬрдм рдЖрдк рддреИрдпрд╛рд░ рд╣реЛрдВрдЧреЗ рддрдм рдЖрдк рдЙрдЪрд┐рдд рд╕рджрд╕реНрдпрддрд╛ рдЪреБрди рд╕рдХрддреЗ рд╣реИрдВред

рд╢реБрд░реВ рд╣реЛ рдЬрд╛рдУ
рдЧреЛ рдореЗрдВ рдкреНрд░рджрд░реНрд╢рди рдЕрдиреБрдХреВрд▓рди | AppMaster