Hacker News

Zig - io_uring na Grand Central Dispatch std.Ni gushyira mubikorwa bigeze

Zig - io_uring na Grand Central Dispatch std.Ni gushyira mubikorwa bigeze Ubu bushakashatsi bwinjiye muri io_uring, gusuzuma akamaro kayo n'ingaruka zishobora kubaho. Amahame yibanze Ibiri muri ubu bushakashatsi: Amahame remezo na ...

6 min read Via ziglang.org

Mewayz Team

Editorial Team

Hacker News

Isomero risanzwe rya Zig rimaze kugera ku ntambwe ikomeye: kavukire io_uring na Grand Central Dispatch (GCD) inyuma yinyuma ya std.Io yamanutse kumugaragaro, izana imikorere-yimikorere ihanitse, platform-kavukire idahwitse I / O murimwe mururimi rwindimi za sisitemu zigezweho. Kubateza imbere kubaka ibikorwa remezo biha imbaraga ibikorwa byubucuruzi bizakurikiraho - nka sisitemu y'imikorere ya 207-module inyuma ya Mewayz - iri terambere ryerekana ibihe bishya byo gukora neza no kwipimisha.

Io_uring ni iki kandi ni ukubera iki ari ngombwa kubisabwa bigezweho?

Yinjijwe muri kernel ya Linux 5.1, io_uring ni imikorere yimikorere idahwitse I / O ihindura muburyo buryo porogaramu zikorana na sisitemu y'imikorere. Imigenzo gakondo ya I / O ihatira porogaramu gukora sisitemu ya buri muntu guhamagarira buri gikorwa cyo gusoma cyangwa kwandika - ingendo zihenze-ingendo zuzuza imikorere ku gipimo. o

Ingaruka ifatika iratangaje. Urubuga seriveri, ububikoshingiro, hamwe na SaaS ikora ibihumbi n'ibihumbi bihuza byunguka ako kanya byunguka kugabanuka kwa CPU hejuru no gutinda hasi. Kuri porogaramu ikorera abakoresha 138.000 bakora muri modul 207 zitandukanye - buri fayili ikurura isoma, ibibazo byububiko, hamwe nibisabwa nurusobe - itandukaniro riri hagati yumurage I / O na io_uring rishobora guhindurwa muburyo bwo gusubiza hamwe no kugabanya ibiciro remezo.

"p

Nigute Kohereza Hagati Nkuru bihuye na Zig std.Ni nkuru?

Mugihe io_uring ari Linux yihariye, Apple ya Grand Central Dispatch (GCD) imaze igihe kinini ikora nkurwego rwo hejuru rwohereza no kohereza imirimo kuri macOS na iOS. GCD ikuramo imicungire yumurongo muburyo bushingiye kumurongo, butuma sisitemu y'imikorere iteganya neza akazi murwego rwibanze rwa CPU hatabayeho abitezimbere gucunga intoki ibizenga.

> Ibi bivuze ko porogaramu Zig yanditse zirwanya std.Io ihita ikoresha io_uring kuri seriveri ya Linux na GCD kumashini ziterambere rya macOS - hamwe na zeru yihariye ishami ryihariye muri kode yo gusaba.

Ni ubuhe butumwa bukubiye mu mateka inyuma ya Zig's Async I / O Urugendo?

Inzira ya Zig kumateka ahamye ya async yabaye iterative. Imiterere yambere yururimi yarimo igeragezwa async / gutegereza syntax yaje gukurwaho nyuma yuko itsinda ryongeye gusuzuma igishushanyo mbonera. Aho kwiyemeza kwerekana icyitegererezo cyihariye cyatetse mu kibonezamvugo cyururimi, itsinda ryibanze rya Zig ryahisemo I / O abstraction layer kurwego rwibitabo bisanzwe - imwe ikomeza guhuzwa ningamba zitandukanye zubuyobozi.

Iyi filozofiya ihuza na Zig yagutse yimyitwarire yagutse: ntagenzura ryihishe, kugabanwa neza, hamwe nuburyo bukoreshwa muburyo buteganijwe. std.Io Imigaragarire yerekana indunduro yimyaka yimpaka zabaturage, prototyping, hamwe nibitekerezo byukuri. Kumanura io_uring na GCD inyuma byerekana impinduka kuva mubigeragezo kugera kumusaruro-witeguye kubidukikije bya Zig's async.

💡 DID YOU KNOW?

Mewayz replaces 8+ business tools in one platform

CRM · Invoicing · HR · Projects · Booking · eCommerce · POS · Analytics. Free forever plan available.

Start Free →

Ni izihe ngaruka zifatika kuri SaaS n'ibikorwa remezo byubucuruzi?

