10 рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдЩ рднрд╛рд╖рд╛рд╣рд░реВрдорд╛ рд╕рдВрд╕реНрдХрд░рдгрд╣рд░реВрдорд╛ рдиреЗрдЯрд╡рд░реНрдХ рдЪрд╛рд▓рдХ рдкреНрд░рджрд░реНрд╢рдирдХреЛ рддреБрд▓рдирд╛

рдЬрд░реНрдорди рд╡рд┐рд╢реНрд╡рд╡рд┐рджреНрдпрд╛рд▓рдпрдХрд╛ рдЕрдиреБрд╕рдиреНрдзрд╛рдирдХрд░реНрддрд╛рд╣рд░реВрдХреЛ рд╕рдореВрд╣ рдкреНрд░рдХрд╛рд╢рд┐рдд рдкрд░рд┐рдгрд╛рдорд╣рд░реВ рд╡рд┐рд╢реЗрд╖рдЬреНрдЮ, рдЬрд╕рдХреЛ рдЕрд╡рдзрд┐рдорд╛ 10-gigabit Intel Ixgbe (X10xx) рдиреЗрдЯрд╡рд░реНрдХ рдХрд╛рд░реНрдбрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдорд╛рдирдХ рдбреНрд░рд╛рдЗрднрд░рдХреЛ 5 рд╕рдВрд╕реНрдХрд░рдгрд╣рд░реВ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдЩ рднрд╛рд╖рд╛рд╣рд░реВрдорд╛ рд╡рд┐рдХрд╕рд┐рдд рдЧрд░рд┐рдПрдХреЛ рдерд┐рдпреЛред рдбреНрд░рд╛рдЗрднрд░ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛ рд╕реНрдкреЗрд╕рдорд╛ рдЪрд▓реНрдЫ рд░ C, Rust, Go, C#, Java, OCaml, Haskell, Swift, JavaScript рд░ Python рдорд╛ рд▓рд╛рдЧреВ рд╣реБрдиреНрдЫред рдХреЛрдб рд▓реЗрдЦреНрджрд╛, рдореБрдЦреНрдп рдлреЛрдХрд╕ рдкреНрд░рддреНрдпреЗрдХ рднрд╛рд╖рд╛рдХрд╛ рд╡рд┐рд╢реЗрд╖рддрд╛рд╣рд░реВрд▓рд╛рдИ рдзреНрдпрд╛рдирдорд╛ рд░рд╛рдЦреЗрд░, рдЙрддреНрдХреГрд╖реНрдЯ рд╕рдореНрднрд╛рд╡рд┐рдд рдХрд╛рд░реНрдпрд╕рдореНрдкрд╛рджрди рд╣рд╛рд╕рд┐рд▓ рдЧрд░реНрдирдорд╛ рдерд┐рдпреЛред рд╕рдмреИ рд╡рд┐рдХрд▓реНрдкрд╣рд░реВ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛рдорд╛ рд╕рдорд╛рди рдЫрдиреН рд░ рдХреЛрдбрдХреЛ рд▓рдЧрднрдЧ 1000 рд▓рд╛рдЗрдирд╣рд░реВ рд╕рдорд╛рд╡реЗрд╢ рдЫрдиреНред рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╡рд┐рдХрд╛рд╕рд╣рд░реВ рдлреИрд▓рдиреЗ BSD рд▓рд╛рдЗрд╕реЗрдиреНрд╕ рдЕрдиреНрддрд░реНрдЧрддред

рдбреНрд░рд╛рдЗрднрд░рдХреЛ рд░рд╕реНрдЯ рд╕рдВрд╕реНрдХрд░рдг рд╕реА рднрд╛рд╖рд╛рдорд╛ рд╕рдиреНрджрд░реНрдн рдЪрд╛рд▓рдХрдХреЛ рдкреНрд░рджрд░реНрд╢рдирдорд╛ рдзреЗрд░реИ рдирдЬрд┐рдХ рднрдпреЛред 32 рдкреНрдпрд╛рдХреЗрдЯрд╣рд░реВрдХреЛ рдмреНрд▓рдХрд╣рд░реВ рдПрдХ рд╕рд╛рде рдкрдард╛рдЙрдиреЗ рд▓реЛрдб рдЕрдиреНрддрд░реНрдЧрдд, рд░рд╕реНрдЯ рдбреНрд░рд╛рдЗрднрд░ рдереЛрд░реИ рдкрдЫрд╛рдбрд┐ рдерд┐рдпреЛ, рддрд░ рдкреНрд░рддрд┐ рдмреНрд▓рдХ 32 рдкреНрдпрд╛рдХреЗрдЯрд╣рд░реВ рднрдиреНрджрд╛ рдмрдвреАрдХреЛ рдкрд░реАрдХреНрд╖рдгрдорд╛, рдЧрддрд┐ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд░реВрдкрдорд╛ C рдбреНрд░рд╛рдЗрднрд░рдмрд╛рдЯ рдлрд░рдХ рдерд┐рдПрди рд░ 28 рдорд┐рд▓рд┐рдпрди рдкреНрд░рд╢реЛрдзрдирдХреЛ рд╕реНрддрд░рдорд╛ рдкреНрд░рджрд░реНрд╢рди рдкреНрд░рджрд░реНрд╢рди рдЧрд░реНтАНрдпреЛред Xeon CPU E3-1230 v2 3.3 GHz рднрдПрдХреЛ рд╕рд░реНрднрд░рдорд╛ рдкреНрд░рддрд┐ рд╕реЗрдХреЗрдиреНрдб рдкреНрдпрд╛рдХреЗрдЯрд╣рд░реВред

