ื”ืฉื•ื•ืื” ื‘ื™ืŸ ื‘ื™ืฆื•ืขื™ ืžื ื”ืœื™ ื”ืชืงืŸ ื‘ืจืฉืช ื‘ื’ืจืกืื•ืช ื‘-10 ืฉืคื•ืช ืชื›ื ื•ืช

ืงื‘ื•ืฆืช ื—ื•ืงืจื™ื ืžืื•ื ื™ื‘ืจืกื™ื˜ืื•ืช ื‘ื’ืจืžื ื™ื” ะพะฟัƒะฑะปะธะบะพะฒะฐะปะฐ ืžืžืฆืื™ื ืœึฐื ึทืกื•ึนืช, ืฉื‘ืžื”ืœื›ืŸ ืคื•ืชื—ื• 10 ื’ืจืกืื•ืช ืฉืœ ืžื ื”ืœ ื”ืชืงืŸ ืกื˜ื ื“ืจื˜ื™ ืขื‘ื•ืจ ื›ืจื˜ื™ืกื™ ืจืฉืช Intel Ixgbe (X10xx) ืฉืœ 5 ื’ื™ื’ื”-ื‘ื™ื˜ ื‘ืฉืคื•ืช ืชื›ื ื•ืช ืฉื•ื ื•ืช. ื”ื“ืจื™ื™ื‘ืจ ืคื•ืขืœ ื‘ืžืจื—ื‘ ื”ืžืฉืชืžืฉ ื•ืžื™ื•ืฉื ื‘-C, Rust, Go, C#, Java, Ocaml, Haskell, Swift, JavaScript ื•-Python. ื‘ืขืช ื›ืชื™ื‘ืช ืงื•ื“, ื”ื”ืชืžืงื“ื•ืช ื”ืขื™ืงืจื™ืช ื”ื™ื™ืชื” ื‘ื”ืฉื’ืช ื”ื‘ื™ืฆื•ืขื™ื ื”ื˜ื•ื‘ื™ื ื‘ื™ื•ืชืจ ื”ืืคืฉืจื™ื™ื, ืชื•ืš ื”ืชื—ืฉื‘ื•ืช ื‘ืžืืคื™ื™ื ื™ื ืฉืœ ื›ืœ ืฉืคื”. ื›ืœ ื”ืืคืฉืจื•ื™ื•ืช ื–ื”ื•ืช ื‘ืคื•ื ืงืฆื™ื•ื ืœื™ื•ืช ื•ืžื•ืจื›ื‘ื•ืช ืžื›-1000 ืฉื•ืจื•ืช ืงื•ื“. ืคื™ืชื•ื—ื™ ืคืจื•ื™ืงื˜ื™ื ื”ืชืคืฉื˜ื•ืช ืชื—ืช ืจื™ืฉื™ื•ืŸ BSD.

ื’ืจืกืช ื”-Rust ืฉืœ ื”ื“ืจื™ื™ื‘ืจ ื”ืชื‘ืจืจื” ื›ืงืจื•ื‘ื” ืžืื•ื“ ื‘ื‘ื™ืฆื•ืขื™ื ืœื“ืจื™ื™ื‘ืจ ื”ื™ื™ื—ื•ืก ื‘ืฉืคืช C. ื‘ืขื•ืžืก ืขื ืฉืœื™ื—ื” ื‘ื•-ื–ืžื ื™ืช ืฉืœ ื‘ืœื•ืงื™ื ืฉืœ 32 ื—ื‘ื™ืœื•ืช, ื”ื“ืจื™ื™ื‘ืจ ืฉืœ Rust ื”ื™ื” ืžืขื˜ ืžืื—ื•ืจ, ืื‘ืœ ื‘ื‘ื“ื™ืงื•ืช ืขื ื™ื•ืชืจ ืž-32 ืžื ื•ืช ืœื‘ืœื•ืง, ื”ืžื”ื™ืจื•ืช ื›ืžืขื˜ ืœื ื”ื™ื™ืชื” ืฉื•ื ื” ืžื”ื“ืจื™ื™ื‘ืจ C ื•ื”ืคื’ื™ืŸ ื‘ื™ืฆื•ืขื™ื ื‘ืจืžืช ืขื™ื‘ื•ื“ ืฉืœ 28 ืžื™ืœื™ื•ืŸ ืžื ื•ืช ืœืฉื ื™ื™ื” ื‘ืฉืจืช ืขื Xeon CPU E3-1230 v2 3.3 GHz.

