Go рдорд╛ рдмрд┐рдЯрдореНрдпрд╛рдк рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛рд╣рд░реВ: рдЬрдВрдЧрд▓реА рдЧрддрд┐рдорд╛ рдЦреЛрдЬреНрдиреБрд╣реЛрд╕реН

Go рдорд╛ рдмрд┐рдЯрдореНрдпрд╛рдк рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛рд╣рд░реВ: рдЬрдВрдЧрд▓реА рдЧрддрд┐рдорд╛ рдЦреЛрдЬреНрдиреБрд╣реЛрд╕реН

рдкрд░рд┐рдЪрдп

рдореИрд▓реЗ рдпреЛ рд░рд┐рдкреЛрд░реНрдЯ рдорд╕реНрдХреЛрдорд╛ рдЧреЛрдлрд░рдХрди рд░реВрд╕ 2019 рд╕рдореНрдореЗрд▓рдирдорд╛ рдЕрдВрдЧреНрд░реЗрдЬреАрдорд╛ рд░ рдирд┐рдЬреНрдиреА рдиреЛрднрдЧреЛрд░реЛрдбрдорд╛ рднрдПрдХреЛ рдмреИрдардХрдорд╛ рд░реВрд╕реАрдорд╛ рджрд┐рдПрдБред рд╣рд╛рдореА рдмрд┐рдЯрдореНрдпрд╛рдк рд╕реВрдЪрдХрд╛рдВрдХрдХреЛ рдмрд╛рд░реЗрдорд╛ рдХреБрд░рд╛ рдЧрд░реНрджреИрдЫреМрдВ - рдмреА-рдЯреНрд░реА рднрдиреНрджрд╛ рдХрдо рд╕рд╛рдорд╛рдиреНрдп, рддрд░ рдХрдо рд░реЛрдЪрдХ рдЫреИрдиред рдмрд╛рдвреНрдиреБ рд░реЗрдХрд░реНрдбрд┐рдЩ рд╕рдореНрдореЗрд▓рдирдорд╛ рдЕрдВрдЧреНрд░реЗрдЬреАрдорд╛ рднрд╛рд╖рдг рд░ рд░реВрд╕реАрдорд╛ рдкрд╛рда рдЯреНрд░рд╛рдиреНрд╕рдХреНрд░рд┐рдкреНрдЯред

рд╣рд╛рдореА рд╣реЗрд░реНрдиреЗрдЫреМрдВ рдХрд┐ рдмрд┐рдЯрдореНрдпрд╛рдк рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ рдХрд╕рд░реА рдХрд╛рдо рдЧрд░реНрджрдЫ, рдпреЛ рдХрд╣рд┐рд▓реЗ рд░рд╛рдореНрд░реЛ рд╣реБрдиреНрдЫ, рдХрд╣рд┐рд▓реЗ рдпреЛ рдЕрдиреНрдп рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛рд╣рд░реВ рднрдиреНрджрд╛ рдЦрд░рд╛рдм рд╣реБрдиреНрдЫ, рд░ рдХреБрди рдЕрд╡рд╕реНрдерд╛рдорд╛ рдпреЛ рддрд┐рдиреАрд╣рд░реВ рднрдиреНрджрд╛ рдзреЗрд░реИ рдЫрд┐рдЯреЛ рд╣реБрдиреНрдЫ; рдХреБрди рд▓реЛрдХрдкреНрд░рд┐рдп DBMS рд╣рд░реВ рдкрд╣рд┐рд▓реЗ рдиреИ рдмрд┐рдЯрдореНрдпрд╛рдк рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛рд╣рд░реВ рдЫрдиреН рд╣реЗрд░реМрдВ; Go рдорд╛ рд╣рд╛рдореНрд░реЛ рдЖрдлреНрдиреИ рд▓реЗрдЦреНрдиреЗ рдкреНрд░рдпрд╛рд╕ рдЧрд░реМрдВред рд░ "рдорд┐рдард╛рдИрдХреЛ рд▓рд╛рдЧрд┐" рд╣рд╛рдореА рд╣рд╛рдореНрд░реЛ рдЖрдлреНрдиреИ рд╕реБрдкрд░-рдлрд╛рд╕реНрдЯ рд╡рд┐рд╢реЗрд╖ рдбрд╛рдЯрд╛рдмреЗрд╕ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрди рддрдпрд╛рд░ рдкреБрд╕реНрддрдХрд╛рд▓рдпрд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗрдЫреМрдВред

рдо рд╕рд╛рдБрдЪреНрдЪреИ рдЖрд╢рд╛ рдЧрд░реНрдЫреБ рдХрд┐ рдореЗрд░реЛ рдХрд╛рдорд╣рд░реВ рддрдкрд╛рдИрдХрд╛ рд▓рд╛рдЧрд┐ рдЙрдкрдпреЛрдЧреА рд░ рд░реЛрдЪрдХ рд╣реБрдиреЗрдЫред рдЬрд╛рдЙ!

рдкрд░рд┐рдЪрдп


http://bit.ly/bitmapindexes
https://github.com/mkevac/gopherconrussia2019

рдирдорд╕реНрддреЗ рд╕рдмреИ! рд╕рд╛рдБрдЭрдХреЛ рдЫ рдмрдЬреЗрдХреЛ рдЫ рд░ рд╣рд╛рдореА рд╕рдмреИ рдердХрд┐рдд рдЫреМрдВред рдмреЛрд░рд┐рдЩ рдбрд╛рдЯрд╛рдмреЗрд╕ рд╕реВрдЪрдХрд╛рдВрдХ рд╕рд┐рджреНрдзрд╛рдиреНрддрдХреЛ рдмрд╛рд░реЗрдорд╛ рдХреБрд░рд╛ рдЧрд░реНрди рд░рд╛рдореНрд░реЛ рд╕рдордп, рд╣реИрди? рдЪрд┐рдиреНрддрд╛ рдирдЧрд░реНрдиреБрд╣реЛрд╕реН, рдорд╕рдБрдЧ рдпрд╣рд╛рдБ рд░ рддреНрдпрд╣рд╛рдБ рд╕реНрд░реЛрдд рдХреЛрдбрдХреЛ рджреБрдИ рд▓рд╛рдЗрдирд╣рд░реВ рд╣реБрдиреЗрдЫрдиреНред ЁЯЩВ

рд╕рдмреИ рдЪреБрдЯрдХреБрд▓реЗрд╣рд░реВ рдПрдХреИ рдард╛рдЙрдБрдорд╛, рд░рд┐рдкреЛрд░реНрдЯ рдЬрд╛рдирдХрд╛рд░реАрд▓реЗ рднрд░рд┐рдПрдХреЛ рдЫ, рд░ рд╣рд╛рдореАрд╕рдБрдЧ рдзреЗрд░реИ рд╕рдордп рдЫреИрдиред рддреНрдпрд╕реИрд▓реЗ рд╕реБрд░реБ рдЧрд░реМрдВред
Go рдорд╛ рдмрд┐рдЯрдореНрдпрд╛рдк рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛рд╣рд░реВ: рдЬрдВрдЧрд▓реА рдЧрддрд┐рдорд╛ рдЦреЛрдЬреНрдиреБрд╣реЛрд╕реН
рдЖрдЬ рдо рдирд┐рдореНрди рдмрд╛рд░реЗ рдХреБрд░рд╛ рдЧрд░реНрдиреЗрдЫреБ:

  • рд╕реВрдЪрдХрд╛рдВрдХ рдХреЗ рд╣реЛ;
  • рдмрд┐рдЯрдореИрдк рд╕реВрдЪрдХрд╛рдВрдХ рдХреЗ рд╣реЛ;
  • рдХрд╣рд╛рдБ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫ рд░ рдХрд╣рд╛рдБ рдкреНрд░рдпреЛрдЧ рд╣реБрдБрджреИрди рд░ рдХрд┐рди;
  • рдЧреЛ рдорд╛ рд╕рд░рд▓ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд░ рдХрдореНрдкрд╛рдЗрд▓рд░ рд╕рдВрдЧ рдПрдХ рд╕рд╛рдиреЛ рд╕рдВрдШрд░реНрд╖;
  • рдереЛрд░реИ рдХрдо рд╕рд░рд▓, рддрд░ рдЧреЛ рдПрд╕реЗрдореНрдмрд▓рд░рдорд╛ рдзреЗрд░реИ рдЙрддреНрдкрд╛рджрдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди;
  • рдмрд┐рдЯрдореИрдк рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛рдХреЛ "рд╕рдорд╕реНрдпрд╛рд╣рд░реВ";
  • рдЕрд╡рд╕реНрдерд┐рдд рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирд╣рд░реВред

рддреНрдпрд╕реИрд▓реЗ рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛рд╣рд░реВ рдХреЗ рд╣реБрдиреН?

Go рдорд╛ рдмрд┐рдЯрдореНрдпрд╛рдк рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛рд╣рд░реВ: рдЬрдВрдЧрд▓реА рдЧрддрд┐рдорд╛ рдЦреЛрдЬреНрдиреБрд╣реЛрд╕реН

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

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

Go рдорд╛ рдмрд┐рдЯрдореНрдпрд╛рдк рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛рд╣рд░реВ: рдЬрдВрдЧрд▓реА рдЧрддрд┐рдорд╛ рдЦреЛрдЬреНрдиреБрд╣реЛрд╕реН

рдкрд╣рд┐рд▓реЛ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдкрджрд╛рдиреБрдХреНрд░рдорд┐рдд рд░реВрдкрдорд╛ рдЦреЛрдЬ рд╕реНрдерд╛рди рдХрдо рдЧрд░реНрди, рдЦреЛрдЬ рд╕реНрдерд╛рдирд▓рд╛рдИ рд╕рд╛рдирд╛ рднрд╛рдЧрд╣рд░реВрдорд╛ рд╡рд┐рднрд╛рдЬрди рдЧрд░реНрди рд╣реЛред

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

Go рдорд╛ рдмрд┐рдЯрдореНрдпрд╛рдк рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛рд╣рд░реВ: рдЬрдВрдЧрд▓реА рдЧрддрд┐рдорд╛ рдЦреЛрдЬреНрдиреБрд╣реЛрд╕реН

рджреЛрд╕реНрд░реЛ рджреГрд╖реНрдЯрд┐рдХреЛрдг рддреБрд░реБрдиреНрддреИ рдЗрдЪреНрдЫрд┐рдд рддрддреНрд╡ рд╡рд╛ рддрддреНрд╡рд╣рд░реВрдХреЛ рд╕рдореВрд╣ рдЪрдпрди рдЧрд░реНрди рд╣реЛред рд╣рд╛рдореА рдпрд╕рд▓рд╛рдИ рд╣реНрдпрд╛рд╕ рдирдХреНрд╕рд╛ рд╡рд╛ рдЙрд▓реНрдЯреЛ рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛рдорд╛ рдЧрд░реНрдЫреМрдВред рд╣реНрдпрд╛рд╕ рдирдХреНрд╕рд╛рд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБ рдЕрдШрд┐рд▓реНрд▓реЛ рдЙрджрд╛рд╣рд░рдгрд╕рдБрдЧ рдзреЗрд░реИ рдорд┐рд▓реНрджреЛрдЬреБрд▓реНрджреЛ рдЫ, рддрд░ рдмрдХреНрд╕рд╣рд░реВрдХреЛ рдмрдХреНрд╕рдХреЛ рд╕рдЯреНрдЯрд╛, рддрдкрд╛рдИрдВрдХреЛ рдХреЛрдард░реАрдорд╛ рдЕрдиреНрддрд┐рдо рд╡рд╕реНрддреБрд╣рд░реВрдХреЛ рд╕рд╛рдиреЛ рдмрдХреНрд╕рд╣рд░реВрдХреЛ рдЧреБрдЪреНрдЫрд╛ рдЫред

Go рдорд╛ рдмрд┐рдЯрдореНрдпрд╛рдк рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛рд╣рд░реВ: рдЬрдВрдЧрд▓реА рдЧрддрд┐рдорд╛ рдЦреЛрдЬреНрдиреБрд╣реЛрд╕реН

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

Go рдорд╛ рдмрд┐рдЯрдореНрдпрд╛рдк рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛рд╣рд░реВ: рдЬрдВрдЧрд▓реА рдЧрддрд┐рдорд╛ рдЦреЛрдЬреНрдиреБрд╣реЛрд╕реН

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

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

рдЖрдЬ рдо рдпреА рдордзреНрдпреЗ рд╕рдмреИрднрдиреНрджрд╛ рдХрдо рдЬреНрдЮрд╛рдд рджреГрд╖реНрдЯрд┐рдХреЛрдгрдХреЛ рдмрд╛рд░реЗрдорд╛ рдХреБрд░рд╛ рдЧрд░реНрдиреЗрдЫреБ - рдмрд┐рдЯрдореНрдпрд╛рдк рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛рд╣рд░реВред

