Hacker News

Gweithrediadau Zig – io_uring a Grand Central Dispatch std.Io wedi glanio

Gweithrediadau Zig – io_uring a Grand Central Dispatch std.Io wedi glanio Mae'r archwiliad hwn yn ymchwilio i io_uring, gan archwilio ei arwyddocâd a'i effaith bosibl. Cysyniadau Craidd dan sylw Mae'r cynnwys hwn yn archwilio: Egwyddorion sylfaenol a...

9 min read Via ziglang.org

Mewayz Team

Editorial Team

Hacker News

Mae llyfrgell safonol Zig wedi cyrraedd carreg filltir fawr: mae cefnlenni brodorol io_uring a Grand Central Dispatch (GCD) ar gyfer std.Io wedi glanio'n swyddogol, gan ddod â I/O asyncronaidd platfform-brodorol perfformiad uchel i un o'r ieithoedd rhaglennu system modern mwyaf addawol. Ar gyfer datblygwyr sy'n adeiladu'r seilwaith sy'n pweru llwyfannau busnes cenhedlaeth nesaf — fel y system weithredu 207-modiwl y tu ôl i Mewayz - mae'r datblygiad hwn yn arwydd o gyfnod newydd o effeithlonrwydd a scalability backend.

Beth Yw io_uring a Pam Mae'n Bwysig ar gyfer Cymwysiadau Modern?

Wedi'i gyflwyno yng nghnewyllyn Linux 5.1, mae io_uring yn rhyngwyneb I/O asyncronaidd perfformiad uchel sy'n newid yn sylfaenol sut mae rhaglenni'n rhyngweithio â'r system weithredu. Mae modelau I/O traddodiadol yn gorfodi rhaglenni i wneud galwadau system unigol ar gyfer pob gweithrediad darllen neu ysgrifennu - teithiau crwn drud sy'n rhwystro perfformiad ar raddfa fawr. Mae io_uring yn disodli hwn gyda byffer cylch a rennir rhwng gofod defnyddwyr a'r cnewyllyn, sy'n caniatáu i geisiadau gyflwyno a chwblhau miloedd o weithrediadau I/O gydag ychydig iawn o orbenion.

Mae'r effaith ymarferol yn ddramatig. Mae gweinyddwyr gwe, cronfeydd data, a llwyfannau SaaS sy'n trin miloedd o gysylltiadau cydamserol yn elwa ar unwaith o lai o orbenion CPU a hwyrni is. Ar gyfer platfform sy'n gwasanaethu 138,000 o ddefnyddwyr gweithredol ar draws 207 o fodiwlau gwahanol - pob un yn ysgogi darlleniadau ffeil, ymholiadau cronfa ddata, a cheisiadau rhwydwaith - gall y gwahaniaeth rhwng I/O etifeddol ac io_uring drosi'n uniongyrchol yn welliannau amser ymateb a gostyngiadau mewn costau seilwaith.

"Gellid dadlau mai io_uring yw'r ychwanegiad mwyaf arwyddocaol i Linux I/O mewn degawd. Trwy ddileu gorbenion newid cyd-destun syscalls traddodiadol, mae'n galluogi rhaglenni gofod defnyddiwr i fynd at trwybwn caledwedd crai - newidiwr gêm ar gyfer unrhyw raglen lle mai I/O yw'r dagfa."

Sut Mae Grand Central Dispatch yn Ffitio i Stori Zig std.Io?

Er bod io_uring yn benodol i Linux, mae Grand Central Dispatch (GCD) Apple wedi bod yn brif fframwaith arian cyfred a thasg anfon ar macOS ac iOS ers tro. Mae GCD yn crynhoi rheolaeth edau yn fodel sy'n seiliedig ar giw, gan alluogi'r system weithredu i amserlennu gwaith yn y ffordd orau bosibl ar draws creiddiau CPU sydd ar gael heb i ddatblygwyr reoli pyllau edau â llaw.

Trwy lanio'r ddau gefn o dan y tyniad unedig std.Io, mae tîm Zig wedi cyflawni rhywbeth gwirioneddol anodd: un arwyneb API I/O async sy'n crynhoi cyntefig async brodorol, idiomatig ar lwyfannau Linux ac Apple. Mae hyn yn golygu bod rhaglenni Zig sydd wedi'u hysgrifennu yn erbyn std.Io yn trosoledd io_uring yn awtomatig ar weinyddion Linux a GCD ar beiriannau datblygu macOS - gyda dim canghennu platfform-benodol yng nghod y cymhwysiad.

