Rinn sinn eadar-aghaidh le aon-snàthainn C ++ le Rust ioma-snàthainn
Rinn sinn eadar-aghaidh le aon-snàthainn C ++ le Rust ioma-snàthainn Tha an sgrùdadh coileanta seo air eadar-aghaidh a’ tabhann sgrùdadh mionaideach air na prìomh phàirtean aige agus builean nas fharsainge. Prìomh Raointean Fòcas Tha an deasbad stèidhichte air: Prìomh mheacanaig...
Mewayz Team
Editorial Team
Rinn sinn eadar-aghaidh C++ le snàthainn shingilte le meirge ioma-snàithleach
Chan e a-mhàin gu bheil e comasach còd C++ aon-snàthainn a cheangal ri Rust ioma-snàthainn - is e seo aon de na dòighean as practaigeach air siostaman dìleab ùrachadh às aonais ath-sgrìobhadh slàn. Aig Mewayz, dhèilig sinn ris an dearbh dhùbhlan seo nuair a bha sinn a’ sgèileadh an OS gnìomhachais 207-modal againn gus seirbheis a thoirt do luchd-cleachdaidh 138,000, agus dh’ atharraich na toraidhean gu bunaiteach mar a tha sinn a’ smaoineachadh air eadar-obrachalachd shiostaman.
Carson a chuireadh tu eadar-aghaidh C++ le snàthainn shingilte le meirge ioma-snàithichte?
Tha bliadhnaichean de chòd C++ fo dheuchainn blàir aig a’ mhòr-chuid de shiostaman cinneasachaidh. Tha ath-sgrìobhadh a h-uile càil ann an Rust tarraingeach air pàipear, ach tha e a’ toirt a-steach cunnart mòr agus mìosan de ùine innleadaireachd. Is e an dòigh-obrach pragmatach gabhail ris mean air mhean - a’ cuairteachadh loidsig C ++ a th’ ann mar-thà fhad ‘s a tha e a’ luchdachadh eallach obrach trom le airgead gu modail seilbh Rust.
Anns a’ chùis againn, bha prìomh mhodalan loidsig gnìomhachais air a bhith a’ ruith gu earbsach ann an aon-snàthainn C++ airson bhliadhnaichean. Bha iad a’ làimhseachadh giullachd ghnìomhan sreath, gineadh sgrìobhainnean, agus àireamhachadh ionmhais. Ach mar a dh’ fhàs ar bunait luchd-cleachdaidh seachad air 100K, bha feum againn air giullachd dàta co-shìnte, làimhseachadh API aig an aon àm, agus riaghladh stàite co-roinnte sàbhailte. Thug feartan Send agus Sync aig Rust dhuinn geallaidhean co-aimsireil ùine cruinneachaidh dhuinn nach b’ urrainn dha C ++ a thabhann às aonais sgrùdadh làimhe farsaing.
Is e lughdachadh cunnart am prìomh adhbhar brosnachaidh. Bidh thu a’ cumail na tha ag obair, agus bidh thu a’ cur ris na lannan - gun a bhith a’ gambling do bhun-còd gu lèir air imrich is dòcha nach tig gu crìch.
Ciamar a tha Crìochan FFI ag obair dha-rìribh?
Tha an Eadar-aghaidh Gnìomh Cèin (FFI) eadar C++ agus Rust ag obrachadh tro ainmean-sgrìobhte gnìomh a tha co-chosmhail ri C. Bidh blocaichean taobh a-muigh “C” aig Rust a’ nochdadh gnìomhan a dh’ fhaodas C ++ a ghairm gu dìreach, agus a chaochladh. Bidh an dùbhlan èiginneach a’ nochdadh nuair a dh’ fheumas ùine ruith ioma-snàthainn Rust còd C ++ aon-snàthainn a chuir gu sàbhailte.
Dh’fhuasgail sinn seo le bhith a’ cleachdadh ailtireachd sònraichte:
- Gnìomhaire C++ le snàthainn: Thèid a h-uile gairm C++ a chraoladh tro aon snàithlean sònraichte a’ cleachdadh seanail a thèid seachad air teachdaireachd, a’ dèanamh cinnteach nach tèid an caochladair aon-snàithichte a bhriseadh a-riamh.
- Còmhdach drochaid meirge async: Bidh gnìomhan Tokio a’ cur a-steach obair chun neach-tiomnaidh C++ agus
feitheamhtoraidhean tro shianalan aon-dhealbh, a’ cumail taobh Rust gu tur neo-shioncronach. - Stiùireadh puing neo-shoilleir: Tha nithean C++ air am pasgadh ann an structairean Rust a chuireas an gnìomh
Dropairson glanadh cinntiche, a chuireas casg air aodion cuimhne thar crìoch a’ chànain. - Sreathachadh aig a’ chrìch: Tha structaran dàta iom-fhillte air an sreathachadh gu FlatBuffers aig an ìre FFI, a’ seachnadh cruth structar cugallach a’ maidseadh agus a’ comasachadh mean-fhàs neo-eisimeileach air gach taobh.
- Iomallach clisgeadh: Bidh
catch_unwindaig Rust a’ cuairteachadh a h-uile puing inntrigidh FFI gus nach tèid clisgeadh thairis air crìoch a’ chànain, rud a bhiodh na ghiùlan neo-mhìnichte.
Thug am pàtran seo dhuinn trochur ioma-snàthainn Rust le earbsachd loidsig dearbhte C++ - gun a bhith ag ath-sgrìobhadh aon loidhne de na riaghailtean gnìomhachais tùsail.
Dè na duilgheadasan as motha ri sheachnadh?
'S e am mearachd as cunnartaiche a bhith a' gabhail ris gu bheil còd C++ sàbhailte ann an snàithlean nuair nach eil. Bidh staid chruinneil, caochladairean statach, agus fiosan leabharlainn nach eil air ais ag adhbhrachadh rèisean dàta nach urrainn don neach-cruinneachaidh Rust lorg thairis air crìoch FFI. Stad barrantasan sàbhailteachd Rust aig a’ bhloc neo-shàbhailte - tha a h-uile rud a-staigh an urra riut fhèin.
Prìomh shealladh: Tha Rust a’ gealltainn sàbhailteachd cuimhne taobh a-staigh a chòd fhèin, ach an uair a thèid thu tarsainn air crìoch FFI gu C++, sealbhaichidh tu a h-uile duilgheadas sàbhailteachd snàthainn a tha aig C++. Tha an ailtireachd timcheall na crìche sin nas cudromaiche na an còd air gach taobh dhith.
💡 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 →
Is e duilgheadas cumanta eile riaghladh beatha. Cha bhith C ++ nithean a’ gabhail pàirt ann an dearbhadair iasad Rust. Ma dh’ fhàgas Rust iomradh fhad ‘s a tha C ++ fhathast a’ cumail puing, gheibh thu biastagan gun fheum a tha gu brùideil duilich a dhearbhadh. Thug sinn aghaidh air seo le bhith a’ cur an gnìomh semantics seilbh teann: tha nithean C ++ an-còmhnaidh fo shealbh dìreach aon phasgan Rust, agus bidh ruigsinneachd co-roinnte a’ dol tro iomradh stèidhichte air Arc a’ cunntadh air taobh Rust.
A thaobh coileanadh, bidh cus ghairmean FFI a’ cruthachadh cus os cionn atharrachadh co-theacsa agus sreathachadh. Bidh sinn a’ cruinneachadh obrachaidhean far an gabh sin dèanamh, a’ cur ciudha de stuthan obrach chun neach-tiomnaidh C++ seach a bhith a’ dèanamh fiosan tar-chànanan fa leth.
Ciamar a choilean an dòigh-obrach seo ann an cinneasachadh?
An dèidh dhuinn an ailtireachd tar-chinealach a chleachdadh thairis air an àrd-ùrlar againn, thomhais sinn leasachaidhean concrait. Mheudaich iarrtas trochur 3.4x airson modalan a bha roimhe seo air botail air giullachd sreath C ++. Thuit latency earbaill (p99) le 61% a chionn ’s gum b’ urrainn do ùine ruith async Rust iarrtasan neo-eisimeileach a làimhseachadh aig an aon àm fhad ‘s a làimhsich C ++ gnìomhan trom coimpiutaireachd air an t-snàthainn shònraichte aige.
Nas cudromaiche, cha robh bugaichean co-cheangailte ri airgead sam bith againn anns a’ chiad sia mìosan de chinneasachadh. Rinn am pàtran dìon snàithlean e do-dhèanta gu structarail airson còd C ++ a bhith air a ghairm bho ioma-snàithlean, fhad ‘s a chuir siostam seòrsa Rust casg air rèisean dàta air a thaobh den chrìch. Bha seo na leasachadh mòr air an dòigh-obrach a bh’ againn roimhe a thaobh a bhith a’ feuchainn ri snàithlean a chuir ri C ++ le mutexes, a bha air trì tachartasan suidheachadh cinnidh a thoirt gu buil ann an aon chairteal.
Dh’aithris an sgioba innleadaireachd cuideachd air cearcallan itealain nas luaithe. Dh’ fhaodadh feartan ùra a bhith air an togail ann an Rust le làn thaic concurrency, fhad ‘s a lean na modalan C ++ a th’ ann mar-thà a ’ruith gun atharrachadh. Bha an ro-innleachd mean air mhean seo a’ ciallachadh nach robh imrich “big bang” àrd-chunnart againn a-riamh - dìreach leasachadh seasmhach, a ghabhas tomhas.
Ceistean Bitheanta
An urrainn dha Rust leabharlannan aon-snàthainn C++ a ghairm gun atharrachadh?
Tha, ach feumaidh tu dèanamh cinnteach gun tachair a h-uile fios chun leabharlann sin o aon snàthainn. Is e am pàtran àbhaisteach snàithlean neach-tiomnaidh sònraichte a chruthachadh a bhios a’ sreathachadh a h-uile gairm C ++ tro sheanal. Bidh gnìomhan async Rust a’ cur a-steach iarrtasan agus a’ feitheamh ri freagairtean gun a bhith a’ cur bacadh air an ùine ruith ioma-snàthainn. Chan fheum an còd C++ fhèin atharrachadh sam bith - tha an cuingealachadh sàbhailteachd air a chuir an gnìomh gu tur air taobh Rust.
A bheil an os-cionn FFI cudromach gu leòr gus buaidh a thoirt air coileanadh an tagraidh?
Tha glè bheag de chosgaisean aig fiosan FFI fa leth - mar as trice fo 10 nanoseconds airson gairm gnìomh sìmplidh. Ach, cuiridh sreathachadh de structaran dàta iom-fhillte agus sioncronadh snàithlean aig a’ chrìoch suas ma nì thu mìltean de ghlaodhan grinn. Bidh gnìomhachd baidseadh agus cleachdadh chruthan sreathach leth-bhreac leithid FlatBuffers no Cap'n Proto a’ cumail an os cionn glè bheag eadhon aig sgèile.
Am bu chòir dhuinn ar còd-còd C++ ath-sgrìobhadh ann an Rust an àite eadar-aghaidh?
Airson a’ mhòr-chuid de sgiobaidhean, is e eadar-aghaidh mean air mhean an t-slighe as sàbhailte agus as luaithe. Bidh ath-sgrìobhadh slàn a’ toirt a-steach mìosan de chunnart innleadaireachd gun luach sam bith mu choinneamh neach-cleachdaidh gus an tèid a chrìochnachadh. Leigidh eadar-aghaidh leat leasachaidhean a chuir air adhart sa bhad, dearbhadh an dòigh-obrach Rust ann an cinneasachadh, agus imrich mhodalan aon aig aon àm stèidhichte air far a bheil concurrency a’ lìbhrigeadh a ’bhuaidh as motha. Na ath-sgrìobh ach na modalan far a bheil cosgais cumail suas crìoch FFI nas àirde na cosgais ath-sgrìobhaidh.
Aig Mewayz, bidh sinn a’ togail bun-structar a bhios a’ sgèile - an dà chuid gu teicnigeach agus gu obrachail. Bidh an OS gnìomhachais 207-modal againn a ’cuideachadh sgiobaidhean 138,000 a’ ruith sruthan obrach nas buige a ’tòiseachadh aig $ 19 / mìos. Co-dhiù a tha thu a’ stiùireadh phròiseactan, ag obair gu fèin-ghluasadach, no a’ sgèileadh do ghnìomhachas, bidh Mewayz ag atharrachadh a rèir an dòigh sa bheil thu ag obair. Tòisich do dheuchainn an-asgaidh aig app.mewayz.com agus faic dè as urrainn do OS gnìomhachais ùr-nodha a dhèanamh don sgioba agad.
We use cookies to improve your experience and analyze site traffic. Cookie Policy