ื”ืฉื•ื•ืื” ื‘ื™ืŸ ื‘ื™ืฆื•ืขื™ ืžื ื”ืœื™ ื”ืชืงืŸ ื‘ืจืฉืช ื‘ื’ืจืกืื•ืช ื‘-10 ืฉืคื•ืช ืชื›ื ื•ืช

ืืช ื”ื ื™ืฉื” ื”ื‘ืื” ืžื‘ื—ื™ื ืช ื‘ื™ืฆื•ืขื™ื ืชืคืกื• ื ื”ื’ื™ื ื‘ืฉืคื•ืช Go ื•-C#, ืฉื”ืจืื• ืชื•ืฆืื•ืช ืงืจื•ื‘ื•ืช ืœืžื“ื™ (ื“ืจื™ื™ื‘ืจ ื”-Go ื ื™ืฆื— ื‘ืžื‘ื—ื ื™ื ืขื ื‘ืœื•ืงื™ื ืฉืœ ืขื“ 16 ืžื ื•ืช, ื•ื”ื—ืœ ืœื”ืคืกื™ื“ ืžืขื˜ ื‘ื‘ื“ื™ืงื•ืช ืขื ื™ื•ืชืจ ืž-16 ืžื ื•ืช ื‘ื‘ืœื•ืง). ืขื 256 ื—ื‘ื™ืœื•ืช ืœื‘ืœื•ืง, ื‘ื™ืฆื•ืขื™ ื”ืฉื™ื ืฉืœ ื“ืจื™ื™ื‘ืจ ื”-C# ื”ื™ื• ื›-28 ืžื™ืœื™ื•ืŸ ื—ื‘ื™ืœื•ืช ื‘ืฉื ื™ื™ื”, ื•ืžื ื”ืœ ื”ื”ืชืงืŸ ืฉืœ ื”-Go ื”ื™ื” ื›-25 ืžื™ืœื™ื•ืŸ ืžื ื•ืช ื‘ืฉื ื™ื™ื”.

ืœืื—ืจ ืžื›ืŸ, ืขื ืชื•ืฆืื•ืช ืงืจื•ื‘ื•ืช ืœืžื“ื™, ื”ื™ื• ื”ื ื”ื’ื™ื ืขื‘ื•ืจ
Java, Ocaml ื•ื”ืืกืงืœ, ืฉื›ื‘ืจ ื”ื™ื• ื‘ืคื™ื’ื•ืจ ื ื™ื›ืจ ืžืื—ื•ืจื™ ื”ืืคืฉืจื•ื™ื•ืช ืฉื ื—ืฉื‘ื• ื‘ืขื‘ืจ ื•ืœื ื™ื›ืœื• ืœื”ืชื’ื‘ืจ ืขืœ 12 ืžื™ืœื™ื•ืŸ ื”ื—ื‘ื™ืœื•ืช ืœืฉื ื™ื™ื”. ืžื ื”ืœื™ ื”ื”ืชืงืŸ ืฉืœ Swift ื•-JavaScript ื”ืจืื• ืคื™ื’ื•ืจ ื’ื“ื•ืœ ืขื•ื“ ื™ื•ืชืจ, ื›ืฉื”ื ืžืกื•ื’ืœื™ื ืœืขื‘ื“ ื–ืจืžื™ื ื‘ืจืžื” ืฉืœ 5 ืžื™ืœื™ื•ืŸ ื—ื‘ื™ืœื•ืช ื‘ืฉื ื™ื™ื”.

