He pūʻulu o nā mea noiʻi mai nā kulanui Kelemania
ʻO ka mana Rust o ka mea hoʻokele i hoʻololi i kahi kokoke loa i ka hana i ka mea hoʻokele kuhikuhi ma ka ʻōlelo C. Ma lalo o ka ukana me ka hoʻouna like ʻana o nā poloka o 32 mau ʻeke, ua liʻiliʻi ka mea hoʻokele Rust, akā i nā hoʻāʻo me ka ʻoi aku ma mua o 32 mau paʻi i kēlā me kēia poloka, ʻaʻole ʻokoʻa ka wikiwiki mai ka mea hoʻokele C a hōʻike i ka hana ma ke kiʻekiʻe o ka hana 28 miliona. ʻeke i kēlā me kēia kekona ma kahi kikowaena me ka Xeon CPU E3-1230 v2 3.3 GHz.
ʻO ka niche aʻe e pili ana i ka hana i noho ʻia e nā mea hoʻokele ma ka ʻōlelo Go a me C #, i hōʻike i nā hopena kokoke loa (ua lanakila ka mea hoʻokele Go ma nā hoʻokolohua me nā poloka a hiki i 16 mau paʻi, a hoʻomaka e nalo iki i nā hoʻokolohua me nā ʻeke 16 ʻoi aku. i loko o kahi poloka). Me nā ʻeke 256 i kēlā me kēia poloka, ʻo ka hana kiʻekiʻe o ka mea hoʻokele C# ma kahi o 28 miliona mau ʻeke i kēlā me kēia kekona, a ʻo ka mea hoʻokele Go ma kahi o 25 miliona mau ʻeke i kekona.
A laila, me nā hopena kokoke loa, nā mea hoʻokele no
ʻO Java, OCaml a me Haskell, ka mea i ʻike mua ʻia ma hope o nā koho i noʻonoʻo mua ʻia a ʻaʻole hiki ke lanakila i ka 12 miliona mau paʻi i kēlā me kēia pahu kekona. Ua hōʻike nā mea hoʻokele Swift a me JavaScript i kahi lag ʻoi aku ka nui, hiki iā ia ke hoʻoponopono i nā kahawai ma ke kiʻekiʻe o 5 miliona mau ʻeke i kēlā me kēia kekona.
Ua hoʻopau ʻia ka pae kiʻekiʻe e ka mea hoʻokele Python, hiki iā ia ke hana i ka 0.14 miliona mau paʻi i kēlā me kēia kekona. Ua hoʻohana ʻia ka hoʻokō Python e loiloi i ka wikiwiki o nā unuhi ʻōlelo me ka ʻole o JIT a me ka ʻole o nā optimizations kikoʻī (ua hoʻokō ʻia ke code me ka hoʻohana ʻana iā CPython 3.7 a ʻaʻole kūpono me PyPy, akā ʻike ʻia e hiki ke hoʻonui i ka hana ma kahi o 10 mau manawa. ).
Hoʻohui ʻia, ua hana ʻia nā hoʻokolohua latency e hōʻike i ka pono o ka buffering a me ka hopena o ka ʻohi ʻōpala. Ua ana ka ho'āʻo ʻana i ka latency ma hope o ka hoʻouna ʻia ʻana o kēlā me kēia ʻeke e ka mea hoʻokele i hoʻohālikelike ʻia me ka manawa pololei i hoʻouna ʻia ai. ʻO nā alakaʻi ka mea hoʻokele C a me Rust, ʻaʻole hiki ke ʻike ʻia nā hopena no ka holo ʻana o 1 miliona mau ʻeke i kekona (ma kahi o 20 µs). Ua hana maikaʻi ka mea hoʻokele Go, ma hope iki o nā alakaʻi a noho pū i ka pae o 20 µs. Ua hōʻike ka mea hoʻokele C# i nā lohi ma kahi o 50 µs.
Ua hōʻike ʻia nā lohi lōʻihi loa e nā mea hoʻokele JavaScript a me Java (ʻoi aku ka lōʻihi ma mua o 300 µs).
Ua hana ʻia ke aʻo ʻana e loiloi i ka hiki ke hoʻomohala i nā mea hoʻokele a me nā ʻōnaehana ʻōnaehana ma nā ʻōlelo kiʻekiʻe ma mua o C. I kēia manawa, pili ka 39 o 40 mau pilikia hoʻomanaʻo ma Linux i nā mea hoʻokele, no laila nā pilikia o ka hoʻohana ʻana i kahi ʻōlelo paʻa a me ka neʻe ʻana i nā mea hoʻokele i waho o ka kernel a i ka wahi hoʻohana.
I ka wā o ka hana, ua hoʻoholo ʻia ʻo ka ʻōlelo Rust ka moho maikaʻi loa no ka hoʻomohala hoʻokele. Hiki i ka Rust ke hoʻopau i nā pilikia e pili ana i ka hoʻokele hoʻomanaʻo haʻahaʻa haʻahaʻa ma ke kumu kūʻai ma kahi o 2% a 10% ka nalowale o ka hana i hoʻohālikelike ʻia me nā mea hoʻokele C. Manaʻo ʻia ʻo Go a me C# he kūpono no ka hana ʻana i nā ʻāpana ʻōnaehana i nā kūlana i ʻae ʻia ka latency sub-millisecond i kumu ʻia e ka ʻohi ʻōpala.
Source: opennet.ru