Vacuum & Kalen
ΠΡΠΈΠ²Π΅Ρ, ΠΠ°ΠΊΡΡΠΌ. Π― ΡΡΡ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°Ρ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠΉ ΠΌΠΈΡ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΡΠ΅Π±ΡΠ΅Ρ Π·Π°Π΄Π΅ΡΠΆΠΊΠΈ ΠΌΠ΅Π½Π΅Π΅ 20 ΠΌΠΈΠ»Π»ΠΈΡΠ΅ΠΊΡΠ½Π΄ ΠΈ ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ ΠΎΡΡΡΡΡΡΠ²ΠΈΡ Π»Π°Π³ΠΎΠ². ΠΠ°ΠΊ Π±Ρ ΡΡ ΡΡΠΎ ΡΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π», ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ ΡΡΠΈΡΡΠ²Π°Ρ ΡΠΈΡΡΠΎΡΡ ΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΠΎΡΡΡ ΠΊΠΎΠ΄Π°?
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉ ΡΠΎΠ½ΠΊΠΈΠΉ ΠΊΠ»ΠΈΠ΅Π½Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠ±ΡΠ°Π΅ΡΡΡ Ρ Π½Π°Π±ΠΎΡΠΎΠΌ stateless ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΠΎΠ² ΡΠ΅ΡΠ΅Π· WebSockets, ΡΡΠΎΠ±Ρ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ HTTP-ΡΠ°ΡΠ½Π΄ΠΎΠ². Π Π°Π·ΠΌΠ΅ΡΡΠΈ Π»ΠΎΠ³ΠΈΠΊΡ, Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΡΠ²ΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΊ Π·Π°Π΄Π΅ΡΠΆΠΊΠ°ΠΌ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π΅Π½Π½ΠΎΠ΅ ΡΠ°Π·Π±ΠΈΠ΅Π½ΠΈΠ΅, ΡΠΈΠ·ΠΈΠΊΠ° ΠΈ ΡΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ) Π² ΠΊΠ»Π°ΡΡΠ΅ΡΠ΅ GPU-ΡΡΠΊΠΎΡΠ΅Π½Π½ΡΡ
ΡΠ·Π»ΠΎΠ² Π½Π° Π³ΡΠ°Π½ΠΈΡΠ΅ ΡΠ΅ΡΠΈ. ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉ Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΡ, ΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌΡΡ ΡΠΎΠ±ΡΡΠΈΡΠΌΠΈ, ΡΡΠΎΠ±Ρ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ·Π΅Π» ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π» ΡΠΎΠ»ΡΠΊΠΎ ΡΠΎ, ΡΡΠΎ ΠΎΠ½ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ, Π±Π΅Π· ΠΎΠΏΡΠΎΡΠΎΠ². ΠΠ΅Π»Π°ΠΉ ΠΏΠΎΠ»Π΅Π·Π½ΡΡ Π½Π°Π³ΡΡΠ·ΠΊΡ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΠΎΠΉ β ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΡΠΉ Ρ ΠΏΠΎΠΌΠΎΡΡΡ protobuf ΠΈΠ»ΠΈ flatbuffers, Π° ΡΠΆΠΈΠΌΠ°ΠΉ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈ Π½Π΅Ρ
Π²Π°ΡΠΊΠ΅ ΠΏΡΠΎΠΏΡΡΠΊΠ½ΠΎΠΉ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΠΈ.
ΠΠ»Ρ ΡΠΈΡΡΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΡΠ°Π·Π΄Π΅Π»ΡΠΉ ΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎΡΡΠΈ Π½Π° Π½Π΅Π±ΠΎΠ»ΡΡΠΈΠ΅, ΡΠ΅ΡΡΠΈΡΡΠ΅ΠΌΡΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ: ΡΠ΅ΡΠ΅Π²ΠΎΠΉ ΡΠ»ΠΎΠΉ, ΡΠ»ΠΎΠΉ ΡΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ, ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΈΠΉ Π΄Π²ΠΈΠΆΠΎΠΊ ΠΈ UI-ΡΠ»ΠΎΠΉ. Π‘Π»Π΅Π΄ΡΠΉ SOLID, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉ Π²Π½Π΅Π΄ΡΠ΅Π½ΠΈΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ ΠΈ ΠΏΠΈΡΠΈ ΠΌΠΎΠ΄ΡΠ»ΡΠ½ΡΠ΅ ΡΠ΅ΡΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΌΡΠ»ΠΈΡΡΡΡ ΡΠ΅ΡΠ΅Π²ΠΎΠ΅ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅. Π₯ΡΠ°Π½ΠΈ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ΅ΡΠ²ΠΈΡ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΌ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉ ΡΠ΅ΠΌΠ°Π½ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π²Π΅ΡΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅.
ΠΠΎΠ±Π°Π²Ρ ΡΠ»ΠΎΠΉ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³Π° Π² ΡΠ΅Π°Π»ΡΠ½ΠΎΠΌ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π΅Ρ Π·Π°Π΄Π΅ΡΠΆΠΊΡ Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΡΡΠ°ΠΏΠ΅ ΠΈ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΡΠ΅Ρ ΡΠ·Π»Ρ, ΠΊΠΎΠ³Π΄Π° 95-ΠΉ ΠΏΡΠΎΡΠ΅Π½ΡΠΈΠ»Ρ ΠΏΡΠ΅Π²ΡΡΠ°Π΅Ρ 15 ΠΌΠΈΠ»Π»ΠΈΡΠ΅ΠΊΡΠ½Π΄. ΠΡΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡ Π·Π°Π΄Π΅ΡΠΆΠΊΡ ΠΌΠ΅Π½Π΅Π΅ 20 ΠΌΠΈΠ»Π»ΠΈΡΠ΅ΠΊΡΠ½Π΄ Π±Π΅Π· Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎΠΉ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ.
ΠΡΠΎ Π½Π΅ΠΏΠ»ΠΎΡ
ΠΎΠ΅ Π½Π°ΡΠ°Π»ΠΎ, Π½ΠΎ ΡΡΡΠΈ ΡΠΊΡΡΡΡΠ΅ Π·Π°ΡΡΠ°ΡΡ ΠΏΡΠΈ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ GPU-ΡΠ·Π»ΠΎΠ². Π‘Π½Π°ΡΠ°Π»Π° Π·Π°ΠΏΡΡΡΠΈ Π±ΡΡΡΡΡΠΉ proof-of-concept Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ΡΠ΅ΡΠ²Π΅ΡΠ΅, ΡΡΠΎΠ±Ρ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΡΠ΅Π»Π΅Π²ΡΠ΅ 20 ΠΌΠΈΠ»Π»ΠΈΡΠ΅ΠΊΡΠ½Π΄, Π° ΠΏΠΎΡΠΎΠΌ ΡΠΆΠ΅ ΡΠ°Π·Π²ΠΎΡΠ°ΡΠΈΠ²Π°ΠΉ ΠΊΠ»Π°ΡΡΠ΅Ρ. ΠΠ΅ Π·Π°Π±ΡΠ΄Ρ Π·Π°Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°ΡΡ ΡΠΈΠΊΠ» ΡΠΎΠ±ΡΡΠΈΠΉ, ΡΡΠΎΠ±Ρ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ Π·Π°Π²ΠΈΡΠ°Π½ΠΈΠΉ Π½Π° I/O, ΠΈ Π΄ΠΎΠ±Π°Π²Ρ ΠΏΠ»Π°Π²Π½ΡΠΉ ΠΎΡΠΊΠ°Ρ Π½Π° ΡΠ»ΡΡΠ°ΠΉ, Π΅ΡΠ»ΠΈ ΡΠ·Π΅Π» Π²ΡΠΉΠ΄Π΅Ρ ΠΈΠ· ΡΡΡΠΎΡ. ΠΠ°ΠΌ Π½ΡΠΆΠ΅Π½ ΡΡΡΠΊΠΈΠΉ ΠΏΠ»Π°Π½ ΡΠΏΡΠΈΠ½ΡΠΎΠ² β Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π½Π° Π±Π΅Π·Π΄Π΅Π»ΡΠ΅ Π½Π΅Ρ. ΠΠ°Π²Π°ΠΉ Π·Π°ΠΏΠ»Π°Π½ΠΈΡΡΠ΅ΠΌ ΡΠ΅Π²ΡΡ Π½Π° ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ Π½Π΅Π΄Π΅Π»Π΅.