ืืช ื”ื“ื™ืจื•ื’ ื”ืขืœื™ื•ืŸ ื”ืฉืœื™ื ืžื ื”ืœ ื”ื”ืชืงืŸ ืฉืœ Python, ืฉื”ืฆืœื™ื— ืœืขื‘ื“ ืจืง 0.14 ืžื™ืœื™ื•ืŸ ื—ื‘ื™ืœื•ืช ื‘ืฉื ื™ื™ื”. ื”ื™ื™ืฉื•ื ืฉืœ Python ืฉื™ืžืฉ ืœื”ืขืจื›ืช ืžื”ื™ืจื•ืช ื”ืžืชื•ืจื’ืžื ื™ื ืœืœื JIT ื•ืœืœื ืื•ืคื˜ื™ืžื™ื–ืฆื™ื•ืช ืกืคืฆื™ืคื™ื•ืช (ื”ืงื•ื“ ื”ื•ืคืขืœ ื‘ืืžืฆืขื•ืช CPython 3.7 ื•ืœื ื”ื™ื” ืชื•ืื ืœ-PyPy, ืืš ื™ืฉ ืœืฆื™ื™ืŸ ืฉืื•ืคื˜ื™ืžื™ื–ืฆื™ื” ืฉืœ ืžื‘ื ื™ ืื—ืกื•ืŸ ื ืชื•ื ื™ื ื™ื›ื•ืœื” ืœืฉืคืจ ืืช ื”ื‘ื™ืฆื•ืขื™ื ื‘ื›-10 ืคืขืžื™ื. ).

ื‘ื ื•ืกืฃ, ื‘ื•ืฆืขื• ื‘ื“ื™ืงื•ืช ื—ื‘ื™ื•ืŸ ื›ื“ื™ ืœื”ืจืื•ืช ืืช ื™ืขื™ืœื•ืช ื”ื—ืฆื™ืฆื” ื•ืืช ื”ื”ืฉืคืขื” ืฉืœ ืื•ืกืฃ ื”ืืฉืคื”. ื”ื‘ื“ื™ืงื” ืžื“ื“ื” ืืช ื”ื”ืฉื”ื™ื” ืœืื—ืจ ื”ืขื‘ืจืช ื›ืœ ื—ื‘ื™ืœื” ืขืœ ื™ื“ื™ ื”ื ื”ื’ ื‘ื”ืฉื•ื•ืื” ืœื–ืžืŸ ื”ืžื“ื•ื™ืง ืฉื‘ื• ื ืฉืœื—ื”. ื”ืžื•ื‘ื™ืœื™ื ืขื“ื™ื™ืŸ ื”ื™ื• ื ื”ื’ื™ ื”-C ื•ื”-Rust, ืฉืชื•ืฆืื•ืชื™ื”ื ื”ื™ื• ื›ืžืขื˜ ื‘ืœืชื™ ื ื™ืชื ื•ืช ืœื”ื‘ื“ืœื” ืขื‘ื•ืจ ื–ืจื™ืžื” ืฉืœ ืžื™ืœื™ื•ืŸ ื—ื‘ื™ืœื•ืช ื‘ืฉื ื™ื™ื” (ื›-1 ืžื™ืงืจื•ืกื•ืคื˜). ื ื”ื’ ื”-Go ืชืคืงื“ ื”ื™ื˜ื‘, ื”ื™ื” ืจืง โ€‹โ€‹ืžืขื˜ ืžืื—ื•ืจื™ ื”ืžื•ื‘ื™ืœื™ื ื•ื’ื ื ืฉืืจ ื‘ืจืžื” ืฉืœ 20 ืžื™ืงืจื•-ืฉื ื™ื•ืช. ืžื ื”ืœ ื”ื”ืชืงืŸ ืฉืœ C# ื”ืจืื” ืขื™ื›ื•ื‘ื™ื ืฉืœ ื›-20 ยตs.
ื”ืขื™ื›ื•ื‘ื™ื ื”ืืจื•ื›ื™ื ื‘ื™ื•ืชืจ ื”ื•ืฆื’ื• ืขืœ ื™ื“ื™ ืžื ื”ืœื™ ื”ืชืงื ื™ื ืฉืœ JavaScript ื•-Java (ื”ืฉื”ื™ื•ืช ืฉืœ ื™ื•ืชืจ ืž-300 ยตs).

ื”ืฉื•ื•ืื” ื‘ื™ืŸ ื‘ื™ืฆื•ืขื™ ืžื ื”ืœื™ ื”ืชืงืŸ ื‘ืจืฉืช ื‘ื’ืจืกืื•ืช ื‘-10 ืฉืคื•ืช ืชื›ื ื•ืช