Beth Yw'r Cyd-destun Hanesyddol Tu ôl i Siwrnai I/O Async Zig?

Mae llwybr Zig i stori gysoni sefydlog wedi bod yn hynod ailadroddol. Roedd fersiynau cynnar o'r iaith yn cynnwys cystrawen arbrofol async/ await a gafodd ei dileu wedyn wrth i'r tîm ailystyried y dyluniad. Yn hytrach nag ymrwymo i fodel concurrency penodol wedi'i bobi i'r gramadeg iaith, dewisodd tîm craidd Zig haen tynnu I/O ar lefel safonol y llyfrgell - un sy'n parhau i fod yn gymaradwy â gwahanol strategaethau ysgutor.

💡 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 →

Mae'r athroniaeth hon yn cyd-fynd ag ethos dylunio ehangach Zig: dim llif rheoli cudd, dyraniad penodol, a mecanweithiau sy'n cyfansoddi'n rhagweladwy. Mae'r rhyngwyneb std.Io yn cynrychioli penllanw blynyddoedd o drafod cymunedol, prototeipio, ac adborth o'r byd go iawn. Mae glanio io_uring a backends GCD yn nodi'r newid o fod yn arbrofol i fod yn barod i gynhyrchu ar gyfer ecosystem async Zig.

Beth yw'r Goblygiadau Ymarferol ar gyfer SaaS a Seilwaith Llwyfan Busnes?

Ar gyfer timau sy'n adeiladu neu'n gwerthuso seilwaith ôl-wyneb ar gyfer llwyfannau SaaS aml-denant, mae gan stori Zig io_uring nifer o oblygiadau pendant:

  • Llai o gostau seilwaith: Mae trwybwn I/O uwch fesul gweinydd yn golygu bod angen llai o beiriannau i drin llwyth cyfatebol, gan effeithio'n uniongyrchol ar wariant cwmwl.
  • Cauni rhagweladwy ar raddfa: Mae model cyflwyno swp io_uring yn llyfnhau pigau hwyrni sy'n gyffredin o dan arian cyfred uchel, gan wella profiad y defnyddiwr ar draws holl fodiwlau platfform.
  • Offer datblygwr traws-lwyfan: Gyda chefnogaeth GCD, gall datblygwyr ar macOS redeg yr un resymeg I/O yn lleol sy'n cael ei defnyddio ar weinyddion cynhyrchu Linux — gan gau bwlch hirsefydlog wrth brofi ffyddlondeb.
  • Dyluniad system sy'n gallu gwrthsefyll y dyfodol: Wrth i io_uring mabwysiad dyfu mewn offer cyfagos (cronfeydd data, dirprwyon, amseroedd rhedeg), mae cymorth brodorol Zig yn ei osod yn dda ar gyfer cyfansoddi gyda'r ecosystem Linux modern ehangach.
  • Diogelwch cof heb gasglu sbwriel: Mae model perchnogaeth Zig yn paru â galluoedd copi sero io_uring ar gyfer rheoli byffer sy'n dileu categorïau cyfan o fygiau sy'n gyffredin mewn cod rhwydwaith lefel systemau.

Pa Tueddiadau y Dylai Datblygwyr eu Gwylio wrth i'r Ecosystem Hon Ddatblygu?

Dechrau yn hytrach na diweddbwynt yw glaniad yr ôl-wynebau hyn. Mae'n werth olrhain sawl datblygiad yn agos. Yn gyntaf, mae ecosystem Zig yn dal i aeddfedu o amgylch tyniadau lefel uwch - bydd gweinyddwyr HTTP, gyrwyr cronfa ddata, a fframweithiau RPC sydd wedi'u hadeiladu ar std.Io yn pennu pa mor gyflym y bydd yr iaith yn symud i bentyrrau cynhyrchu SaaS. Yn ail, mae io_uring ei hun yn parhau i esblygu; mae nodweddion fel byfferau sefydlog, gweithrediadau aml-lun, a pleidlais ochr cnewyllyn yn cynnig gofod ychwanegol perfformiad y gall backend Zig ei amlygu'n gynyddol. Yn drydydd, wrth i amseroedd rhedeg WebAssembly amlygu rhyngwynebau WASI I/O yn gynyddol, mae haen tynnu Zig yn ei osod i dargedu'r amgylchedd hwnnw hefyd, gan alluogi cod systemau ysgrifennu-unwaith-redeg-unrhyw le gwirioneddol.