Kubitsinda ryubaka cyangwa gusuzuma ibikorwa remezo byinyuma kubikorwa byinshi bya SaaS bikodeshwa, inkuru ya Zig io_uring ifite ingaruka zifatika:

  • Kugabanya ibiciro remezo: Ijuru rya I / O ryinjira muri seriveri bisobanura imashini nkeya zikenewe kugirango zikore umutwaro uhwanye, bigira ingaruka ku gukoresha ibicu.

        Ni izihe nzira z'ejo hazaza Abashinzwe iterambere bagomba kureba uko iyi ecosystem igenda ihinduka?

        Kumanuka kwinyuma ni intangiriro, ntabwo iherezo. Iterambere ryinshi rikwiye gukurikiranirwa hafi. Ubwa mbere, urusobe rwibinyabuzima rwa Zig ruracyakura hafi yurwego rwohejuru rwo gukuramo - seriveri ya HTTP, abashoferi ba data base, hamwe nuburyo bwa RPC bwubatswe kuri std.Io bizagaragaza uburyo ururimi rwihuta mubikorwa bya SaaS. Icya kabiri, io_uring ubwayo ikomeje guhinduka; ibiranga nka buffers zihamye , ibikorwa byinshi bya multishot , na gutora kuruhande rwa kernel bitanga icyumba cyimikorere cyimbere inyuma ya Zig ishobora kwerekana buhoro buhoro. Icya gatatu, nkuko urubuga rwa WebAssemble rugenda rushyira ahagaragara interineti ya WASI I / O, Zig's abstraction layer irayishyiraho kugirango nayo igere kuri ibyo bidukikije, bigafasha kwandika-rimwe-rimwe-kode ya sisitemu.

        Kurubuga rushyira imbere imikorere ikora - nka Mewayz, igabanya sisitemu yubucuruzi yose mubucuruzi bwamadorari $ 19- $ 49 / ukwezi - ibi bikorwa remezo byo kunoza urwego. Inyungu zose zunguka kuri sisitemu igereranya icyumba cyumutwe kubintu byinshi, abakoresha benshi, hamwe n’imipaka myiza.

        Ibibazo bikunze kubazwa

        Ese io_uring umutekano ikoreshwa mubidukikije byumusaruro uyumunsi?

        Yego. io_uring iraboneka kuva Linux kernel 5.1 (2019) none ifatwa nkigihamye cyo gukoresha umusaruro. Imishinga minini irimo Redis, RocksDB, hamwe na seriveri nyinshi zikora cyane-seriveri yabyemeje. Ishyirwa mu bikorwa rya Zig rikurikiza intera imwe ya kernel kandi irakwiriye kubikorwa byumusaruro kubikorwa bya Linux bigezweho bikoresha kernel 5.6 cyangwa nyuma kugirango ubone ubufasha bwuzuye.

        Nkeneye kwandika kode ya Zig iriho kugirango nkoreshe std nshya.Ni inyuma?

        Nta nyandiko zingenzi zisabwa. std.Io Imigaragarire yateguwe nkigice gihamye cyo gukuramo - kode ya porogaramu yanditse irwanya nayo izahita yungukirwa ninyuma ya io_uring cyangwa GCD ishingiye ku ntego yo gukusanya. Imbaraga zambere zo kwimuka zirimo kuvugurura kuri verisiyo yububiko bwa Zig ikubiyemo iyi inyuma kandi ugahindura code iyo ari yo yose yakoreshaga porogaramu yihariye ya I / O mu buryo butaziguye.

        Nigute ibyo bigereranywa na async I / O muri Tokio ya Rust cyangwa Go mugihe cyayo?

        Tokio kuri Linux nayo ikoresha io_uring ikoresheje isanduku ya tokio-uring , nubwo ikomeza gutandukana nigihe cyambere cya Tokio ikoresha epoll. Genda mugihe gikoresha gahunda yacyo hamwe na epoll ishingiye kuri I / O. Uburyo bwa Zig buratandukanye muri iyo std.Io ni uguhuza-kwiyumvisha kurwego rwa API - nta async / gutegereza syntax - mugihe ikohereza kuri primitique async kavukire munsi ya hood. Ibi birinda gusoma kandi birinda ikibazo "imikorere yamabara" igora codebase ya async Rust.


        Waba uri umuterimbere usuzuma sisitemu yo gutangiza gahunda yumushinga wawe utaha cyangwa nyir'ubucuruzi ushakisha urubuga rwubatswe ku ikorana buhanga, ryagutse, inzira y'ibikoresho nka Zig iragaragaza impinduka nini yerekeza ku mikorere-yambere ya software. Mewayz yubatswe kuri iri hame - gutanga 207 yubucuruzi ihuriweho nabakoresha barenga 138.000 mugice gito cyikiguzi cyo guteranya ibikoresho bihwanye kugiti cyabo. Kuva kuri CRM no gusesengura guhuza-muri-bio no gutanga amasomo, OS yubucuruzi yose iraboneka guhera $ 19 / ukwezi. Tangira igeragezwa ryubuntu kuri app.mewayz.com hanyuma wibonere uko igishushanyo mbonera cya kijyambere, gikora neza mubikorwa.