ΠΠΎΡΠ»Π΅ ΡΠ΅ΡΡΠΈ ΠΌΠ΅ΡΡΡΠ΅Π² ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ ΡΠ΅Π»ΠΈΠ· ΡΠ·ΡΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Go 1.25, ΡΠ°Π·Π²ΠΈΠ²Π°Π΅ΠΌΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠ΅ΠΉ Google ΠΏΡΠΈ ΡΡΠ°ΡΡΠΈΠΈ ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²Π°. Π―Π·ΡΠΊ ΡΠΎΡΠ΅ΡΠ°Π΅Ρ Π²ΡΡΠΎΠΊΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ, ΡΠ²ΠΎΠΉΡΡΠ²Π΅Π½Π½ΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅ΠΌΡΠΌ ΡΠ·ΡΠΊΠ°ΠΌ, Ρ ΡΠ°ΠΊΠΈΠΌΠΈ Π΄ΠΎΡΡΠΎΠΈΠ½ΡΡΠ²Π°ΠΌΠΈ ΡΠΊΡΠΈΠΏΡΠΎΠ²ΡΡ ΡΠ·ΡΠΊΠΎΠ², ΠΊΠ°ΠΊ ΠΏΡΠΎΡΡΠΎΡΠ° Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΠΊΠΎΠ΄Π°, Π²ΡΡΠΎΠΊΠ°Ρ ΡΠΊΠΎΡΠΎΡΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈ Π·Π°ΡΠΈΡΠ° ΠΎΡ ΠΎΡΠΈΠ±ΠΎΠΊ. ΠΠΎΠ΄ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΠ΅ΡΡΡ ΠΏΠΎΠ΄ Π»ΠΈΡΠ΅Π½Π·ΠΈΠ΅ΠΉ BSD.
Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡ Go ΠΎΡΠ½ΠΎΠ²Π°Π½ Π½Π° ΠΏΡΠΈΠ²ΡΡΠ½ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°Ρ ΡΠ·ΡΠΊΠ° Π‘ΠΈ Ρ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΌΠΈ Π·Π°ΠΈΠΌΡΡΠ²ΠΎΠ²Π°Π½ΠΈΡΠΌΠΈ ΠΈΠ· ΡΠ·ΡΠΊΠ° ΠΠ±Π΅ΡΠΎΠ½. Π―Π·ΡΠΊ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π»Π°ΠΊΠΎΠ½ΠΈΡΠ΅Π½, Π½ΠΎ ΠΏΡΠΈ ΡΡΠΎΠΌ ΠΊΠΎΠ΄ Π»Π΅Π³ΠΊΠΎ ΡΠΈΡΠ°Π΅ΡΡΡ ΠΈ Π²ΠΎΡΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅ΡΡΡ. ΠΠΎΠ΄ Π½Π° ΡΠ·ΡΠΊΠ΅ Go ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅ΡΡΡ Π² ΠΎΠ±ΠΎΡΠΎΠ±Π»Π΅Π½Π½ΡΠ΅ Π±ΠΈΠ½Π°ΡΠ½ΡΠ΅ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠ΅ ΡΠ°ΠΉΠ»Ρ, Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠ΅ Π½Π°ΡΠΈΠ²Π½ΠΎ, Π±Π΅Π· ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Ρ (ΠΌΠΎΠ΄ΡΠ»ΠΈ ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΎΡΠ»Π°Π΄ΠΊΠΈ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΡ Π²ΡΡΠ²Π»Π΅Π½ΠΈΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ Π½Π° ΡΡΠ°ΠΏΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΡΡΡΡΡ Π² Π²ΠΈΠ΄Π΅ runtime-ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ²), ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π΄ΠΎΠ±ΠΈΡΡΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ, ΡΠΎΠΏΠΎΡΡΠ°Π²ΠΈΠΌΠΎΠΉ Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°ΠΌΠΈ Π½Π° ΡΠ·ΡΠΊΠ΅ Π‘ΠΈ.
ΠΡΠΎΠ΅ΠΊΡ ΠΈΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΡΡΡ Ρ ΠΎΠ³Π»ΡΠ΄ΠΊΠΎΠΉ Π½Π° ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΡ ΡΠ°Π±ΠΎΡΡ Π½Π° ΠΌΠ½ΠΎΠ³ΠΎΡΠ΄Π΅ΡΠ½ΡΡ ΡΠΈΡΡΠ΅ΠΌΠ°Ρ . ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π½Π° ΡΡΠΎΠ²Π½Π΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠ² ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ ΡΡΠ΅Π΄ΡΡΠ²Π° Π΄Π»Ρ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΡΡ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠΉ ΠΈ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΌΠΈ ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌΠΈ. Π―Π·ΡΠΊ ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠ΅ ΡΡΠ΅Π΄ΡΡΠ²Π° Π·Π°ΡΠΈΡΡ ΠΎΡ Π²ΡΡ ΠΎΠ΄Π° Π·Π° Π³ΡΠ°Π½ΠΈΡΡ Π±ΡΡΠ΅ΡΠ° ΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΠ±ΠΎΡΡΠΈΠΊΠ° ΠΌΡΡΠΎΡΠ°.
Π‘ΡΠ΅Π΄ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² Π½ΠΎΠ²ΠΎΠΌ Π²ΡΠΏΡΡΠΊΠ΅:
- ΠΠΎΠ±Π°Π²Π»Π΅Π½ ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΡΠΉ ΡΠ±ΠΎΡΡΠΈΠΊ ΠΌΡΡΠΎΡΠ° Β«greenteagcΒ», ΡΠ°ΡΡΡΠΈΡΠ°Π½Π½ΡΠΉ Π½Π° ΠΏΠΎΠ²ΡΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΈ ΡΠΊΠ°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΌΠ΅Π»ΠΊΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ². Π ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ , Π² ΠΊΠΎΡΠΎΡΡΡ Π°ΠΊΡΠΈΠ²Π½ΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΡΠ±ΠΎΡΠΊΠ° ΠΌΡΡΠΎΡΠ°, ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ Β«greenteagcΒ» ΠΎΡΠΌΠ΅ΡΠ°Π΅ΡΡΡ ΡΠΎΠΊΡΠ°ΡΠ΅Π½ΠΈΠ΅ Π½Π°ΠΊΠ»Π°Π΄Π½ΡΡ ΡΠ°ΡΡ ΠΎΠ΄ΠΎΠ² Π½Π° ΡΠ±ΠΎΡΠΊΡ ΠΌΡΡΠΎΡΠ° Π½Π° 10β40%.
- ΠΠΎΠ±Π°Π²Π»Π΅Π½Ρ ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΡΠ΅ ΠΏΠ°ΠΊΠ΅ΡΡ encoding/json/v2 ΠΈ encoding/json/jsontext. ΠΠ΅ΡΠ²ΡΠΉ ΠΏΠ°ΠΊΠ΅Ρ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ ΠΏΠ΅ΡΠ΅ΡΠ°Π±ΠΎΡΠ°Π½Π½ΡΡ Π²ΡΡΠΎΠΊΠΎΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΏΠ°ΠΊΠ΅ΡΠ° encoding/json. ΠΡΠΎΡΠΎΠΉ ΠΏΠ°ΠΊΠ΅Ρ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ ΡΡΠ½ΠΊΡΠΈΠΈ Π΄Π»Ρ Π½ΠΈΠ·ΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΠΎΠΉ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ° JSON.
- Π ΡΠΎΡΡΠ°Π² Π²ΠΊΠ»ΡΡΡΠ½ Π½ΠΎΠ²ΡΠΉ ΠΏΠ°ΠΊΠ΅Ρ testing/synctest Π΄Π»Ρ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ°Π·Π½ΡΠΌΠΈ ΠΏΠΎΡΠΎΠΊΠ°ΠΌΠΈ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°.
- Π ΠΊΠΎΠΌΠ°Π½Π΄Π΅ Β«go buildΒ» ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π°ΠΊΡΠΈΠ²ΠΈΡΠΎΠ²Π°Π½Π° ΠΎΠΏΡΠΈΡ Β«-asanΒ», Π²ΡΠΏΠΎΠ»Π½ΡΡΡΠ°Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΡ ΡΡΠ΅ΡΠ΅ΠΊ ΠΏΠ°ΠΌΡΡΠΈ ΠΏΡΠΈ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΠΈ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
- Π ΠΊΠΎΠΌΠ°Π½Π΄Ρ Β«go vetΒ» Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ Π½ΠΎΠ²ΡΠ΅ Π°Π½Π°Π»ΠΈΠ·Π°ΡΠΎΡΡ Β«waitgroupΒ» ΠΈ Β«hostportΒ» Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π½Π΅ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ sync.WaitGroup.Add ΠΈ fmt.Sprintf(Β«%s:%dΒ», host, port).
- ΠΡΠΈ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡ GOMAXPROCS ΡΠ΅ΠΏΠ΅ΡΡ Π½Π΅ ΠΏΡΠΎΡΡΠΎ Π²ΡΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ ΡΠΈΡΠ»ΠΎ Π΄ΠΎΡΡΡΠΏΠ½ΡΡ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΡ CPU, Π½ΠΎ ΠΈ ΡΡΠΈΡΡΠ²Π°ΡΡΡΡ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΠΌΡΠ΅ Π² ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°Ρ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ CPU.
- Π ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ΅ ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΡΠΈΠΊΠ΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ ΠΎΡΠ»Π°Π΄ΠΎΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ Π² ΡΠΎΡΠΌΠ°ΡΠ΅ DWARF5, ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡΠ΅ΠΌ Π±ΠΎΠ»Π΅Π΅ ΠΊΠΎΠΌΠΏΠ°ΠΊΡΠ½ΠΎΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ .
ΠΡΡΠΎΡΠ½ΠΈΠΊ: opennet.ru