ื”ืžื—ืงืจ ื ืขืจืš ื›ื“ื™ ืœื”ืขืจื™ืš ืืช ื”ืืคืฉืจื•ืช ืœืคืชื— ื“ืจื™ื™ื‘ืจื™ื ื•ืจื›ื™ื‘ื™ ืžืขืจื›ืช ื”ืคืขืœื” ื‘ืฉืคื•ืช ื‘ืจืžื” ื’ื‘ื•ื”ื” ื™ื•ืชืจ ืž-C. ื ื›ื•ืŸ ืœืขื›ืฉื™ื•, 39 ืžืชื•ืš 40 ื‘ืขื™ื•ืช ื–ื™ื›ืจื•ืŸ ื‘ืœื™ื ื•ืงืก ืงืฉื•ืจื•ืช ืœืžื ื”ืœื™ ื”ืชืงื ื™ื, ื›ืš ืฉื”ื‘ืขื™ื•ืช ืฉืœ ืฉื™ืžื•ืฉ ื‘ืฉืคื” ืžืื•ื‘ื˜ื—ืช ื™ื•ืชืจ ื•ื”ืขื‘ืจืช ืžื ื”ืœื™ ื”ืชืงื ื™ื ืืœ ืžื—ื•ืฅ ืœืงืจื ืœ ืืœ ืžืจื—ื‘ ื”ืžืฉืชืžืฉ ืœื”ื™ืฉืืจ ืจืœื•ื•ื ื˜ื™ื™ื ื•ื™ืฆืจื ื™ื ื›ื‘ืจ ืžืชื ืกื™ื ื‘ืื•ืคืŸ ืคืขื™ืœ ื‘ื›ื™ื•ื•ืŸ ื–ื” (ืœื“ื•ื’ืžื”, ื’ื•ื’ืœ ืคื™ืชื—ื” ืขืจื™ืžืช TCP ืขื‘ื•ืจ ืžืขืจื›ืช ื”ื”ืคืขืœื” ืคื•ืงืกื™ื” ื‘ืฉืคืช Go, ื—ื‘ืจืช CloudFlare ื ื•ืฆืจ ื™ื™ืฉื•ื ืฉืœ ืคืจื•ื˜ื•ืงื•ืœ QUIC ื‘-Rust, ืืคืœ ื”ืขื‘ื™ืจื” ืืช ืขืจื™ืžืช ื”-TCP ื‘ืžื›ืฉื™ืจื™ื ื ื™ื™ื“ื™ื ืœืžืจื—ื‘ ื”ืžืฉืชืžืฉ).

ื‘ืžื”ืœืš ื”ืขื‘ื•ื“ื”, ื”ื’ื™ืข ืœืžืกืงื ื” ืฉืฉืคืช Rust ื”ื™ื ื”ืžื•ืขืžื“ืช ื”ื˜ื•ื‘ื” ื‘ื™ื•ืชืจ ืœืคื™ืชื•ื— ื ื”ื’ื™ื. ื”ื™ื›ื•ืœื•ืช ืฉืœ Rust ืžื‘ื˜ืœื•ืช ืืช ื”ื‘ืขื™ื•ืช ื”ืงืฉื•ืจื•ืช ืœื ื™ื”ื•ืœ ื–ื™ื›ืจื•ืŸ ื‘ืจืžื” ื ืžื•ื›ื” ื‘ืขืœื•ืช ืฉืœ ื›-2% ืขื“ 10% ืื•ื‘ื“ืŸ ื‘ื™ืฆื•ืขื™ื ื‘ื”ืฉื•ื•ืื” ืœื“ืจื™ื™ื‘ืจื™ื ืฉืœ C. Go ื•-C# ื ื—ืฉื‘ื™ื ืžืชืื™ืžื™ื ื’ื ืœื™ืฆื™ืจืช ืจื›ื™ื‘ื™ ืžืขืจื›ืช ื‘ืžืฆื‘ื™ื ื‘ื”ื ื”ืฉื”ื™ื™ื” ืฉืœ ืชืช ืืœืคื™ื•ืช ื”ืฉื ื™ื™ื” ื”ื ื’ืจืžืช ืžืื™ืกื•ืฃ ืืฉืคื” ืžืงื•ื‘ืœืช.

ืžืงื•ืจ: OpenNet.ru

ื”ื•ืกืคืช ืชื’ื•ื‘ื”