рдпреЛ рд╡рд┐рд╖рдпрдорд╛ рдмреЛрд▓реНрдиреЗ рдо рдХреЛ рд╣реБрдБ ?

Go рдорд╛ рдмрд┐рдЯрдореНрдпрд╛рдк рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛рд╣рд░реВ: рдЬрдВрдЧрд▓реА рдЧрддрд┐рдорд╛ рдЦреЛрдЬреНрдиреБрд╣реЛрд╕реН

рдо Badoo рдорд╛ рдЯреЛрд▓реА рдиреЗрддреГрддреНрд╡рдХреЛ рд░реВрдкрдорд╛ рдХрд╛рдо рдЧрд░реНрдЫреБ (рд╕рд╛рдпрдж рддрдкрд╛рдИрдВ рд╣рд╛рдореНрд░реЛ рдЕрд░реНрдХреЛ рдЙрддреНрдкрд╛рджрди, рдмрдореНрдмрд▓рд╕рдБрдЧ рдмрдвреА рдкрд░рд┐рдЪрд┐рдд рд╣реБрдиреБрд╣реБрдиреНрдЫ)ред рд╣рд╛рдореАрд╕рдБрдЧ рдкрд╣рд┐рд▓реЗ рдиреИ рд╕рдВрд╕рд╛рд░рднрд░рд┐ 400 рдорд┐рд▓рд┐рдпрди рднрдиреНрджрд╛ рдмрдвреА рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд╣рд░реВ рдЫрдиреН рд░ рдзреЗрд░реИ рд╕реБрд╡рд┐рдзрд╛рд╣рд░реВ рдЫрдиреН рдЬрд╕рд▓реЗ рдЙрдиреАрд╣рд░реВрдХрд╛ рд▓рд╛рдЧрд┐ рдЙрддреНрддрдо рдорд┐рд▓реНрджреЛ рдЪрдпрди рдЧрд░реНрджрдЫред рд╣рд╛рдореА рдмрд┐рдЯрдореНрдпрд╛рдк рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛рд╣рд░реВ рд╕рд╣рд┐рдд рдЕрдиреБрдХреВрд▓рди рд╕реЗрд╡рд╛рд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдпреЛ рдЧрд░реНрдЫреМрдВред

рддреНрдпрд╕реЛрднрдП рдмрд┐рдЯрдореНрдпрд╛рдк рд╕реВрдЪрдХрд╛рдВрдХ рдХреЗ рд╣реЛ?

Go рдорд╛ рдмрд┐рдЯрдореНрдпрд╛рдк рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛рд╣рд░реВ: рдЬрдВрдЧрд▓реА рдЧрддрд┐рдорд╛ рдЦреЛрдЬреНрдиреБрд╣реЛрд╕реН
рдмрд┐рдЯрдореНрдпрд╛рдк рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛рд╣рд░реВ, рдирд╛рдорд▓реЗ рд╕реБрдЭрд╛рд╡ рджрд┐рдП рдЬрд╕реНрддреИ, рдЦреЛрдЬ рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ рд▓рд╛рдЧреВ рдЧрд░реНрди рдмрд┐рдЯрдореНрдпрд╛рдк рд╡рд╛ рдмрд┐рдЯрд╕реЗрдЯрд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реНред рдЪрд░рд╛рдХреЛ рдЖрдБрдЦрд╛рдХреЛ рджреГрд╢реНрдпрдмрд╛рдЯ, рдпреЛ рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛рд▓реЗ рдХреБрдиреИ рдкрдирд┐ рдирд┐рдХрд╛рдпрд╣рд░реВ (рдЬрд╕реНрддреИ рдорд╛рдирд┐рд╕рд╣рд░реВ) рд░ рддрд┐рдиреАрд╣рд░реВрдХреЛ рдЧреБрдг рд╡рд╛ рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░рд╣рд░реВ (рдЙрдореЗрд░, рдЖрдБрдЦрд╛рдХреЛ рд░рдЩ, рдЖрджрд┐) рдХреЛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдЧрд░реНрдиреЗ рдПрдХ рд╡рд╛ рдмрдвреА рддреНрдпрд╕реНрддрд╛ рдмрд┐рдЯрдореНрдпрд╛рдкрд╣рд░реВ рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрджрдЫ, рд░ рдмрд┐рдЯ рдЕрдкрд░реЗрд╢рдирд╣рд░реВ (AND, OR, NOT) рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрджрдЫред ) рдЦреЛрдЬ рдкреНрд░рд╢реНрдирдХреЛ рдЬрд╡рд╛рдл рджрд┐рдиред
Go рдорд╛ рдмрд┐рдЯрдореНрдпрд╛рдк рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛рд╣рд░реВ: рдЬрдВрдЧрд▓реА рдЧрддрд┐рдорд╛ рдЦреЛрдЬреНрдиреБрд╣реЛрд╕реН
рд╣рд╛рдореАрд▓рд╛рдИ рднрдирд┐рдПрдХреЛ рдЫ рдХрд┐ рдмрд┐рдЯрдореНрдпрд╛рдк рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛рд╣рд░реВ рдзреЗрд░реИ рдХрдо рдХрд╛рд░реНрдбрд┐рдирд▓рд┐рдЯреА рд╕реНрддрдореНрднрд╣рд░реВрдорд╛ рдкреНрд░рд╢реНрдирд╣рд░реВ рд╕рдВрдпреЛрдЬрди рдЧрд░реНрдиреЗ рдЦреЛрдЬрд╣рд░реВ рднрдПрдХрд╛ рдШрдЯрдирд╛рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рд╕рдмреИрднрдиреНрджрд╛ рдЙрдкрдпреБрдХреНрдд рд░ рдзреЗрд░реИ рдкреНрд░рджрд░реНрд╢рдирдХрд╛рд░реА рдЫрдиреН ("рдЖрдБрдЦрд╛рдХреЛ рд░рдВрдЧ" рд╡рд╛ "рд╡реИрд╡рд╛рд╣рд┐рдХ рд╕реНрдерд┐рддрд┐" рд╡рд┐рд░реБрджреНрдз "рд╢рд╣рд░рдХреЛ рдХреЗрдиреНрджреНрд░рдмрд╛рдЯ рджреВрд░реА" рдЬрд╕реНрддреЛ рдХреЗрд╣рд┐ рд╕реЛрдЪреНрдиреБрд╣реЛрд╕реН)ред рддрд░ рдо рдкрдЫрд┐ рджреЗрдЦрд╛рдЙрдиреЗрдЫреБ рдХрд┐ рддрд┐рдиреАрд╣рд░реВрд▓реЗ рдЙрдЪреНрдЪ рдХрд╛рд░реНрдбрд┐рдирд▓рд┐рдЯреА рд╕реНрддрдореНрднрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдкрдирд┐ рд░рд╛рдореНрд░реЛ рдХрд╛рдо рдЧрд░реНрдЫрдиреНред

рдмрд┐рдЯрдореИрдк рд╕реВрдЪрдХрд╛рдВрдХрдХреЛ рд╕рд░рд▓ рдЙрджрд╛рд╣рд░рдг рд╣реЗрд░реМрдВред
Go рдорд╛ рдмрд┐рдЯрдореНрдпрд╛рдк рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛рд╣рд░реВ: рдЬрдВрдЧрд▓реА рдЧрддрд┐рдорд╛ рдЦреЛрдЬреНрдиреБрд╣реЛрд╕реН
рдХрд▓реНрдкрдирд╛ рдЧрд░реНрдиреБрд╣реЛрд╕реН рдХрд┐ рд╣рд╛рдореАрд╕рдБрдЧ рдорд╕реНрдХреЛ рд░реЗрд╕реНрдЯреБрд░реЗрдиреНрдЯрд╣рд░реВрдХреЛ рд╕реВрдЪреА рдЫ рдЬрд╕рдорд╛ рдмрд╛рдЗрдирд░реА рдЧреБрдгрд╣рд░реВ рдЫрдиреН:

  • рдореЗрдЯреНрд░реЛ рдирдЬрд┐рдХ;
  • рддреНрдпрд╣рд╛рдБ рдирд┐рдЬреА рдкрд╛рд░реНрдХрд┐рдВрдЧ рдЫ;
  • рддреНрдпрд╣рд╛рдБ рдПрдЙрдЯрд╛ рдмрд░рд╛рдорджрд╛ рдЫ (рдЫрдд рдЫ);
  • рддрдкрд╛рдИрдВ рдЯреЗрдмрд▓ рдЖрд░рдХреНрд╖рд┐рдд рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ (рдЖрд░рдХреНрд╖рдг рд╕реНрд╡реАрдХрд╛рд░ рдЧрд░реНрджрдЫ);
  • рд╢рд╛рдХрд╛рд╣рд╛рд░реАрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдЙрдкрдпреБрдХреНрдд (рд╢рд╛рдХрд╛рд╣рд╛рд░реА рдЕрдиреБрдХреВрд▓);
  • рдорд╣рдБрдЧреЛ (рдорд╣рдБрдЧреЛ)ред

Go рдорд╛ рдмрд┐рдЯрдореНрдпрд╛рдк рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛рд╣рд░реВ: рдЬрдВрдЧрд▓реА рдЧрддрд┐рдорд╛ рдЦреЛрдЬреНрдиреБрд╣реЛрд╕реН
рдкреНрд░рддреНрдпреЗрдХ рд░реЗрд╕реНрдЯреБрд░реЗрдиреНрдЯрд▓рд╛рдИ реж рдмрд╛рдЯ рд╕реБрд░реБ рд╣реБрдиреЗ рдХреНрд░рдо рд╕рдВрдЦреНрдпрд╛ рджрд┐рдФрдВ рд░ рем рдмрд┐рдЯрдореНрдпрд╛рдкрдХрд╛ рд▓рд╛рдЧрд┐ рдореЗрдореЛрд░реА рдЖрд╡рдВрдЯрд┐рдд рдЧрд░реМрдВ (рдкреНрд░рддреНрдпреЗрдХ рд╡рд┐рд╢реЗрд╖рддрд╛рдХреЛ рд▓рд╛рдЧрд┐ рдПрдХ)ред рд░реЗрд╕реНрдЯреБрд░реЗрдиреНрдЯрдорд╛ рдпреЛ рд╕рдореНрдкрддреНрддрд┐ рдЫ рд╡рд╛ рдЫреИрди рднрдиреНрдиреЗ рдЖрдзрд╛рд░рдорд╛ рд╣рд╛рдореА рдпреА рдмрд┐рдЯрдореНрдпрд╛рдкрд╣рд░реВ рднрд░реНрдиреЗрдЫреМрдВред рдпрджрд┐ рд░реЗрд╕реНрдЯреБрд░реЗрдиреНрдЯ 0 рдорд╛ рдмрд░рд╛рдорджрд╛ рдЫ рднрдиреЗ, рдмрд┐рдЯ рдирдореНрдмрд░ 6 рдорд╛ "рдПрдХ рдмрд░рд╛рдорджрд╛ рдЫ" рдмрд┐рдЯрдореНрдпрд╛рдк 4 рдорд╛ рд╕реЗрдЯ рдЧрд░рд┐рдиреЗрдЫ (рдпрджрд┐ рддреНрдпрд╣рд╛рдБ рдХреБрдиреИ рдмрд░рд╛рдорджрд╛ рдЫреИрди рднрдиреЗ, рддреНрдпрд╕рдкрдЫрд┐ 4)ред
Go рдорд╛ рдмрд┐рдЯрдореНрдпрд╛рдк рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛рд╣рд░реВ: рдЬрдВрдЧрд▓реА рдЧрддрд┐рдорд╛ рдЦреЛрдЬреНрдиреБрд╣реЛрд╕реН
рдЕрдм рд╣рд╛рдореАрд╕рдБрдЧ рд╕рдореНрднрд╡ рднрдПрд╕рдореНрдо рд╕рд░рд▓ рдмрд┐рдЯрдореНрдпрд╛рдк рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ рдЫ, рд░ рд╣рд╛рдореА рдпрд╕рд▓рд╛рдИ рдкреНрд░рд╢реНрдирд╣рд░реВрдХреЛ рдЬрд╡рд╛рдл рджрд┐рди рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХреНрдЫреМрдВ:

  • "рдорд▓рд╛рдИ рд╢рд╛рдХрд╛рд╣рд╛рд░реА-рдЕрдиреБрдХреВрд▓ рд░реЗрд╕реНрдЯреБрд░реЗрдиреНрдЯрд╣рд░реВ рджреЗрдЦрд╛рдЙрдиреБрд╣реЛрд╕реН";
  • "рдорд▓рд╛рдИ рдПрдЙрдЯрд╛ рдмрд░рд╛рдорджрд╛ рднрдПрдХреЛ рд╕рд╕реНрддреЛ рд░реЗрд╕реНрдЯреБрд░реЗрдиреНрдЯрд╣рд░реВ рджреЗрдЦрд╛рдЙрдиреБрд╣реЛрд╕реН рдЬрд╣рд╛рдБ рддрдкрд╛рдЗрдБ рдЯреЗрдмрд▓ рд░рд┐рдЬрд░реНрдн рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред"