10 рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдЩ рднрд╛рд╖рд╛рд╣рд░реВрдорд╛ рд╕рдВрд╕реНрдХрд░рдгрд╣рд░реВрдорд╛ рдиреЗрдЯрд╡рд░реНрдХ рдЪрд╛рд▓рдХ рдкреНрд░рджрд░реНрд╢рдирдХреЛ рддреБрд▓рдирд╛

рдХрд╛рд░реНрдпрд╕рдореНрдкрд╛рджрдирдХреЛ рд╕рдиреНрджрд░реНрднрдорд╛ рдЕрд░реНрдХреЛ рд╕реНрдерд╛рди Go рд░ C# рднрд╛рд╖рд╛рд╣рд░реВрдорд╛ рдбреНрд░рд╛рдЗрднрд░рд╣рд░реВрд▓реЗ рдУрдЧрдЯреЗрдХреЛ рдерд┐рдпреЛ, рдЬрд╕рд▓реЗ рдПрдХрджрдо рдирдЬрд┐рдХрдХреЛ рдирддрд┐рдЬрд╛рд╣рд░реВ рджреЗрдЦрд╛рдПрдХреЛ рдерд┐рдпреЛ (рдЧреЛ рдбреНрд░рд╛рдЗрднрд░рд▓реЗ 16 рдкреНрдпрд╛рдХреЗрдЯрд╣рд░реВ рд╕рдореНрдордХреЛ рдмреНрд▓рдХрд╣рд░реВрдХреЛ рдкрд░реАрдХреНрд╖рдгрдорд╛ рдЬрд┐рддреНрдпреЛ, рд░ 16 рднрдиреНрджрд╛ рдмрдвреА рдкреНрдпрд╛рдХреЗрдЯрд╣рд░реВрд╕рдБрдЧ рдкрд░реАрдХреНрд╖рдгрд╣рд░реВрдорд╛ рдереЛрд░реИ рд╣рд░рд╛рдЙрди рдерд╛рд▓реНрдпреЛред рдмреНрд▓рдХрдорд╛)ред 256 рдкреНрдпрд╛рдХреЗрдЯ рдкреНрд░рддрд┐ рдмреНрд▓рдХрдХреЛ рд╕рд╛рде, C# рдбреНрд░рд╛рдЗрднрд░рдХреЛ рд╢рд┐рдЦрд░ рдкреНрд░рджрд░реНрд╢рди рд▓рдЧрднрдЧ 28 рдорд┐рд▓рд┐рдпрди рдкреНрдпрд╛рдХреЗрдЯ рдкреНрд░рддрд┐ рд╕реЗрдХреЗрдиреНрдб рдерд┐рдпреЛ, рд░ Go рдбреНрд░рд╛рдЗрднрд░ рд▓рдЧрднрдЧ 25 рдорд┐рд▓рд┐рдпрди рдкреНрдпрд╛рдХреЗрдЯ рдкреНрд░рддрд┐ рд╕реЗрдХреЗрдиреНрдб рдерд┐рдпреЛред