Ar gyfer llwyfannau sy'n blaenoriaethu effeithlonrwydd gweithredol - fel Mewayz, sy'n cywasgu system weithredu busnes cyfan i danysgrifiad $19-$49/mis - mae'r gwelliannau lefel seilwaith hyn yn cyfuno. Mae pob cynnydd effeithlonrwydd ar haen y system yn trosi i le ar gyfer mwy o nodweddion, mwy o ddefnyddwyr, a gwell elw.

Cwestiynau Cyffredin

A yw io_uring yn ddiogel i'w ddefnyddio mewn amgylcheddau cynhyrchu heddiw?

Ydw. Mae io_uring wedi bod ar gael ers cnewyllyn Linux 5.1 (2019) ac mae bellach yn cael ei ystyried yn sefydlog ar gyfer defnydd cynhyrchu. Mae prosiectau mawr gan gynnwys Redis, RocksDB, a nifer o weinyddion rhwydwaith perfformiad uchel wedi ei fabwysiadu. Mae gweithrediad Zig yn dilyn yr un rhyngwynebau cnewyllyn ac mae'n briodol ar gyfer llwythi gwaith cynhyrchu ar ddosbarthiadau Linux modern sy'n rhedeg cnewyllyn 5.6 neu ddiweddarach ar gyfer cefnogaeth nodwedd lawn.

Oes angen i mi ailysgrifennu cod Zig presennol i ddefnyddio'r backends std.Io newydd?

Nid oes angen unrhyw ailysgrifennu sylweddol. Mae'r rhyngwyneb std.Io wedi'i gynllunio fel haen tynnu sefydlog - bydd cod cymhwysiad a ysgrifennwyd yn ei erbyn yn elwa'n awtomatig o'r io_uring neu backend GCD yn seiliedig ar darged llunio. Mae'r ymdrech fudo sylfaenol yn cynnwys diweddaru i'r fersiwn offer Zig cyfredol sy'n cynnwys yr ôl-wynebau hyn ac addasu unrhyw god a ddefnyddiodd syscalls I/O platfform-benodol yn uniongyrchol yn flaenorol.

Sut mae hyn yn cymharu ag async I/O yn amser rhedeg Rust's Tokio neu Go?

Mae Tokyo ar Linux hefyd yn defnyddio io_uring drwy'r grât tokio-uring, er ei fod yn parhau i fod ar wahân i'r amser rhedeg Tokio rhagosodedig sy'n defnyddio epoll. Mae amser rhedeg Go yn defnyddio ei raglennydd ei hun gydag I/O yn seiliedig ar epoll. Mae ymagwedd Zig yn wahanol yn yr ystyr bod std.Io yn deimlad cydamserol ar lefel API — nid oes cystrawen async/aros — tra'n dal i anfon at y cyntefig async brodorol o dan y cwfl. Mae hyn yn cadw darllenadwyedd ac yn osgoi'r broblem "colored function" sy'n cymhlethu cronfeydd codau async Rust.


P'un a ydych chi'n ddatblygwr sy'n gwerthuso ieithoedd rhaglennu system ar gyfer eich prosiect seilwaith nesaf neu'n berchennog busnes sy'n chwilio am lwyfannau wedi'u hadeiladu ar dechnoleg graddadwy, effeithlon, mae trywydd offer fel Zig yn adlewyrchu symudiad ehangach tuag at ddylunio meddalwedd perfformiad yn gyntaf. Mae Mewayz wedi'i adeiladu ar yr un egwyddor - darparu 207 o fodiwlau busnes integredig i dros 138,000 o ddefnyddwyr am ffracsiwn o'r gost o gydosod offer cyfatebol yn unigol. O CRM a dadansoddeg i ddolen-mewn-bio a chyflwyno cyrsiau, mae'r OS busnes cyfan ar gael gan ddechrau ar $ 19 / mis. Dechreuwch eich treial am ddim yn app.mewayz.com a phrofwch sut olwg sydd ar ddyluniad platfform modern ac effeithlon yn ymarferol.