Go рдорд╛ рдмрд┐рдЯрдореНрдпрд╛рдк рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛рд╣рд░реВ: рдЬрдВрдЧрд▓реА рдЧрддрд┐рдорд╛ рдЦреЛрдЬреНрдиреБрд╣реЛрд╕реН
Go рдорд╛ рдмрд┐рдЯрдореНрдпрд╛рдк рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛рд╣рд░реВ: рдЬрдВрдЧрд▓реА рдЧрддрд┐рдорд╛ рдЦреЛрдЬреНрдиреБрд╣реЛрд╕реН
рдХрд╕рд░реА? рд╣реЗрд░реМрдВред рдкрд╣рд┐рд▓реЛ рдЕрдиреБрд░реЛрдз рдзреЗрд░реИ рд╕рд░рд▓ рдЫред рд╣рд╛рдореАрд▓реЗ рдХреЗ рдЧрд░реНрдиреБ рдкрд░реНрдЫ "рд╢рд╛рдХрд╛рд╣рд╛рд░реА рдореИрддреНрд░реА" рдмрд┐рдЯрдореНрдпрд╛рдк рд▓рд┐рдиреБрд╣реЛрд╕реН рд░ рдпрд╕рд▓рд╛рдИ рд░реЗрд╕реНрдЯреБрд░реЗрдиреНрдЯрд╣рд░реВрдХреЛ рд╕реВрдЪреАрдорд╛ рдкрд░рд┐рдгрдд рдЧрд░реНрдиреБрд╣реЛрд╕реН рдЬрд╕рдХреЛ рдмрд┐рдЯрд╣рд░реВ рдЦреБрд▓рд╛ рдЫрдиреНред
Go рдорд╛ рдмрд┐рдЯрдореНрдпрд╛рдк рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛рд╣рд░реВ: рдЬрдВрдЧрд▓реА рдЧрддрд┐рдорд╛ рдЦреЛрдЬреНрдиреБрд╣реЛрд╕реН
Go рдорд╛ рдмрд┐рдЯрдореНрдпрд╛рдк рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛рд╣рд░реВ: рдЬрдВрдЧрд▓реА рдЧрддрд┐рдорд╛ рдЦреЛрдЬреНрдиреБрд╣реЛрд╕реН
рджреЛрд╕реНрд░реЛ рдЕрдиреБрд░реЛрдз рдЕрд▓рд┐ рдмрдвреА рдЬрдЯрд┐рд▓ рдЫред рд╣рд╛рдореАрд▓реЗ рд╕рд╕реНрддреЛ рд░реЗрд╕реНрдЯреБрд░реЗрдиреНрдЯрд╣рд░реВрдХреЛ рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди "рдорд╣рдВрдЧрд╛" рдмрд┐рдЯрдореНрдпрд╛рдкрдорд╛ NOT рдмрд┐рдЯрдореНрдпрд╛рдк рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫ, рддреНрдпрд╕рдкрдЫрд┐ рд░ рдпрд╕рд▓рд╛рдИ "рдХреЗ рдо рдЯреЗрдмрд▓ рдмреБрдХ рдЧрд░реНрди рд╕рдХреНрдЫреБ" рдмрд┐рдЯрдореНрдпрд╛рдк рд░ рд░ рдкрд░рд┐рдгрд╛рдо "рддреНрдпрд╣рд╛рдБ рдПрдЙрдЯрд╛ рдмрд░рд╛рдорджрд╛ рдЫ" рдмрд┐рдЯрдореНрдпрд╛рдкрдХреЛ рд╕рд╛рдеред рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдмрд┐рдЯрдореНрдпрд╛рдкрд▓реЗ рд╣рд╛рдореНрд░рд╛ рд╕рдмреИ рдорд╛рдкрджрдгреНрдбрд╣рд░реВ рдкреВрд░рд╛ рдЧрд░реНрдиреЗ рдкреНрд░рддрд┐рд╖реНрдард╛рдирд╣рд░реВрдХреЛ рд╕реВрдЪреА рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрджрдЫред рдпрд╕ рдЙрджрд╛рд╣рд░рдгрдорд╛, рдпреЛ рдпреБрдиреЛрд╕реНрдЯ рд░реЗрд╕реНрдЯреБрд░реЗрдиреНрдЯ рдорд╛рддреНрд░ рд╣реЛред
Go рдорд╛ рдмрд┐рдЯрдореНрдпрд╛рдк рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛рд╣рд░реВ: рдЬрдВрдЧрд▓реА рдЧрддрд┐рдорд╛ рдЦреЛрдЬреНрдиреБрд╣реЛрд╕реН
Go рдорд╛ рдмрд┐рдЯрдореНрдпрд╛рдк рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛рд╣рд░реВ: рдЬрдВрдЧрд▓реА рдЧрддрд┐рдорд╛ рдЦреЛрдЬреНрдиреБрд╣реЛрд╕реН
рддреНрдпрд╣рд╛рдБ рдзреЗрд░реИ рд╕рд┐рджреНрдзрд╛рдиреНрддрд╣рд░реВ рд╕рдорд╛рд╡реЗрд╢ рдЫрдиреН, рддрд░ рдЪрд┐рдиреНрддрд╛ рдирдЧрд░реНрдиреБрд╣реЛрд╕реН, рд╣рд╛рдореА рдЫрд┐рдЯреНрдЯреИ рдХреЛрдб рджреЗрдЦреНрдиреЗрдЫреМрдВред

рдмрд┐рдЯрдореНрдпрд╛рдк рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛рд╣рд░реВ рдХрд╣рд╛рдБ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫ?

Go рдорд╛ рдмрд┐рдЯрдореНрдпрд╛рдк рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛рд╣рд░реВ: рдЬрдВрдЧрд▓реА рдЧрддрд┐рдорд╛ рдЦреЛрдЬреНрдиреБрд╣реЛрд╕реН
рдпрджрд┐ рддрдкрд╛рдЗрдБ Google рдмрд┐рдЯрдореНрдпрд╛рдк рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛рд╣рд░реВ рдЧрд░реНрдиреБрд╣реБрдиреНрдЫ рднрдиреЗ, 90% рдЙрддреНрддрд░рд╣рд░реВ рдХреБрдиреИ рди рдХреБрдиреИ рд░реВрдкрдорд╛ Oracle DB рд╕рдБрдЧ рд╕рдореНрдмрдиреНрдзрд┐рдд рд╣реБрдиреЗрдЫрдиреНред рддрд░ рдЕрдиреНрдп DBMS рд╣рд░реВрд▓реЗ рдкрдирд┐ рдпрд╕реНрддреЛ рд░рд╛рдореНрд░реЛ рдХреБрд░рд╛рд▓рд╛рдИ рд╕рдорд░реНрдерди рдЧрд░реНрджрдЫ, рд╣реИрди? рд╕рд╛рдБрдЪреНрдЪреИ рд╣реЛрдЗрдиред