рдЕрд░реНрдХреЛ, рдПрдХрджрдо рдирдЬрд┐рдХ рдирддрд┐рдЬрд╛ рд╕рдВрдЧ, рдХреЛ рд▓рд╛рдЧреА рдЪрд╛рд▓рдХрд╣рд░реБ рдерд┐рдП
рдЬрд╛рднрд╛, OCaml рд░ Haskell, рдЬреБрди рдкрд╣рд┐рд▓реЗ рдиреИ рдкрд╣рд┐рд▓реЗ рд╡рд┐рдЪрд╛рд░ рдЧрд░рд┐рдПрдХрд╛ рд╡рд┐рдХрд▓реНрдкрд╣рд░реВ рдкрдЫрд┐ рдЙрд▓реНрд▓реЗрдЦрдиреАрдп рд░реВрдкрдорд╛ рдкрдЫрд┐ рдкрд░реЗрдХрд╛ рдерд┐рдП рд░ рдкреНрд░рддрд┐ рд╕реЗрдХреЗрдиреНрдб рдкрдЯреНрдЯреА 12 рдорд┐рд▓рд┐рдпрди рдкреНрдпрд╛рдХреЗрдЯрд╣рд░реВ рдкрд╛рд░ рдЧрд░реНрди рд╕рдХреЗрдирдиреНред рд╕реНрд╡рд┐рдлреНрдЯ рд░ рдЬрд╛рднрд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдбреНрд░рд╛рдЗрднрд░рд╣рд░реВрд▓реЗ рдкреНрд░рддрд┐ рд╕реЗрдХреЗрдиреНрдб 5 рдорд┐рд▓рд┐рдпрди рдкреНрдпрд╛рдХреЗрдЯрдХреЛ рд╕реНрддрд░рдорд╛ рд╕реНрдЯреНрд░рд┐рдорд╣рд░реВ рдкреНрд░рд╢реЛрдзрди рдЧрд░реНрди рд╕рдХреНрд╖рдо рднрдПрд░ рдЕрдЭ рдареВрд▓реЛ рдврд┐рд▓рд╛рдЗ рджреЗрдЦрд╛рдПред

рд╢реАрд░реНрд╖ рд░реИрдВрдХрд┐рдВрдЧ рдкрд╛рдЗрдерди рдЪрд╛рд▓рдХ рджреНрд╡рд╛рд░рд╛ рдкреВрд░рд╛ рднрдПрдХреЛ рдерд┐рдпреЛ, рдЬрд╕рд▓реЗ рдкреНрд░рддрд┐ рд╕реЗрдХреЗрдиреНрдб рдорд╛рддреНрд░ 0.14 рдорд┐рд▓рд┐рдпрди рдкреНрдпрд╛рдХреЗрдЯрд╣рд░реВ рдкреНрд░рд╢реЛрдзрди рдЧрд░реНрди рд╕рдХреНрд╖рдо рдерд┐рдпреЛред рдкрд╛рдЗрдерди рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди JIT рдмрд┐рдирд╛ рд░ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЕрдкреНрдЯрд┐рдорд╛рдЗрдЬреЗрд╕рдирд╣рд░реВ рдмрд┐рдирд╛ рд╡реНрдпрд╛рдЦреНрдпрд╛рдХрд░реНрддрд╛рд╣рд░реВрдХреЛ рдЧрддрд┐ рдореВрд▓реНрдпрд╛рдЩреНрдХрди рдЧрд░реНрди рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдПрдХреЛ рдерд┐рдпреЛ (рдХреЛрдб CPython 3.7 рдкреНрд░рдпреЛрдЧ рдЧрд░реА рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░рд┐рдПрдХреЛ рдерд┐рдпреЛ рд░ PyPy рд╕рдБрдЧ рдЙрдкрдпреБрдХреНрдд рдерд┐рдПрди, рддрд░ рдпреЛ рдиреЛрдЯ рдЧрд░рд┐рдПрдХреЛ рдЫ рдХрд┐ рдбрд╛рдЯрд╛ рднрдгреНрдбрд╛рд░рдг рд╕рдВрд░рдЪрдирд╛рд╣рд░реВрдХреЛ рдЕрдиреБрдХреВрд▓рдирд▓реЗ рд▓рдЧрднрдЧ 10 рдЧреБрдгрд╛рд▓реЗ рдХрд╛рд░реНрдпрд╕рдореНрдкрд╛рджрди рд╕реБрдзрд╛рд░ рдЧрд░реНрди рд╕рдХреНрдЫред )ред

