Π ΡΠ΄ΡΠ΅ Linux, Π½Π°ΡΠΈΠ½Π°Ρ Ρ Π²ΡΠΏΡΡΠΊΠ° 5.2, ΠΏΡΠΎΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΡΠΈΠ±ΠΊΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ Π½Π°ΡΡΡΠ΅Π½ΠΈΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ ΡΠ΅Π³ΠΈΡΡΡΠ° AVX ΠΏΡΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ΅ ΠΈΠ· ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° ΡΠΈΠ³Π½Π°Π»Π°, ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΠΌΠΎΠ³ΠΎ ΠΏΡΠΈ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ (page-fault). ΠΡΠΎΠ±Π»Π΅ΠΌΠ° Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ ΠΏΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΡΡ
ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ («-pthread»), Π² ΠΊΠΎΡΠΎΡΡΡ
ΠΈΠΌΠ΅ΡΡΡΡ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ Ρ ΡΠ΅Π³ΠΈΡΡΡΠΎΠΌ AVX, Π² ΡΠ»ΡΡΠ°Π΅ ΡΠ±ΠΎΡΠΊΠΈ ΡΠ΄ΡΠ° Π² GCC 9 (ΠΏΡΠΈ ΡΠ±ΠΎΡΠΊΠ΅ Π² Π±ΠΎΠ»Π΅Π΅ ΡΠ°Π½Π½ΠΈΡ
Π²ΡΠΏΡΡΠΊΠ°Ρ
GCC ΠΎΡΠΈΠ±ΠΊΠ° Π½Π΅ ΠΏΡΠΎΡΠ²Π»ΡΠ΅ΡΡΡ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ GCC 9 ΠΊΡΡΠΈΡΡΠ΅Ρ Π°Π΄ΡΠ΅Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ thread-local Π² ΡΠ΅Π³ΠΈΡΡΡΠ΅, Π° Π±ΠΎΠ»Π΅Π΅ ΡΠ°Π½Π½ΠΈΠ΅ Π²Π΅ΡΡΠΈΠΈ GCC Π·Π°Π³ΡΡΠΆΠ°ΡΡ Π΅Π³ΠΎ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π·).
ΠΡΠΎΠ±Π»Π΅ΠΌΠ° ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΠΏΡΠ΅ΠΆΠ΄Π΅Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΌΡ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Ρ ΠΎΡΠΈΠ±ΠΊΠΎΠΉ ΠΏΠΎΠ²ΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΡ ΠΏΠ°ΠΌΡΡΠΈ. ΠΠ°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π·Π°ΠΌΠ΅ΡΠ½ΡΠΌ ΠΈ ΡΠ°ΡΡΠΎ Π½Π°Π±Π»ΡΠ΄Π°Π΅ΠΌΡΠΌ ΠΏΡΠΎΡΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΎΡΠΈΠ±ΠΊΠΈ ΡΡΠ°Π»ΠΈ ΠΊΡΠ°Ρ
ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΡ
Π½Π° ΡΠ·ΡΠΊΠ΅ Go. ΠΠ·-Π·Π° ΠΎΡΠΌΠ΅ΡΠ΅Π½Π½ΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π° ΡΠ·ΡΠΊΠ΅ Go ΠΏΡΠ΅ΠΆΠ΄Π΅Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ Π·Π°Π²Π΅ΡΡΠ°ΡΡΡΡ, ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, Ρ ΠΎΡΠΈΠ±ΠΊΠ°ΠΌΠΈ «runtime error: invalid memory address or nil pointer dereference», «runtime: unexpected return pc» ΠΈ «segmentation violation». Π ΡΠ΄ΡΠ΅ ΠΎΡΠΈΠ±ΠΊΠ° ΠΏΠΎΠΊΠ° ΠΎΡΡΠ°ΡΡΡΡ Π½Π΅ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½Π½ΠΎΠΉ. Π Π°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ Π² runtime ΡΠ·ΡΠΊΠ° Go ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π΄Π»Ρ Π²ΡΠ±ΠΎΡΠΎΡΠ½ΠΎΠ³ΠΎ ΠΎΠ±Ρ
ΠΎΠ΄Π° ΠΎΡΠΈΠ±ΠΊΠΈ Π½Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ½ΡΡ
ΡΠ΄ΡΠ°Ρ
Linux, ΡΠ΅Π½ΠΎΠΉ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ
Π½Π°ΠΊΠ»Π°Π΄Π½ΡΡ
ΡΠ°ΡΡ
ΠΎΠ΄ΠΎΠ².
ΠΡΡΠΎΡΠ½ΠΈΠΊ: opennet.ru