рдореБрдЦреНрдп рд╕рдВрджрд┐рдЧреНрдзрд╣рд░реВрдХреЛ рд╕реВрдЪреА рдорд╛рд░реНрдлрдд рдЬрд╛рдФрдВред
Go рдорд╛ рдмрд┐рдЯрдореНрдпрд╛рдк рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛рд╣рд░реВ: рдЬрдВрдЧрд▓реА рдЧрддрд┐рдорд╛ рдЦреЛрдЬреНрдиреБрд╣реЛрд╕реН
MySQL рд▓реЗ рдЕрдЭреИ рдмрд┐рдЯрдореНрдпрд╛рдк рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛рд╣рд░реВрд▓рд╛рдИ рд╕рдорд░реНрдерди рдЧрд░реНрджреИрди, рддрд░ рддреНрдпрд╣рд╛рдБ рдпреЛ рд╡рд┐рдХрд▓реНрдк рдердкреНрди рд╕реБрдЭрд╛рд╡ рджрд┐рдиреЗ рдкреНрд░рд╕реНрддрд╛рд╡ рдЫ (https://dev.mysql.com/worklog/task/?id=1524).

PostgreSQL рд▓реЗ рдмрд┐рдЯрдореНрдпрд╛рдк рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛рд╣рд░реВрд▓рд╛рдИ рд╕рдорд░реНрдерди рдЧрд░реНрджреИрди, рддрд░ рдзреЗрд░реИ рдЕрдиреНрдп рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛рд╣рд░реВрдорд╛ рдЦреЛрдЬ рдкрд░рд┐рдгрд╛рдорд╣рд░реВ рд╕рдВрдпреЛрдЬрди рдЧрд░реНрди рд╕рд░рд▓ рдмрд┐рдЯрдореНрдпрд╛рдк рд░ рдмрд┐рдЯ рдЕрдкрд░реЗрд╢рдирд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрдЫред

Tarantool рд╕рдБрдЧ рдмрд┐рдЯрд╕реЗрдЯ рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛рд╣рд░реВ рдЫрдиреН рд░ рддрд┐рдиреАрд╣рд░реВрдорд╛ рд╕рд░рд▓ рдЦреЛрдЬрд╣рд░реВрд▓рд╛рдИ рд╕рдорд░реНрдерди рдЧрд░реНрджрдЫред

рд░реЗрдбрд┐рд╕рд╕рдБрдЧ рд╕рд╛рдзрд╛рд░рдг рдмрд┐рдЯрдлрд┐рд▓реНрдбрд╣рд░реВ рдЫрдиреН (https://redis.io/commands/bitfield) рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ рдЦреЛрдЬреНрдиреЗ рдХреНрд╖рдорддрд╛ рдмрд┐рдирд╛ред

MongoDB рд▓реЗ рдЕрдЭреИ рдмрд┐рдЯрдореНрдпрд╛рдк рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛рд╣рд░реВрд▓рд╛рдИ рд╕рдорд░реНрдерди рдЧрд░реНрджреИрди, рддрд░ рдпреЛ рд╡рд┐рдХрд▓реНрдк рдердкреНрди рд╕реБрдЭрд╛рд╡ рджрд┐рдиреЗ рдкреНрд░рд╕реНрддрд╛рд╡ рдкрдирд┐ рдЫред https://jira.mongodb.org/browse/SERVER-1723

Elasticsearch рдЖрдиреНрддрд░рд┐рдХ рд░реВрдкрдорд╛ рдмрд┐рдЯрдореНрдпрд╛рдк рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрдЫ (https://www.elastic.co/blog/frame-of-reference-and-roaring-bitmaps).

Go рдорд╛ рдмрд┐рдЯрдореНрдпрд╛рдк рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛рд╣рд░реВ: рдЬрдВрдЧрд▓реА рдЧрддрд┐рдорд╛ рдЦреЛрдЬреНрдиреБрд╣реЛрд╕реН

  • рддрд░ рд╣рд╛рдореНрд░реЛ рдШрд░рдорд╛ рдирдпрд╛рдБ рдЫрд┐рдореЗрдХреА рджреЗрдЦрд╛ рдкрд░реНтАНрдпреЛ: рдкрд┐рд▓реЛрд╕рд╛ред рдпреЛ Go рдорд╛ рд▓реЗрдЦрд┐рдПрдХреЛ рдирдпрд╛рдБ рдЧреИрд░-рд╕рдореНрдмрдиреНрдзрд┐рдд рдбрд╛рдЯрд╛рдмреЗрд╕ рд╣реЛред рдпрд╕рд▓реЗ рдХреЗрд╡рд▓ рдмрд┐рдЯрдореНрдпрд╛рдк рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛рд╣рд░реВ рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрджрдЫ рд░ рддрд┐рдиреАрд╣рд░реВрдорд╛ рд╕рдмреИ рдХреБрд░рд╛рд▓рд╛рдИ рдЖрдзрд╛рд░ рдЧрд░реНрджрдЫред рд╣рд╛рдореА рдпрд╕рдХреЛ рдмрд╛рд░реЗрдорд╛ рдХреЗрд╣рд┐ рдкрдЫрд┐ рдХреБрд░рд╛ рдЧрд░реНрдиреЗрдЫреМрдВред

Go рдорд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди

рддрд░ рдХрд┐рди рдмрд┐рдЯрдореНрдпрд╛рдк рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛рд╣рд░реВ рдзреЗрд░реИ рдХрдо рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫ? рдпрд╕ рдкреНрд░рд╢реНрдирдХреЛ рдЬрд╡рд╛рдл рджрд┐рдиреБ рдЕрдШрд┐, рдо рддрдкрд╛рдИрдВрд▓рд╛рдИ Go рдорд╛ рдПрдХ рдзреЗрд░реИ рд╕рд░рд▓ рдмрд┐рдЯрдореНрдпрд╛рдк рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ рдХрд╕рд░реА рд▓рд╛рдЧреВ рдЧрд░реНрдиреЗ рднрдиреЗрд░ рджреЗрдЦрд╛рдЙрди рдЪрд╛рд╣рдиреНрдЫреБред
Go рдорд╛ рдмрд┐рдЯрдореНрдпрд╛рдк рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛рд╣рд░реВ: рдЬрдВрдЧрд▓реА рдЧрддрд┐рдорд╛ рдЦреЛрдЬреНрдиреБрд╣реЛрд╕реН
рдмрд┐рдЯрдореНрдпрд╛рдкрд╣рд░реВ рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдкрдорд╛ рдбрд╛рдЯрд╛рдХреЛ рдЯреБрдХреНрд░рд╛ рдорд╛рддреНрд░ рд╣реБрдиреНред Go рдорд╛, рдпрд╕рдХреЛ рд▓рд╛рдЧрд┐ рдмрд╛рдЗрдЯ рд╕реНрд▓рд╛рдЗрд╕рд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реМрдВред

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

рджреЛрд╕реНрд░реЛ рдкреНрд░рдХрд╛рд░реНрдпрд▓реЗ рдмрд┐рдЯрдореНрдпрд╛рдкрд▓рд╛рдИ рд░реЗрд╕реНрдЯреБрд░реЗрдиреНрдЯрд╣рд░реВрдХреЛ рд╕реВрдЪреАрдорд╛ рд░реВрдкрд╛рдиреНрддрд░рдг рдЧрд░реНрдиреЗрдЫред
Go рдорд╛ рдмрд┐рдЯрдореНрдпрд╛рдк рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛рд╣рд░реВ: рдЬрдВрдЧрд▓реА рдЧрддрд┐рдорд╛ рдЦреЛрдЬреНрдиреБрд╣реЛрд╕реН
Go рдорд╛ рдмрд┐рдЯрдореНрдпрд╛рдк рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛рд╣рд░реВ: рдЬрдВрдЧрд▓реА рдЧрддрд┐рдорд╛ рдЦреЛрдЬреНрдиреБрд╣реЛрд╕реН
"рдорд▓рд╛рдИ рдЖрдБрдЧрди рднрдПрдХрд╛ рд░ рд░рд┐рдЬрд░реНрднреЗрд╕рди рдЧрд░реНрди рд╕рдХреНрдиреЗ рд╕рд╕реНрддреЛ рд░реЗрд╕реНрдЯреБрд░реЗрдиреНрдЯрд╣рд░реВ рджреЗрдЦрд╛рдЙрдиреБрд╣реЛрд╕реН" рднрдиреНрдиреЗ рдкреНрд░рд╢реНрдирдХреЛ рдЬрд╡рд╛рдл рджрд┐рди рд╣рд╛рдореАрд▓рд╛рдИ рджреБрдИрд╡рдЯрд╛ рдмрд┐рдЯ рдЕрдкрд░реЗрд╢рдирд╣рд░реВ рдЪрд╛рд╣рд┐рдиреНрдЫ: рд╣реЛрдЗрди рд░ рд░ред

рд╣рд╛рдореА рд╣рд╛рдореНрд░реЛ рдХреЛрдбрд▓рд╛рдИ рдердк рдЬрдЯрд┐рд▓ рд░ рд╣реЛрдЗрди рдЕрдкрд░реЗрдЯрд░ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдереЛрд░реИ рд╕рд░рд▓ рдмрдирд╛рдЙрди рд╕рдХреНрдЫреМрдВред

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

pprof рд╕рдБрдЧ рдХреЗрд╣реА рдкреНрд░реЛрдлрд╛рдЗрд▓рд┐рдЩ рдЧрд░реЗрдкрдЫрд┐, рдореИрд▓реЗ рдЧреЛ рдХрдореНрдкрд╛рдЗрд▓рд░рд▓реЗ рдПрдЙрдЯрд╛ рдзреЗрд░реИ рд╕рд░рд▓ рддрд░ рдзреЗрд░реИ рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рдЕрдкреНрдЯрд┐рдорд╛рдЗрдЬреЗрд╕рди рд╣рд░рд╛рдЗрд░рд╣реЗрдХреЛ рджреЗрдЦреЗрдБ: рдкреНрд░рдХрд╛рд░реНрдп рдЗрдирд▓рд╛рдЗрдирд┐рдЩред
Go рдорд╛ рдмрд┐рдЯрдореНрдпрд╛рдк рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛рд╣рд░реВ: рдЬрдВрдЧрд▓реА рдЧрддрд┐рдорд╛ рдЦреЛрдЬреНрдиреБрд╣реЛрд╕реН
рддрдереНрдп рдпреЛ рд╣реЛ рдХрд┐ рдЧреЛ рдХрдореНрдкрд╛рдЗрд▓рд░ рд╕реНрд▓рд╛рдЗрд╕рд╣рд░реВ рдорд╛рд░реНрдлрдд рдЬрд╛рдиреЗ рд▓реВрдкрд╣рд░реВрдмрд╛рдЯ рдзреЗрд░реИ рдбрд░рд╛рдЙрдБрдЫ, рд░ рд╕реНрдкрд╖реНрдЯ рд░реВрдкрдорд╛ рддреНрдпрд╕реНрддрд╛ рд▓реВрдкрд╣рд░реВ рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрдиреЗ рдЗрдирд▓рд╛рдЗрди рдкреНрд░рдХрд╛рд░реНрдпрд╣рд░реВрд▓рд╛рдИ рдЕрд╕реНрд╡реАрдХрд╛рд░ рдЧрд░реНрджрдЫред
Go рдорд╛ рдмрд┐рдЯрдореНрдпрд╛рдк рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛рд╣рд░реВ: рдЬрдВрдЧрд▓реА рдЧрддрд┐рдорд╛ рдЦреЛрдЬреНрдиреБрд╣реЛрд╕реН
рддрд░ рдо рдбрд░рд╛рдЙрдБрджрд┐рди рд░ рдо рд▓реВрдкрдХреЛ рд╕рдЯреНрдЯрд╛ рдЧреЛрдЯреЛ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдХрдореНрдкрд╛рдЗрд▓рд░рд▓рд╛рдИ рдореВрд░реНрдЦ рдмрдирд╛рдЙрди рд╕рдХреНрдЫреБ, рдЬрд╕реНрддреИ рд░рд╛рдореНрд░реЛ рдкреБрд░рд╛рдиреЛ рджрд┐рдирд╣рд░реВрдорд╛ред

Go рдорд╛ рдмрд┐рдЯрдореНрдпрд╛рдк рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛рд╣рд░реВ: рдЬрдВрдЧрд▓реА рдЧрддрд┐рдорд╛ рдЦреЛрдЬреНрдиреБрд╣реЛрд╕реН
Go рдорд╛ рдмрд┐рдЯрдореНрдпрд╛рдк рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛рд╣рд░реВ: рдЬрдВрдЧрд▓реА рдЧрддрд┐рдорд╛ рдЦреЛрдЬреНрдиреБрд╣реЛрд╕реН

рд░, рддрдкрд╛рдИрд▓реЗ рджреЗрдЦреНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ, рдЕрдм рдХрдореНрдкрд╛рдЗрд▓рд░рд▓реЗ рд╣рд╛рдореНрд░реЛ рдкреНрд░рдХрд╛рд░реНрдпрд▓рд╛рдИ рдЦреБрд╕реАрд╕рд╛рде рдЗрдирд▓рд╛рдЗрди рдЧрд░реНрдиреЗрдЫ! рдирддрд┐рдЬрд╛рдХреЛ рд░реВрдкрдорд╛, рд╣рд╛рдореА рд▓рдЧрднрдЧ 2 рдорд╛рдЗрдХреНрд░реЛрд╕реЗрдХреЗрдиреНрдб рдмрдЪрдд рдЧрд░реНрди рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди рдЧрд░реНрдЫреМрдВред рдЦрд░рд╛рдм рдЫреИрди!

Go рдорд╛ рдмрд┐рдЯрдореНрдпрд╛рдк рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛рд╣рд░реВ: рдЬрдВрдЧрд▓реА рдЧрддрд┐рдорд╛ рдЦреЛрдЬреНрдиреБрд╣реЛрд╕реН

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

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

рдареВрд▓рд╛ рдмреБрдЪрд╣рд░реВ

рдареАрдХ рдЫ, рд╣рд╛рдореАрд▓реЗ рд╣рд╛рдореНрд░реЛ рд╕рд╛рдзрд╛рд░рдг рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдмрд╛рдЯ рдХреЗрд╣реА рдкреНрд░рджрд░реНрд╢рди рдирд┐рдЪреЛрдб рдЧрд░реНрди рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдЧрд░реНрдпреМрдВ, рддрд░ рдпреЛ рдирддрд┐рдЬрд╛ рд╣рд╛рд▓рдХреЛ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░рд╕рдБрдЧ рд╕рдореНрднрд╡ рднрдиреНрджрд╛ рдзреЗрд░реИ рдЦрд░рд╛рдм рдЫред

рд╣рд╛рдореАрд▓реЗ рдЧрд░реНрдиреЗ рд╕рдмреИ рдЖрдзрд╛рд░рднреВрдд рдмрд┐рдЯ рдЕрдкрд░реЗрд╢рдирд╣рд░реВ рд╣реБрдиреН, рд░ рд╣рд╛рдореНрд░рд╛ рдкреНрд░реЛрд╕реЗрд╕рд░рд╣рд░реВрд▓реЗ рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ рдзреЗрд░реИ рдХреБрд╢рд▓рддрд╛рдкреВрд░реНрд╡рдХ рдкреНрд░рджрд░реНрд╢рди рдЧрд░реНрдЫрдиреНред рддрд░, рджреБрд░реНрднрд╛рдЧреНрдпрд╡рд╢, рд╣рд╛рдореА рд╣рд╛рдореНрд░реЛ рдкреНрд░реЛрд╕реЗрд╕рд░рд▓рд╛рдИ рдХрд╛рдордХреЛ рдзреЗрд░реИ рд╕рд╛рдиреЛ рдЯреБрдХреНрд░рд╛рд╣рд░реВрд╕рдБрдЧ "рдлрд┐рдб" рдЧрд░реНрдЫреМрдВред рд╣рд╛рдореНрд░рд╛ рдкреНрд░рдХрд╛рд░реНрдпрд╣рд░реВрд▓реЗ рдмрд╛рдЗрдЯ-рджреНрд╡рд╛рд░рд╛-рдмрд╛рдЗрдЯ рдЖрдзрд╛рд░рдорд╛ рд╕рдЮреНрдЪрд╛рд▓рди рдЧрд░реНрджрдЫред рд╣рд╛рдореА UInt8 рд╕реНрд▓рд╛рдЗрд╕рд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ 64-рдмрд╛рдЗрдЯ рдЦрдгреНрдбрд╣рд░реВрд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрди рд╣рд╛рдореНрд░реЛ рдХреЛрдбрд▓рд╛рдИ рд╕рдЬрд┐рд▓реИрд╕рдБрдЧ рдЯреНрд╡реАрдХ рдЧрд░реНрди рд╕рдХреНрдЫреМрдВред

Go рдорд╛ рдмрд┐рдЯрдореНрдпрд╛рдк рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛рд╣рд░реВ: рдЬрдВрдЧрд▓реА рдЧрддрд┐рдорд╛ рдЦреЛрдЬреНрдиреБрд╣реЛрд╕реН

рддрдкрд╛рдИрд▓реЗ рджреЗрдЦреНрди рд╕рдХреНрдиреБрд╣реБрдиреЗ рд░реВрдкрдорд╛, рдпреЛ рд╕рд╛рдиреЛ рдкрд░рд┐рд╡рд░реНрддрдирд▓реЗ рдмреНрдпрд╛рдЪ рд╕рд╛рдЗрдЬрд▓рд╛рдИ рдЖрда рдЧреБрдгрд╛рд▓реЗ рдмрдврд╛рдПрд░ рд╣рд╛рдореНрд░реЛ рдХрд╛рд░реНрдпрдХреНрд░рдорд▓рд╛рдИ рдЖрда рдЧреБрдгрд╛ рдЧрддрд┐ рджрд┐рдпреЛред рд▓рд╛рдн рд▓рд┐рдирд┐рдпрд░ рднрдиреНрди рд╕рдХрд┐рдиреНрдЫред

Go рдорд╛ рдмрд┐рдЯрдореНрдпрд╛рдк рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛рд╣рд░реВ: рдЬрдВрдЧрд▓реА рдЧрддрд┐рдорд╛ рдЦреЛрдЬреНрдиреБрд╣реЛрд╕реН

рдПрд╕реЗрдореНрдмрд▓рд░рдорд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди

Go рдорд╛ рдмрд┐рдЯрдореНрдпрд╛рдк рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛рд╣рд░реВ: рдЬрдВрдЧрд▓реА рдЧрддрд┐рдорд╛ рдЦреЛрдЬреНрдиреБрд╣реЛрд╕реН
рддрд░ рдпреЛ рдЕрдиреНрддреНрдп рд╣реЛрдЗрдиред рд╣рд╛рдореНрд░рд╛ рдкреНрд░реЛрд╕реЗрд╕рд░рд╣рд░реВрд▓реЗ 16, 32 рд░ 64 рдмрд╛рдЗрдЯрдХреЛ рдЯреБрдХреНрд░рд╛рд╣рд░реВрд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрди рд╕рдХреНрдЫрдиреНред рддреНрдпрд╕реНрддрд╛ "рдмреНрд░реЛрдб" рдЕрдкрд░реЗрд╢рдирд╣рд░реВрд▓рд╛рдИ рд╕рд┐рдВрдЧрд▓ рдЗрдиреНрд╕реНрдЯреНрд░рдХреНрд╢рди рдорд▓реНрдЯрд┐рдкрд▓ рдбрд╛рдЯрд╛ (SIMD; рдПрдХ рдирд┐рд░реНрджреЗрд╢рди, рдзреЗрд░реИ рдбрд╛рдЯрд╛) рднрдирд┐рдиреНрдЫ, рд░ рдХреЛрдб рд░реВрдкрд╛рдиреНрддрд░рдг рдЧрд░реНрдиреЗ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЬрд╕рд▓реЗ рддреНрдпрд╕реНрддрд╛ рдЕрдкрд░реЗрд╢рдирд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдЫ рддреНрдпрд╕рд▓рд╛рдИ рднреЗрдХреНрдЯреЛрд░рд╛рдЗрдЬреЗрд╢рди рднрдирд┐рдиреНрдЫред

рджреБрд░реНрднрд╛рдЧреНрдпрд╡рд╢, рдЧреЛ рдХрдореНрдкрд╛рдЗрд▓рд░ рднреЗрдХреНрдЯрд░рд╛рдЗрдЬреЗрд╢рдирдорд╛ рдЙрддреНрдХреГрд╖реНрдЯрдмрд╛рдЯ рдЯрд╛рдврд╛ рдЫред рд╣рд╛рд▓, рдЧреЛ рдХреЛрдб рднреЗрдХреНрдЯреЛрд░рд╛рдЗрдЬ рдЧрд░реНрдиреЗ рдПрдХ рдорд╛рддреНрд░ рддрд░рд┐рдХрд╛ рднрдиреЗрдХреЛ рдЧреЛ рдПрд╕реЗрдореНрдмрд▓рд░ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдореНрдпрд╛рдиреБрдЕрд▓ рд░реВрдкрдорд╛ рдпреА рдЕрдкрд░реЗрд╢рдирд╣рд░реВ рд▓рд┐рдиреБ рд░ рд░рд╛рдЦреНрдиреБ рд╣реЛред

Go рдорд╛ рдмрд┐рдЯрдореНрдпрд╛рдк рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛рд╣рд░реВ: рдЬрдВрдЧрд▓реА рдЧрддрд┐рдорд╛ рдЦреЛрдЬреНрдиреБрд╣реЛрд╕реН

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

рдердк рд░реВрдкрдорд╛, Go рд▓реЗ рдЕрд╕рд╛рдорд╛рдиреНрдп рдпреЛрдЬрдирд╛ 9 рдврд╛рдБрдЪрд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрдЫ, рдЬреБрди рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛ рд╕реНрд╡реАрдХреГрдд AT&T рд░ Intel рдврд╛рдБрдЪрд╛рд╣рд░реВ рднрдиреНрджрд╛ рдлрд░рдХ рдЫред
Go рдорд╛ рдмрд┐рдЯрдореНрдпрд╛рдк рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛рд╣рд░реВ: рдЬрдВрдЧрд▓реА рдЧрддрд┐рдорд╛ рдЦреЛрдЬреНрдиреБрд╣реЛрд╕реН
рдпреЛ рднрдиреНрди рд╕реБрд░рдХреНрд╖рд┐рдд рдЫ рдХрд┐ рд╣рд╛рддрд▓реЗ рдЧреЛ рдПрд╕реЗрдореНрдмрд▓рд░ рд▓реЗрдЦреНрдиреБ рд╕рдмреИрднрдиреНрджрд╛ рд░рдорд╛рдЗрд▓реЛ рд╣реЛрдЗрдиред

рддрд░, рд╕реМрднрд╛рдЧреНрдпрд╡рд╢, рддреНрдпрд╣рд╛рдБ рдкрд╣рд┐рд▓реЗ рдиреИ рджреБрдИ рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп рдЙрдкрдХрд░рдгрд╣рд░реВ рдЫрдиреН рдЬрд╕рд▓реЗ рд╣рд╛рдореАрд▓рд╛рдИ рдЧреЛ рдПрд╕реЗрдореНрдмрд▓рд░ рд▓реЗрдЦреНрди рдорджреНрджрдд рдЧрд░реНрджрдЫ: PeachPy рд░ avoред рджреБрдмреИ рдЙрдкрдпреЛрдЧрд┐рддрд╛рд╣рд░реВрд▓реЗ рдХреНрд░рдорд╢рдГ рдкрд╛рдЗрдерди рд░ рдЧреЛрдорд╛ рд▓реЗрдЦрд┐рдПрдХреЛ рдЙрдЪреНрдЪ-рд╕реНрддрд░ рдХреЛрдбрдмрд╛рдЯ рдЧреЛ рдПрд╕реЗрдореНрдмрд▓рд░ рдЙрддреНрдкрдиреНрди рдЧрд░реНрджрдЫред
Go рдорд╛ рдмрд┐рдЯрдореНрдпрд╛рдк рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛рд╣рд░реВ: рдЬрдВрдЧрд▓реА рдЧрддрд┐рдорд╛ рдЦреЛрдЬреНрдиреБрд╣реЛрд╕реН
рдпреА рдЙрдкрдпреЛрдЧрд┐рддрд╛рд╣рд░реВрд▓реЗ рджрд░реНрддрд╛ рдЖрд╡рдВрдЯрди, рд▓реБрдкрд╣рд░реВ рд▓реЗрдЦреНрдиреЗ рдЬрд╕реНрддрд╛ рдЪреАрдЬрд╣рд░реВрд▓рд╛рдИ рд╕рд░рд▓ рдмрдирд╛рдЙрдБрджрдЫ, рд░ рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛ Go рдорд╛ рдЕрд╕реЗрдВрдмрд▓реА рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдЩрдХреЛ рд╕рдВрд╕рд╛рд░рдорд╛ рдкреНрд░рд╡реЗрд╢ рдЧрд░реНрдиреЗ рдкреНрд░рдХреНрд░рд┐рдпрд╛рд▓рд╛рдИ рд╕рд░рд▓ рдмрдирд╛рдЙрдБрджрдЫред

рд╣рд╛рдореА avo рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗрдЫреМрдВ, рддреНрдпрд╕реИрд▓реЗ рд╣рд╛рдореНрд░рд╛ рдХрд╛рд░реНрдпрдХреНрд░рдорд╣рд░реВ рд▓рдЧрднрдЧ рдирд┐рдпрдорд┐рдд Go рдХрд╛рд░реНрдпрдХреНрд░рдорд╣рд░реВ рд╣реБрдиреЗрдЫрдиреНред
Go рдорд╛ рдмрд┐рдЯрдореНрдпрд╛рдк рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛рд╣рд░реВ: рдЬрдВрдЧрд▓реА рдЧрддрд┐рдорд╛ рдЦреЛрдЬреНрдиреБрд╣реЛрд╕реН
рдпреЛ рдПрдХ avo рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЛ рд╕рд░рд▓ рдЙрджрд╛рд╣рд░рдг рдЬрд╕реНрддреЛ рджреЗрдЦрд┐рдиреНрдЫред рд╣рд╛рдореАрд╕рдБрдЧ рдореБрдЦреНрдп () рдкреНрд░рдХрд╛рд░реНрдп рдЫ, рдЬрд╕рд▓реЗ рдЖрдлреИрдВрдорд╛ Add() рдкреНрд░рдХрд╛рд░реНрдп рдкрд░рд┐рднрд╛рд╖рд┐рдд рдЧрд░реНрджрдЫ, рдЬрд╕рдХреЛ рдЕрд░реНрде рджреБрдИ рдирдореНрдмрд░рд╣рд░реВ рдердкреНрдиреБ рд╣реЛред рдирд╛рдорджреНрд╡рд╛рд░рд╛ рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░рд╣рд░реВ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди рд░ рдирд┐:рд╢реБрд▓реНрдХ рд░ рдЙрдкрдпреБрдХреНрдд рдкреНрд░реЛрд╕реЗрд╕рд░ рджрд░реНрддрд╛рд╣рд░реВ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди рдпрд╣рд╛рдБ рд╕рд╣рд╛рдпрдХ рдХрд╛рд░реНрдпрд╣рд░реВ рдЫрдиреНред ADDQ рдорд╛ рджреЗрдЦрд┐рдП рдЕрдиреБрд╕рд╛рд░ рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░реЛрд╕реЗрд╕рд░ рдЕрдкрд░реЗрд╢рдирдХреЛ рдПрднреЛрдорд╛ рд╕рдореНрдмрдиреНрдзрд┐рдд рдкреНрд░рдХрд╛рд░реНрдп рд╣реБрдиреНрдЫред рдЕрдиреНрддрдорд╛, рд╣рд╛рдореА рдкрд░рд┐рдгрд╛рдорд┐рдд рдорд╛рди рднрдгреНрдбрд╛рд░рдг рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐ рдПрдХ рд╕рд╣рд╛рдпрдХ рдкреНрд░рдХрд╛рд░реНрдп рджреЗрдЦреНрдЫреМрдВред
Go рдорд╛ рдмрд┐рдЯрдореНрдпрд╛рдк рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛рд╣рд░реВ: рдЬрдВрдЧрд▓реА рдЧрддрд┐рдорд╛ рдЦреЛрдЬреНрдиреБрд╣реЛрд╕реН
go generate рд▓рд╛рдИ рдХрд▓ рдЧрд░реЗрд░, рд╣рд╛рдореА avo рдорд╛ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░реНрдиреЗрдЫреМрдВ рд░ рдкрд░рд┐рдгрд╛рдо рд╕реНрд╡рд░реВрдк, рджреБрдИ рдлрд╛рдЗрд▓рд╣рд░реВ рдЙрддреНрдкрдиреНрди рд╣реБрдиреЗрдЫрдиреН:

  • рдЧреЛ рдПрд╕реЗрдореНрдмрд▓рд░рдорд╛ рдирддрд┐рдЬрд╛ рдХреЛрдбрдХреЛ рд╕рд╛рде add.s;
  • stub.go рджреБрдИ рд╕рдВрд╕рд╛рд░рд╣рд░реВ рдЬрдбрд╛рди рдЧрд░реНрди рдкреНрд░рдХрд╛рд░реНрдп рд╣реЗрдбрд░рд╣рд░реВрд╕рдБрдЧ: рдЬрд╛рдиреБрд╣реЛрд╕реН рд░ рдПрд╕реЗрдореНрдмрд▓рд░ред

Go рдорд╛ рдмрд┐рдЯрдореНрдпрд╛рдк рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛рд╣рд░реВ: рдЬрдВрдЧрд▓реА рдЧрддрд┐рдорд╛ рдЦреЛрдЬреНрдиреБрд╣реЛрд╕реН
рдЕрдм рд╣рд╛рдореАрд▓реЗ avo рдХреЗ рдЧрд░реНрдЫ рд░ рдХрд╕рд░реА рд╣реЗрд░реНрдЫреМрдВ, рд╣рд╛рдореНрд░реЛ рдХрд╛рд░реНрдпрд╣рд░реВ рд╣реЗрд░реМрдВред рдореИрд▓реЗ рдкреНрд░рдХрд╛рд░реНрдпрд╣рд░реВрдХреЛ рд╕реНрдХреЗрд▓рд░ рд░ рднреЗрдХреНрдЯрд░ (SIMD) рд╕рдВрд╕реНрдХрд░рдгрд╣рд░реВ рд▓рд╛рдЧреВ рдЧрд░реЗрдВред

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

рджреБрд░реНрднрд╛рдЧреНрдпрд╡рд╢, рд╣рд╛рдореА рдХрдореНрдкрд╛рдЗрд▓рд░рд▓рд╛рдИ рд╡рд┐рдзрд╛рдирд╕рднрд╛ рднрд╛рд╖рд╛рдорд╛ рд▓реЗрдЦрд┐рдПрдХрд╛ рд╣рд╛рдореНрд░рд╛ рдХрд╛рд░реНрдпрд╣рд░реВ рдЗрдирд▓рд╛рдЗрди рдЧрд░реНрди рдмрд╛рдзреНрдп рдкрд╛рд░реНрди рд╕рдХреНрджреИрдиреМрдВред рдЧреЛ рдХрдореНрдкрд╛рдЗрд▓рд░рдорд╛ рд╣рд╛рд▓ рддреНрдпрд╕реНрддреЛ рд╕реБрд╡рд┐рдзрд╛ рдЫреИрди, рдпрджреНрдпрдкрд┐ рддреНрдпрд╣рд╛рдБ рдХреЗрд╣рд┐ рд╕рдордпрдХреЛ рд▓рд╛рдЧрд┐ рдпрд╕рд▓рд╛рдИ рдердкреНрди рдЕрдиреБрд░реЛрдз рдЧрд░рд┐рдПрдХреЛ рдЫред

рддреНрдпрд╕реИрд▓реЗ рд╕рднрд╛рдХреЛ рднрд╛рд╖рд╛рдорд╛ рд╕рд╛рдирд╛рддрд┐рдирд╛ рдХрд╛рд░реНрдпрдмрд╛рдЯ рдлрд╛рдЗрджрд╛ рд▓рд┐рди рдЕрд╕рдореНрднрд╡ рдЫред рд╣рд╛рдореАрд▓реЗ рдпрд╛ рдд рдареВрд▓рд╛ рдкреНрд░рдХрд╛рд░реНрдпрд╣рд░реВ рд▓реЗрдЦреНрдиреБрдкрд░реНрдЫ, рд╡рд╛ рдирдпрд╛рдБ рдЧрдгрд┐рдд/рдмрд┐рдЯреНрд╕ рдкреНрдпрд╛рдХреЗрдЬ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрдкрд░реНрдЫ, рд╡рд╛ рдПрд╕реЗрдореНрдмрд▓рд░ рднрд╛рд╖рд╛рд▓рд╛рдИ рдмрд╛рдЗрдкрд╛рд╕ рдЧрд░реНрдиреБрдкрд░реНрдЫред

рдЕрдм рд╣рд╛рдореНрд░реЛ рдкреНрд░рдХрд╛рд░реНрдпрд╣рд░реВрдХреЛ рднреЗрдХреНрдЯрд░ рд╕рдВрд╕реНрдХрд░рдгрд╣рд░реВ рд╣реЗрд░реМрдВред
Go рдорд╛ рдмрд┐рдЯрдореНрдпрд╛рдк рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛рд╣рд░реВ: рдЬрдВрдЧрд▓реА рдЧрддрд┐рдорд╛ рдЦреЛрдЬреНрдиреБрд╣реЛрд╕реН
рдпрд╕ рдЙрджрд╛рд╣рд░рдгрдХреЛ рд▓рд╛рдЧрд┐, рдореИрд▓реЗ AVX2 рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗ рдирд┐рд░реНрдгрдп рдЧрд░реЗрдВ, рддреНрдпрд╕реИрд▓реЗ рд╣рд╛рдореА 32-рдмрд╛рдЗрдЯ рдЦрдгреНрдбрд╣рд░реВрдорд╛ рд╕рдЮреНрдЪрд╛рд▓рди рдЧрд░реНрдиреЗ рдХрд╛рд░реНрдпрд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗрдЫреМрдВред рдХреЛрдбрдХреЛ рд╕рдВрд░рдЪрдирд╛ рд╕реНрдХреЗрд▓рд░ рд╕рдВрд╕реНрдХрд░рдгрд╕рдБрдЧ рдзреЗрд░реИ рдорд┐рд▓реНрджреЛрдЬреБрд▓реНрджреЛ рдЫ: рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░рд╣рд░реВ рд▓реЛрдб рдЧрд░реНрджреИ, рдирд┐: рд╢реБрд▓реНрдХ рд╕рд╛рдЭрд╛ рджрд░реНрддрд╛рдХреЛ рд▓рд╛рдЧрд┐ рд╕реЛрдзреНрдиреЗ, рдЖрджрд┐ред
Go рдорд╛ рдмрд┐рдЯрдореНрдпрд╛рдк рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛рд╣рд░реВ: рдЬрдВрдЧрд▓реА рдЧрддрд┐рдорд╛ рдЦреЛрдЬреНрдиреБрд╣реЛрд╕реН
рдПрдЙрдЯрд╛ рдирд╡реАрдирддрд╛ рдпреЛ рд╣реЛ рдХрд┐ рдлрд░рд╛рдХрд┐рд▓реЛ рднреЗрдХреНрдЯрд░ рд╕рдЮреНрдЪрд╛рд▓рдирд╣рд░реВрд▓реЗ рд╡рд┐рд╢реЗрд╖ рдлрд░рд╛рдХрд┐рд▓реЛ рджрд░реНрддрд╛рд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрдЫред рейреи-рдмрд╛рдЗрдЯ рдЯреБрдХреНрд░рд╛рд╣рд░реВрдХреЛ рдЕрд╡рд╕реНрдерд╛рдорд╛, рдпреА Y рд╕рдБрдЧ рдЙрдкрд╕рд░реНрдЧ рд▓рдЧрд╛рдЗрдПрдХрд╛ рд░реЗрдЬрд┐рд╕реНрдЯрд░рд╣рд░реВ рд╣реБрдиреНред рдпрд╕реИрд▓реЗ рддрдкрд╛рдИрдВрд▓реЗ рдХреЛрдбрдорд╛ YMM() рдкреНрд░рдХрд╛рд░реНрдп рджреЗрдЦреНрдиреБрд╣реБрдиреНрдЫред рдпрджрд┐ рдореИрд▓реЗ AVX-32 512-рдмрд┐рдЯ рдЦрдгреНрдбрд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рд░рд╣реЗрдХреЛ рдерд┐рдП рднрдиреЗ, рдЙрдкрд╕рд░реНрдЧ Z рд╣реБрдиреЗрдЫред

рджреЛрд╕реНрд░реЛ рдирд╡реАрдирддрд╛ рдпреЛ рд╣реЛ рдХрд┐ рдореИрд▓реЗ рд▓реБрдк рдЕрдирд░реЛрд▓рд┐рдЩ рднрдирд┐рдиреЗ рдЕрдкреНрдЯрд┐рдорд╛рдЗрдЬреЗрд╕рди рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗ рдирд┐рд░реНрдгрдп рдЧрд░реЗрдВ, рдЬрд╕рдХреЛ рдЕрд░реНрде рд▓реВрдкрдХреЛ рд╕реБрд░реБрдорд╛ рдЬрдореНрдк рдЧрд░реНрдиреБ рдЕрдШрд┐ рдореНрдпрд╛рдиреБрдЕрд▓ рд░реВрдкрдорд╛ рдЖрда рд▓реВрдк рдЕрдкрд░реЗрд╢рдирд╣рд░реВ рдЧрд░реНрдиреЗред рдпреЛ рдЕрдкреНрдЯрд┐рдорд╛рдЗрдЬреЗрд╕рдирд▓реЗ рдХреЛрдбрдорд╛ рд╢рд╛рдЦрд╛рд╣рд░реВрдХреЛ рд╕рдВрдЦреНрдпрд╛ рдШрдЯрд╛рдЙрдБрдЫ, рд░ рдЙрдкрд▓рдмреНрдз рдирд┐рдГрд╢реБрд▓реНрдХ рджрд░реНрддрд╛рд╣рд░реВрдХреЛ рд╕рдВрдЦреНрдпрд╛рджреНрд╡рд╛рд░рд╛ рд╕реАрдорд┐рдд рд╣реБрдиреНрдЫред
Go рдорд╛ рдмрд┐рдЯрдореНрдпрд╛рдк рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛рд╣рд░реВ: рдЬрдВрдЧрд▓реА рдЧрддрд┐рдорд╛ рдЦреЛрдЬреНрдиреБрд╣реЛрд╕реН
рдЦреИрд░, рдкреНрд░рджрд░реНрд╢рди рдХреЛ рдмрд╛рд░реЗ рдорд╛ рдХреЗ рд╣реЛ? рдЙрдиреА рд╕реБрдиреНрджрд░ рдЫрд┐рдиреН! рд╣рд╛рдореАрд▓реЗ рдЙрддреНрддрдо рдЧреЛ рд╕рдорд╛рдзрд╛рдирдХреЛ рддреБрд▓рдирд╛рдорд╛ рд▓рдЧрднрдЧ рд╕рд╛рдд рдЧреБрдгрд╛рдХреЛ рдЧрддрд┐ рд╣рд╛рд╕рд┐рд▓ рдЧрд░реНрдпреМрдВред рдкреНрд░рднрд╛рд╡рд╢рд╛рд▓реА, рд╕рд╣реА?
Go рдорд╛ рдмрд┐рдЯрдореНрдпрд╛рдк рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛рд╣рд░реВ: рдЬрдВрдЧрд▓реА рдЧрддрд┐рдорд╛ рдЦреЛрдЬреНрдиреБрд╣реЛрд╕реН
рддрд░ рдкрдирд┐ рдпреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирд▓рд╛рдИ рд╕рдореНрднрд╛рд╡рд┐рдд рд░реВрдкрдорд╛ AVX-512, prefetching рд╡рд╛ JIT (рдорд╛рддреНрд░-рдЗрди-рдЯрд╛рдЗрдо рдХрдореНрдкрд╛рдЗрд▓рд░) рдХреНрд╡реЗрд░реА рдЕрдиреБрд╕реВрдЪрдХрдХреЛ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдЫрд┐рдЯреЛ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫред рддрд░ рдпреЛ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдкрдорд╛ рдПрдХ рдЕрд▓рдЧ рд░рд┐рдкреЛрд░реНрдЯ рдХреЛ рд▓рд╛рдЧреА рдПрдХ рд╡рд┐рд╖рдп рд╣реЛред

рдмрд┐рдЯрдореНрдпрд╛рдк рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛рд╣рд░реВрд╕рдБрдЧ рд╕рдорд╕реНрдпрд╛рд╣рд░реВ

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

рдЙрдЪреНрдЪ рдХрд╛рд░реНрдбрд┐рдирд▓рд┐рдЯреАрдХреЛ рд╕рдорд╕реНрдпрд╛

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

рддрдкрд╛рдИрдВрд▓реЗ рд╕рдмреИрднрдиреНрджрд╛ рд▓реЛрдХрдкреНрд░рд┐рдп рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╣рд░реВрдорд╛ рдЧрд░реНрдЬрди рдмрд┐рдЯрдореНрдпрд╛рдкрд╣рд░реВ рдлреЗрд▓рд╛ рдкрд╛рд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред Go рдХрд╛ рд▓рд╛рдЧрд┐ рддреАрди рднрдиреНрджрд╛ рдмрдвреА рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирд╣рд░реВ рд╕рд╣рд┐рдд, рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдЩ рднрд╛рд╖рд╛рд╣рд░реВрдХреЛ рд╡рд┐рд╕реНрддреГрдд рд╡рд┐рд╡рд┐рдзрддрд╛рдХрд╛ рд▓рд╛рдЧрд┐ рдкрд╣рд┐рд▓реЗ рдиреИ рдареВрд▓реЛ рд╕рдВрдЦреНрдпрд╛рдорд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирд╣рд░реВ рдЫрдиреНред
Go рдорд╛ рдмрд┐рдЯрдореНрдпрд╛рдк рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛рд╣рд░реВ: рдЬрдВрдЧрд▓реА рдЧрддрд┐рдорд╛ рдЦреЛрдЬреНрдиреБрд╣реЛрд╕реН
рдЕрд░реНрдХреЛ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдЬрд╕рд▓реЗ рд╣рд╛рдореАрд▓рд╛рдИ рдЙрдЪреНрдЪ рдХрд╛рд░реНрдбрд┐рдирд▓рд┐рдЯреАрдХреЛ рд╕рд╛рдордирд╛ рдЧрд░реНрди рдорджреНрджрдд рдЧрд░реНрди рд╕рдХреНрдЫ рдмрд┐рдирд┐рдЩ рднрдирд┐рдиреНрдЫред рдХрд▓реНрдкрдирд╛ рдЧрд░реНрдиреБрд╣реЛрд╕реН рдХрд┐ рддрдкрд╛рдИрдВрд╕рдБрдЧ рдПрдХ рд╡реНрдпрдХреНрддрд┐рдХреЛ рдЙрдЪрд╛рдЗ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдЧрд░реНрдиреЗ рдХреНрд╖реЗрддреНрд░ рдЫред рдЙрдЪрд╛рдЗ рдПрдХ рдлреНрд▓реЛрдЯрд┐рдВрдЧ рдмрд┐рдиреНрджреБ рд╕рдВрдЦреНрдпрд╛ рд╣реЛ, рддрд░ рд╣рд╛рдореА рдорд╛рдирд╡рд╣рд░реВрд▓реЗ рдпрд╕рд▓рд╛рдИ рддреНрдпрд╕рд░реА рд╕реЛрдЪреНрджреИрдиреМрдВред рд╣рд╛рдореНрд░реЛ рд▓рд╛рдЧрд┐ рдЙрдЪрд╛рдЗ 185,2 рд╕реЗрдореА рд░ 185,3 рд╕реЗрдореА рдмреАрдЪ рдХреБрдиреИ рднрд┐рдиреНрдирддрд╛ рдЫреИрдиред

рдпреЛ рдмрд╛рд╣рд┐рд░ рдЬрд╛рдиреНрдЫ рдХрд┐ рд╣рд╛рдореА рд╕рдорд╛рди рдорд╛рдирд╣рд░реВрд▓рд╛рдИ 1 рд╕реЗрдиреНрдЯрд┐рдорд┐рдЯрд░ рднрд┐рддреНрд░ рд╕рдореВрд╣рдорд╛ рд╕рдореВрд╣ рдмрдирд╛рдЙрди рд╕рдХреНрдЫреМрдВред

рд░ рдпрджрд┐ рд╣рд╛рдореАрд▓рд╛рдИ рдпреЛ рдкрдирд┐ рдерд╛рд╣рд╛ рдЫ рдХрд┐ рдзреЗрд░реИ рдХрдо рд╡реНрдпрдХреНрддрд┐рд╣рд░реВ 50 рд╕реЗрдиреНрдЯреАрдорд┐рдЯрд░ рднрдиреНрджрд╛ рдХрдо рд░ 250 рд╕реЗрдиреНрдЯрд┐рдорд┐рдЯрд░ рднрдиреНрджрд╛ рдЕрдЧреНрд▓реЛ рдЫрдиреН, рддрдм рд╣рд╛рдореА рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдкрдорд╛ рдЕрд╕реАрдо рдХрд╛рд░реНрдбрд┐рдирд▓рд┐рдЯреА рднрдПрдХреЛ рдлрд┐рд▓реНрдбрд▓рд╛рдИ рд▓рдЧрднрдЧ 200 рдорд╛рдирд╣рд░реВрдХреЛ рдХрд╛рд░реНрдбрд┐рдирд▓рд┐рдЯреА рднрдПрдХреЛ рдлрд┐рд▓реНрдбрдорд╛ рдмрджрд▓реНрди рд╕рдХреНрдЫреМрдВред

рдирд┐рд╕реНрд╕рдиреНрджреЗрд╣, рдЖрд╡рд╢реНрдпрдХ рднрдПрдорд╛, рд╣рд╛рдореА рдкрдЫрд┐ рдердк рдлрд┐рд▓реНрдЯрд░ рдЧрд░реНрди рд╕рдХреНрдЫреМрдВред

рдЙрдЪреНрдЪ рдмреНрдпрд╛рдиреНрдбрд╡рд┐рде рд╕рдорд╕реНрдпрд╛

рдмрд┐рдЯрдореНрдпрд╛рдк рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛рд╣рд░реВрд╕рдБрдЧ рдЕрд░реНрдХреЛ рд╕рдорд╕реНрдпрд╛ рдпреЛ рд╣реЛ рдХрд┐ рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ рдЕрджреНрдпрд╛рд╡рдзрд┐рдХ рдЧрд░реНрди рдзреЗрд░реИ рдорд╣рдБрдЧреЛ рд╣реБрди рд╕рдХреНрдЫред

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

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

рд╕рдорд╕реНрдпрд╛ рд╕рдорд╛рдзрд╛рди рдЧрд░реНрдиреЗ рджреЛрд╕реНрд░реЛ рддрд░рд┐рдХрд╛ рд╕рдВрд╕реНрдХрд░рдг рдЧрд░рд┐рдПрдХреЛ рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБ рд╣реЛред рддрдкрд╛рдИрд▓реЗ рдЦреЛрдЬреНрди рд╡рд╛ рдкрдвреНрдирдХреЛ рд▓рд╛рдЧрд┐ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реБрдиреЗ рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛рдХреЛ рдПрдЙрдЯрд╛ рдкреНрд░рддрд┐рд▓рд┐рдкрд┐, рд░ рддрдкрд╛рдИрд▓реЗ рд▓реЗрдЦреНрди рд╡рд╛ рдЕрджреНрдпрд╛рд╡рдзрд┐рдХ рдЧрд░реНрди рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реБрдиреЗ рдПрдЙрдЯрд╛ рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рд╣реБрди рд╕рдХреНрдЫред рд░ рдПрдХ рдкрдЯрдХ рдирд┐рд╢реНрдЪрд┐рдд рдЕрд╡рдзрд┐рдорд╛ (рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рдкреНрд░рддреНрдпреЗрдХ резрежреж ms рд╡рд╛ 100 ms рдорд╛ рдПрдХ рдкрдЯрдХ) рддрдкрд╛рдИрдВрд▓реЗ рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдЧрд░реНрдиреБрд╣реЛрд╕реН рд░ рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ рд╕реНрд╡реИрдк рдЧрд░реНрдиреБрд╣реЛрд╕реНред рдирд┐рд╕реНрд╕рдиреНрджреЗрд╣, рдпреЛ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗрд╡рд▓ рдорд╛рдорд┐рд▓рд╛рд╣рд░реВрдорд╛ рд▓рд╛рдЧреВ рд╣реБрдиреНрдЫ рдЬрд╣рд╛рдБ рддрдкрд╛рдИрдВрдХреЛ рдПрдкреНрд▓рд┐рдХреЗрд╕рдирд▓реЗ рдереЛрд░реИ рдврд┐рд▓реЛ рдЦреЛрдЬ рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ рд╣реНрдпрд╛рдиреНрдбрд▓ рдЧрд░реНрди рд╕рдХреНрдЫред

рдпреА рджреБрдИ рджреГрд╖реНрдЯрд┐рдХреЛрдгрд╣рд░реВ рдПрдХреИ рд╕рд╛рде рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫ: рддрдкрд╛рдИрдВрд╕рдБрдЧ рдЫрд░реНрд░реЗ рд╕рдВрд╕реНрдХрд░рдг рдЧрд░рд┐рдПрдХреЛ рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ рд╣реБрди рд╕рдХреНрдЫред

рдердк рдЬрдЯрд┐рд▓ рдкреНрд░рд╢реНрдирд╣рд░реВ

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

рд╡рд╛рд╕реНрддрд╡рдорд╛, рдпрджрд┐ рддрдкрд╛рдЗрдБ рдпрд╕рдХреЛ рдмрд╛рд░реЗрдорд╛ рд╕реЛрдЪреНрдиреБрд╣реБрдиреНрдЫ рднрдиреЗ, AND, OR, рдЖрджрд┐ рдЬрд╕реНрддрд╛ рдмрд┐рдЯ рдЕрдкрд░реЗрд╕рдирд╣рд░реВ рдкреНрд░рд╢реНрдирд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдзреЗрд░реИ рдЙрдкрдпреБрдХреНрдд рдЫреИрдирдиреН a la "рдорд▓рд╛рдИ рдкреНрд░рддрд┐ рд░рд╛рдд 200 рджреЗрдЦрд┐ 300 рдбрд▓рд░рд╕рдореНрдо рдХреЛрдард╛ рджрд░рд╣рд░реВ рднрдПрдХрд╛ рд╣реЛрдЯрд▓рд╣рд░реВ рджреЗрдЦрд╛рдЙрдиреБрд╣реЛрд╕реНред"
Go рдорд╛ рдмрд┐рдЯрдореНрдпрд╛рдк рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛рд╣рд░реВ: рдЬрдВрдЧрд▓реА рдЧрддрд┐рдорд╛ рдЦреЛрдЬреНрдиреБрд╣реЛрд╕реН
рдПрдХ рднреЛрд▓реА рд░ рдзреЗрд░реИ рдореВрд░реНрдЦ рд╕рдорд╛рдзрд╛рди рдкреНрд░рддреНрдпреЗрдХ рдбрд▓рд░ рдореВрд▓реНрдпрдХреЛ рд▓рд╛рдЧрд┐ рдирддрд┐рдЬрд╛рд╣рд░реВ рд▓рд┐рдиреБ рд░ рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ рдмрд┐рдЯрд╡рд╛рдЗрдЬ рд╡рд╛ рдЕрдкрд░реЗрд╢рдирдХреЛ рд╕рд╛рде рд╕рдВрдпреЛрдЬрди рдЧрд░реНрдиреБ рд╣реЛред
Go рдорд╛ рдмрд┐рдЯрдореНрдпрд╛рдк рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛рд╣рд░реВ: рдЬрдВрдЧрд▓реА рдЧрддрд┐рдорд╛ рдЦреЛрдЬреНрдиреБрд╣реЛрд╕реН
рдПрдХ рдереЛрд░реИ рд░рд╛рдореНрд░реЛ рд╕рдорд╛рдзрд╛рди рд╕рдореВрд╣ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рдХреЛ рд▓рд╛рдЧреА рд╣реБрдиреЗрдЫред рдЙрджрд╛рд╣рд░рдг рдХреЛ рд▓рд╛рдЧреА, 50 рдбрд▓рд░ рдХреЛ рд╕рдореВрд╣ рдорд╛ред рдпрд╕рд▓реЗ рд╣рд╛рдореНрд░реЛ рдкреНрд░рдХреНрд░рд┐рдпрд╛рд▓рд╛рдИ релреж рдЧреБрдгрд╛рд▓реЗ рдЧрддрд┐ рджрд┐рдиреЗрдЫред

рддрд░ рдпрд╕ рдкреНрд░рдХрд╛рд░рдХреЛ рдЕрдиреБрд░реЛрдзрдХреЛ рд▓рд╛рдЧрд┐ рд╡рд┐рд╢реЗрд╖ рд░реВрдкрдорд╛ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░рд┐рдПрдХреЛ рджреГрд╢реНрдп рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рд╕рдорд╕реНрдпрд╛ рдкрдирд┐ рд╕рдЬрд┐рд▓реИ рд╕рдорд╛рдзрд╛рди рд╣реБрдиреНрдЫред рд╡реИрдЬреНрдЮрд╛рдирд┐рдХ рдХрд╛рдЧрдЬрд╛рддрд╣рд░реВрдорд╛ рдпрд╕рд▓рд╛рдИ рджрд╛рдпрд░рд╛-рдЗрдиреНрдХреЛрдбреЗрдб рдмрд┐рдЯрдореНрдпрд╛рдк рднрдирд┐рдиреНрдЫред
Go рдорд╛ рдмрд┐рдЯрдореНрдпрд╛рдк рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛рд╣рд░реВ: рдЬрдВрдЧрд▓реА рдЧрддрд┐рдорд╛ рдЦреЛрдЬреНрдиреБрд╣реЛрд╕реН
рдпрд╕ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡рдорд╛, рд╣рд╛рдореАрд▓реЗ рдХреЗрд╣реА рдорд╛рди (рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, реирежреж) рдХреЛ рд▓рд╛рдЧрд┐ рдПрдХ рдмрд┐рдЯ рдорд╛рддреНрд░ рд╕реЗрдЯ рдЧрд░реНрджреИрдиреМрдВ, рддрд░ рдпреЛ рдорд╛рди рд░ рд╕рдмреИ рдХреБрд░рд╛ рдЙрдЪреНрдЪ рд╕реЗрдЯ рдЧрд░реНрдЫреМрдВред 200 рд░ рдорд╛рдерд┐ред 200: 300 рд░ рдорд╛рдерд┐рдХреЛ рд▓рд╛рдЧрд┐ рд╕рдорд╛рдиред рд░ рдпрд╕реНрддреИред

рдпреЛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░, рд╣рд╛рдореА рдХреЗрд╡рд▓ рджреБрдИ рдкрдЯрдХ рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ рдЯреНрд░реНрдпрд╛рднрд░ рдЧрд░реЗрд░ рдпрд╕ рдкреНрд░рдХрд╛рд░рдХреЛ рдЦреЛрдЬ рдХреНрд╡реЗрд░реАрдХреЛ рдЬрд╡рд╛рдл рджрд┐рди рд╕рдХреНрдЫреМрдВред рдкрд╣рд┐рд▓реЗ, рд╣рд╛рдореАрд▓реЗ рдХреЛрдард╛рдХреЛ рднрд╛рдбрд╛ рдХрдо рд╡рд╛ $300 рд╣реБрдиреЗ рд╣реЛрдЯрд▓рд╣рд░реВрдХреЛ рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрдиреЗрдЫреМрдВ, рд░ рддреНрдпрд╕рдкрдЫрд┐ рдХреЛрдард╛рдХреЛ рд▓рд╛рдЧрдд рдХрдо рд╡рд╛ $199 рдЫ рднрдиреЗ рд╣рд╛рдореА рддреНрдпрд╕рдмрд╛рдЯ рд╣рдЯрд╛рдЙрдиреЗрдЫреМрдВред рддрдпрд╛рд░ред
Go рдорд╛ рдмрд┐рдЯрдореНрдпрд╛рдк рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛рд╣рд░реВ: рдЬрдВрдЧрд▓реА рдЧрддрд┐рдорд╛ рдЦреЛрдЬреНрдиреБрд╣реЛрд╕реН
рддрдкрд╛рдИрдВ рдЫрдХреНрдХ рдкрд░реНрдиреБрд╣реБрдиреЗрдЫ, рддрд░ рдмрд┐рдЯрдореНрдпрд╛рдк рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛рд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдЬрд┐рдпреЛрдХреНрд╡реЗрд░реАрд╣рд░реВ рдкрдирд┐ рд╕рдореНрднрд╡ рдЫрдиреНред рдЪрд╛рд▓ рднрдиреЗрдХреЛ рдЬреНрдпрд╛рдорд┐рддреАрдп рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБ рд╣реЛ рдЬрд╕рд▓реЗ рддрдкрд╛рдИрдВрдХреЛ рд╕рдордиреНрд╡рдпрд▓рд╛рдИ рдЬреНрдпрд╛рдорд┐рддреАрдп рдЖрдХреГрддрд┐рд╕рдБрдЧ рдШреЗрд░реНрдЫред рдЙрджрд╛рд╣рд░рдг рдХреЛ рд▓рд╛рдЧреА, Google рдмрд╛рдЯ S2ред рдЕрдВрдХрд┐рдд рдЧрд░реНрди рд╕рдХрд┐рдиреЗ рддреАрди рд╡рд╛ рдмрдвреА рдкреНрд░рддрд┐рдЪреНрдЫреЗрджрди рд░реЗрдЦрд╛рд╣рд░реВрдХреЛ рд░реВрдкрдорд╛ рдЪрд┐рддреНрд░рдг рдЧрд░реНрди рд╕рдореНрднрд╡ рд╣реБрдиреБрдкрд░реНрдЫред рдпрд╕ рддрд░рд┐рдХрд╛рд▓реЗ рд╣рд╛рдореА рд╣рд╛рдореНрд░реЛ рдЬрд┐рдпреЛрдХреНрд╡реЗрд░реАрд▓рд╛рдИ рдзреЗрд░реИ рдкреНрд░рд╢реНрдирд╣рд░реВрдорд╛ "рдЕрдиреНрдЧ рдж рдЧреНрдпрд╛рдк" (рдпреА рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рд░реЗрдЦрд╛рд╣рд░реВрд╕рдБрдЧ) рдорд╛ рдмрджрд▓реНрди рд╕рдХреНрдЫреМрдВред

рддрдпрд╛рд░ рд╕рдорд╛рдзрд╛рдирд╣рд░реВ

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

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

рд╕реМрднрд╛рдЧреНрдп рджреЗрдЦрд┐, рддрдкрд╛рдИрдВрд▓рд╛рдИ рдорджреНрджрдд рдЧрд░реНрди рдзреЗрд░реИ рддрдпрд╛рд░ рд╕рдорд╛рдзрд╛рдирд╣рд░реВ рдЫрдиреНред
Go рдорд╛ рдмрд┐рдЯрдореНрдпрд╛рдк рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛рд╣рд░реВ: рдЬрдВрдЧрд▓реА рдЧрддрд┐рдорд╛ рдЦреЛрдЬреНрдиреБрд╣реЛрд╕реН

рдЧрд░реНрдЬрди рдмрд┐рдЯрдореНрдпрд╛рдкрд╣рд░реВ

рдкрд╣рд┐рд▓реЛ, рддреНрдпрд╣рд╛рдБ рдЙрд╣реА рдЧрд░реНрдЬрди рдмрд┐рдЯрдореНрдпрд╛рдк рдкреБрд╕реНрддрдХрд╛рд▓рдп рдЫ рдЬреБрди рдореИрд▓реЗ рдкрд╣рд┐рд▓реЗ рдиреИ рдХреБрд░рд╛ рдЧрд░реЗрдХреЛ рдЫреБред рдпрд╕рд▓реЗ рд╕рдмреИ рдЖрд╡рд╢реНрдпрдХ рдХрдиреНрдЯреЗрдирд░рд╣рд░реВ рд░ рдмрд┐рдЯ рдЕрдкрд░реЗрд╢рдирд╣рд░реВ рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрджрдЫ рдЬреБрди рддрдкрд╛рдИрдВрд▓реЗ рдкреВрд░реНрдг рдмрд┐рдЯрдореНрдпрд╛рдк рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ рдмрдирд╛рдЙрди рдЖрд╡рд╢реНрдпрдХ рдкрд░реНрджрдЫред
Go рдорд╛ рдмрд┐рдЯрдореНрдпрд╛рдк рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛рд╣рд░реВ: рдЬрдВрдЧрд▓реА рдЧрддрд┐рдорд╛ рдЦреЛрдЬреНрдиреБрд╣реЛрд╕реН
рджреБрд░реНрднрд╛рдЧреНрдпрд╡рд╢, рдпрд╕ рд╕рдордпрдорд╛, рдХреБрдиреИ рдкрдирд┐ Go рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирд▓реЗ SIMD рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджреИрди, рдЬрд╕рдХреЛ рдорддрд▓рдм Go рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирд╣рд░реВ C рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирд╣рд░реВ рднрдиреНрджрд╛ рдХрдо рдкреНрд░рджрд░реНрд╢рдирдХрд╛рд░реА рдЫрдиреН, рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐ред

рдкрд┐рд▓реЛрд╕рд╛

рдЕрд░реНрдХреЛ рдЙрддреНрдкрд╛рджрди рдЬрд╕рд▓реЗ рддрдкрд╛рдИрдВрд▓рд╛рдИ рдорджреНрджрдд рдЧрд░реНрди рд╕рдХреНрдЫ Pilosa DBMS, рдЬрд╕рдорд╛, рд╡рд╛рд╕реНрддрд╡рдорд╛, рдХреЗрд╡рд▓ рдмрд┐рдЯрдореНрдпрд╛рдк рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛рд╣рд░реВ рдЫрдиреНред рдпреЛ рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рдирдпрд╛рдБ рд╕рдорд╛рдзрд╛рди рд╣реЛ, рддрд░ рдпрд╕рд▓реЗ рдареВрд▓реЛ рдЧрддрд┐рдорд╛ рдорди рдЬрд┐рддрд┐рд░рд╣реЗрдХреЛ рдЫред
Go рдорд╛ рдмрд┐рдЯрдореНрдпрд╛рдк рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛рд╣рд░реВ: рдЬрдВрдЧрд▓реА рдЧрддрд┐рдорд╛ рдЦреЛрдЬреНрдиреБрд╣реЛрд╕реН
Pilosa рд▓реЗ рдЧрд░реНрдЬрди рдмрд┐рдЯрдореНрдпрд╛рдкрд╣рд░реВ рдЖрдиреНрддрд░рд┐рдХ рд░реВрдкрдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрдЫ рд░ рддрдкрд╛рдИрдВрд▓рд╛рдИ рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗ рдХреНрд╖рдорддрд╛ рджрд┐рдиреНрдЫ, рдореИрд▓реЗ рдорд╛рдерд┐ рдХреБрд░рд╛ рдЧрд░реЗрдХреЛ рд╕рдмреИ рдЪреАрдЬрд╣рд░реВрд▓рд╛рдИ рд╕рд░рд▓ рдмрдирд╛рдЙрдБрдЫ рд░ рд╡реНрдпрд╛рдЦреНрдпрд╛ рдЧрд░реНрджрдЫ: рд╕рдореВрд╣реАрдХрд░рдг, рджрд╛рдпрд░рд╛-рдЗрдиреНрдХреЛрдбреЗрдб рдмрд┐рдЯрдореНрдпрд╛рдкрд╣рд░реВ, рдХреНрд╖реЗрддреНрд░рдХреЛ рдЕрд╡рдзрд╛рд░рдгрд╛, рдЖрджрд┐ред

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

рддреНрдпрд╕ рдкрдЫрд┐, рд╣рд╛рдореА "рдорд╣рдВрдЧрд╛" рдлрд┐рд▓реНрдбрдорд╛ NOT рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдЫреМрдВ, рддреНрдпрд╕рдкрдЫрд┐ рдирддрд┐рдЬрд╛ (рд╡рд╛ AND it) рд▓рд╛рдИ "рдЯреЗрд░реЗрд╕" рдлрд┐рд▓реНрдб рд░ "рд░рд┐рдЬрд░реНрднреЗрд╕рди" рдлрд┐рд▓реНрдбрд╕рдБрдЧ рдХрд╛рдЯреНрдЫреМрдВред рд░ рдЕрдиреНрддрдорд╛, рд╣рд╛рдореА рдЕрдиреНрддрд┐рдо рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрдЫреМрдВред
Go рдорд╛ рдмрд┐рдЯрдореНрдпрд╛рдк рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛рд╣рд░реВ: рдЬрдВрдЧрд▓реА рдЧрддрд┐рдорд╛ рдЦреЛрдЬреНрдиреБрд╣реЛрд╕реН
рдорд▓рд╛рдИ рдЖрд╢рд╛ рдЫ рдХрд┐ рдирд┐рдХрдЯ рднрд╡рд┐рд╖реНрдпрдорд╛ рдпреЛ рдирдпрд╛рдБ рдкреНрд░рдХрд╛рд░рдХреЛ рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ MySQL рд░ PostgreSQL - bitmap indexes рдЬрд╕реНрддрд╛ DBMSs рдорд╛ рдкрдирд┐ рджреЗрдЦрд╛ рдкрд░реНрдиреЗрдЫред
Go рдорд╛ рдмрд┐рдЯрдореНрдпрд╛рдк рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛рд╣рд░реВ: рдЬрдВрдЧрд▓реА рдЧрддрд┐рдорд╛ рдЦреЛрдЬреНрдиреБрд╣реЛрд╕реН

рдирд┐рд╖реНрдХрд░реНрд╖рдорд╛

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

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

рд╣рд╛рдореАрд▓реЗ Go рдХреЛ рд▓рд╛рдЧрд┐ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рджрд░реНрд╢рди рдЪрд╛рд▓рд╣рд░реВ рд╣реЗрд░реЗрдХрд╛ рдЫреМрдВ рд░ рдЪреАрдЬрд╣рд░реВ рдЬреБрди рдЧреЛ рдХрдореНрдкрд╛рдЗрд▓рд░рд▓реЗ рдЕрдЭреИ рд░рд╛рдореНрд░реЛрд╕рдБрдЧ рд╣реНрдпрд╛рдиреНрдбрд▓ рдЧрд░реНрджреИрдиред рддрд░ рдпреЛ рдЬрд╛рдиреНрдирдХреЛ рд▓рд╛рдЧрд┐ рдкреНрд░рддреНрдпреЗрдХ рдЧреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░рдХреЛ рд▓рд╛рдЧрд┐ рдмрд┐рд▓реНрдХреБрд▓ рдЙрдкрдпреЛрдЧреА рдЫред

рдореИрд▓реЗ рддрд┐рдореАрд▓рд╛рдИ рднрдиреНрди рдЪрд╛рд╣реЗрдХреЛ рдпрддрд┐ рдорд╛рддреНрд░ рд╣реЛред рдзрдиреНрдпрд╡рд╛рдж!

рд╕реНрд░реЛрдд: www.habr.com

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