рдердк рд░реВрдкрдорд╛, рдмрдлрд░рд┐рдЩрдХреЛ рдкреНрд░рднрд╛рд╡рдХрд╛рд░рд┐рддрд╛ рд░ рдлреЛрд╣реЛрд░ рд╕рдЩреНрдХрд▓рдирдХрд░реНрддрд╛рдХреЛ рдкреНрд░рднрд╛рд╡ рджреЗрдЦрд╛рдЙрди рд╡рд┐рд▓рдореНрдмрддрд╛ рдкрд░реАрдХреНрд╖рдгрд╣рд░реВ рдЧрд░рд┐рдпреЛред рдкрд░реАрдХреНрд╖рдгрд▓реЗ рдкреНрд░рддреНрдпреЗрдХ рдкреНрдпрд╛рдХреЗрдЯ рдбреНрд░рд╛рдЗрднрд░рд▓реЗ рдкрдард╛рдПрдХреЛ рд╕рд╣реА рд╕рдордпрдХреЛ рддреБрд▓рдирд╛рдорд╛ рдлрд░реНрд╡рд╛рд░реНрдб рдЧрд░реЗрдкрдЫрд┐ рд╡рд┐рд▓рдореНрдмрддрд╛ рдирд╛рдкреНрдпреЛред рдиреЗрддрд╛рд╣рд░реВ рдЕрдЭреИ рдкрдирд┐ C рд░ Rust рдбреНрд░рд╛рдЗрднрд░рд╣рд░реВ рдерд┐рдП, рдЬрд╕рдХрд╛ рдкрд░рд┐рдгрд╛рдорд╣рд░реВ рдкреНрд░рддрд┐ рд╕реЗрдХреЗрдиреНрдб 1 рдорд┐рд▓рд┐рдпрди рдкреНрдпрд╛рдХреЗрдЯрд╣рд░реВ (рд▓рдЧрднрдЧ 20 ┬╡s) рдХреЛ рдкреНрд░рд╡рд╛рд╣рдХреЛ рд▓рд╛рдЧрд┐ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд░реВрдкрдорд╛ рдЕрднреЗрджреНрдп рдерд┐рдПред Go рдбреНрд░рд╛рдЗрднрд░рд▓реЗ рд░рд╛рдореНрд░реЛ рдкреНрд░рджрд░реНрд╢рди рдЧрд░реНтАНрдпреЛ, рдЕрдЧреБрд╡рд╛рд╣рд░реВ рднрдиреНрджрд╛ рдереЛрд░реИ рдкрдЫрд┐ рд░ 20 ┬╡s рдХреЛ рд╕реНрддрд░рдорд╛ рдкрдирд┐ рд░рд╣реНрдпреЛред C# рдбреНрд░рд╛рдЗрднрд░рд▓реЗ рд▓рдЧрднрдЧ 50 ┬╡s рдХреЛ рдврд┐рд▓рд╛рдЗ рджреЗрдЦрд╛рдпреЛред
рд╕рдмреИрднрдиреНрджрд╛ рд▓рд╛рдореЛ рдврд┐рд▓рд╛рдЗ JavaScript рд░ Java рдбреНрд░рд╛рдЗрднрд░рд╣рд░реВ рджреНрд╡рд╛рд░рд╛ рджреЗрдЦрд╛рдЗрдПрдХреЛ рдерд┐рдпреЛ (300 ┬╡s рднрдиреНрджрд╛ рдмрдвреАрдХреЛ рд╡рд┐рд▓рдореНрдмрддрд╛рд╣рд░реВ)ред

10 рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдЩ рднрд╛рд╖рд╛рд╣рд░реВрдорд╛ рд╕рдВрд╕реНрдХрд░рдгрд╣рд░реВрдорд╛ рдиреЗрдЯрд╡рд░реНрдХ рдЪрд╛рд▓рдХ рдкреНрд░рджрд░реНрд╢рдирдХреЛ рддреБрд▓рдирд╛

рдпреЛ рдЕрдзреНрдпрдпрди рд╕реА рднрдиреНрджрд╛ рдЙрдЪреНрдЪ-рд╕реНрддрд░ рднрд╛рд╖рд╛рд╣рд░реВрдорд╛ рдбреНрд░рд╛рдЗрднрд░рд╣рд░реВ рд░ рдЕрдкрд░реЗрдЯрд┐рдЩ рд╕рд┐рд╕реНрдЯрдо рдХрдореНрдкреЛрдиреЗрдиреНрдЯрд╣рд░реВ рд╡рд┐рдХрд╛рд╕ рдЧрд░реНрдиреЗ рд╕рдореНрднрд╛рд╡рдирд╛рдХреЛ рдореВрд▓реНрдпрд╛рдЩреНрдХрди рдЧрд░реНрди рдЖрдпреЛрдЬрд┐рдд рдЧрд░рд┐рдПрдХреЛ рдерд┐рдпреЛред рд╣рд╛рд▓, рд▓рд┐рдирдХреНрд╕рдорд╛ 39 рдордзреНрдпреЗ 40 рдореЗрдореЛрд░реА рд╕рдорд╕реНрдпрд╛рд╣рд░реВ рдбреНрд░рд╛рдЗрднрд░рд╣рд░реВрд╕рдБрдЧ рд╕рдореНрдмрдиреНрдзрд┐рдд рдЫрдиреН, рддреНрдпрд╕реИрд▓реЗ рдЕрдзрд┐рдХ рд╕реБрд░рдХреНрд╖рд┐рдд рднрд╛рд╖рд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗ рд░ рдбреНрд░рд╛рдЗрднрд░рд╣рд░реВрд▓рд╛рдИ рдХрд░реНрдиреЗрд▓рдмрд╛рдЯ рдмрд╛рд╣рд┐рд░ рд░ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛ рдард╛рдЙрдБрдорд╛ рд╕рд╛рд░реНрдиреЗ рд╕рдорд╕реНрдпрд╛рд╣рд░реВ рдЫрдиреНред рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд░рд╣рдиреБрд╣реЛрд╕реН рд░ рдирд┐рд░реНрдорд╛рддрд╛рд╣рд░реВ рдкрд╣рд┐рд▓реЗ рдиреИ рд╕рдХреНрд░рд┐рдп рд░реВрдкрдорд╛ рдпрд╕ рджрд┐рд╢рд╛рдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рд░рд╣реЗрдХрд╛ рдЫрдиреН (рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рдЧреБрдЧрд▓рд▓реЗ рдУрдПрд╕рдХреЛ рд▓рд╛рдЧрд┐ TCP рд╕реНрдЯреНрдпрд╛рдХ рд╡рд┐рдХрд╛рд╕ рдЧрд░реЗрдХреЛ рдЫред рдлреБрдЪреНрд╕рд┐рдпрд╛ Go рднрд╛рд╖рд╛рдорд╛, CloudFlare рдХрдореНрдкрдиреА рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░рд┐рдпреЛ рд░рд╕реНрдЯрдорд╛ QUIC рдкреНрд░реЛрдЯреЛрдХрд▓рдХреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди, рдПрдкреНрдкрд▓рд▓реЗ рдореЛрдмрд╛рдЗрд▓ рдЙрдкрдХрд░рдгрд╣рд░реВрдорд╛ TCP рд╕реНрдЯреНрдпрд╛рдХ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛ рд╕реНрдкреЗрд╕рдорд╛ рд╕рд╛рд░рд┐рдпреЛ)ред

рдХрд╛рдордХреЛ рдХреНрд░рдордорд╛, рдпреЛ рдирд┐рд╖реНрдХрд░реНрд╖ рдирд┐рдХрд╛рд▓рд┐рдпреЛ рдХрд┐ рд░рд╕реНрдЯ рднрд╛рд╖рд╛ рдЪрд╛рд▓рдХ рд╡рд┐рдХрд╛рд╕рдХреЛ рд▓рд╛рдЧрд┐ рдЙрддреНрддрдо рдЙрдореНрдореЗрджреНрд╡рд╛рд░ рд╣реЛред рд░рд╕реНрдЯрдХреЛ рдХреНрд╖рдорддрд╛рд╣рд░реВрд▓реЗ рд╕реА рдбреНрд░рд╛рдЗрднрд░рд╣рд░реВрдХреЛ рддреБрд▓рдирд╛рдорд╛ рд▓рдЧрднрдЧ 2% рджреЗрдЦрд┐ 10% рдкреНрд░рджрд░реНрд╢рди рд╣рд╛рдирд┐рдХреЛ рд▓рд╛рдЧрддрдорд╛ рдХрдо-рд╕реНрддрд░ рдореЗрдореЛрд░реА рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдирд╕рдБрдЧ рд╕рдореНрдмрдиреНрдзрд┐рдд рд╕рдорд╕реНрдпрд╛рд╣рд░реВ рд╣рдЯрд╛рдЙрдБрдЫред Go рд░ C# рд▓рд╛рдИ рдкрдирд┐ рдлреЛрд╣реЛрд░ рд╕рдЩреНрдХрд▓рдирд▓реЗ рдЧрд░реНрджрд╛ рд╕рдм-рдорд┐рд▓рд┐рд╕реЗрдХреЗрдиреНрдб рд╡рд┐рд▓рдореНрдмрддрд╛ рд╕реНрд╡реАрдХрд╛рд░реНрдп рд╣реБрдиреЗ рдкрд░рд┐рд╕реНрдерд┐рддрд┐рд╣рд░реВрдорд╛ рдкреНрд░рдгрд╛рд▓реА рдХрдореНрдкреЛрдиреЗрдиреНрдЯрд╣рд░реВ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрди рдЙрдкрдпреБрдХреНрдд рдорд╛рдирд┐рдиреНрдЫред

рд╕реНрд░реЛрдд: opennet.ru

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдердкреНрди