Indirection musaka min bɛ Rust kɔnɔ | Mewayz Blog Skip to main content
Hacker News

Indirection musaka min bɛ Rust kɔnɔ

Kow fɔcogo

13 min read Via blog.sebastiansastre.co

Mewayz Team

Editorial Team

Hacker News

abstraction sɔngɔ : Indirection faamuyali Rust kɔnɔ

Rust ye kan ye min jɔlen bɛ layidu barikama kan : zeru-cost abstractions. A bɛ sira Di baarakɛlaw ma u ka se ka kode sɛbɛn min bɛ sanfɛ, min lakananen don, ani min bɛ ɲɛfɔli kɛ k’a sɔrɔ u ma baarakɛcogo jalaki sara boli waati la. O hakilina in ye fɛnba ye mun na Rust ka fisa ni sistɛmu porogaramuw ye, k’a ta baarakɛminɛnw na ka se tulonkɛ motɛriw ma. Nka, "indirection" hakilina sigilen bɛ siraba cɛtigɛyɔrɔ la min bɛ mɔgɔ ɲɛnajɛ Rust ka dilancogo la. Hali n’a ka c’a la, a nafa ka bon kosɛbɛ fɛn caman sɛgɛsɛgɛli ni lakana kama, ɲɛmajɔbaliya tɛ musaka zeru ye tuma bɛɛ, wa a baara jugu bɛ se ka Rust tɔgɔ bɔra baara yɛrɛ min na, o tiɲɛ ni makun ye. Plateformes i n’a fɔ Mewayz, n’o ye jago OS modulari ye, yɔrɔ min na, baarakɛcogo ɲuman ni nafolo baaracogo min bɛ se ka fɔ ka ɲɛ, o de ka bon kosɛbɛ, o musaka in faamuyali tɛ kalanko ye—a nafa ka bon jagokɛcogo hakilitigi barikama jɔli la, min bɛ se ka sɛgɛsɛgɛ.

Indirection ye mun ye ani mun na an mago bɛ a la ?

Indirection ye porogaramu fɛɛrɛ ye min na i bɛ fɛn dɔ Lase i ma k'a ɲɛsin a ma , nka i bɛ tɛmɛn cɛmancɛ-layɛrɛ dɔ fɛ . Rust kɔnɔ, a cogoya minnu ka ca kosɛbɛ olu ye taamasiyɛnw ye, fɛnw jiralanw, jogofɛnw, ani taamasiyɛn hakilitigiw i n’a fɔ `Box`, `Rc`, walima `Arc`. O baarakɛminɛnw nafa ka bon kosɛbɛ. U bɛ kɛ sababu ye ka kɛwale fangamaw, kuluw tilatilali, tigiya jɛlen, ani caman-caman-kɛcogo. Misali la, `Vec>` b’a to i bɛ suguya wɛrɛw lajɛlen mara minnu bɛɛ bɛ `Draw` jogo waleya, o ye misali ye min bɛ kɛ UI sitɛmuw walima plugin architectures kɔnɔ. Ni indirection tun tɛ, ka kode flexible, modulaire sɛbɛnni tun bɛna gɛlɛya kosɛbɛ.

"Abstraction ye gɛlɛya dogo seko ye, wa indirection ye a baarakɛminɛn fɔlɔ ye. Rust kɔnɔ, gɛlɛya ye ka nin baarakɛminɛn in kɛ k'a sɔrɔ a ma a to abstraction musaka ka kɛ runtime tax ye."

baarakɛcogo dogolenw ka takasi

k’a sɔrɔ abstraction ka teli ka kɛ "zero-cost" ye i se ka min sɛbɛn bolo la , o siratigɛ la , indirection yɛrɛ bɛ fɛn yetaw don a kɔnɔ . O musaka in bɛ ye yɔrɔ koloma caman na :

  • Hakilila sɔrɔli (Cache Misses): Ka tugu taamasiyɛn dɔ kɔ, o bɛ panni de wajibiya ka taa hakilijagabɔ ladɛrɛsi wɛrɛ la. O bɛ se ka se sɔrɔ CPU ka cache prefetching kan, o bɛ na ni kalanw ye minnu ka surun kosɛbɛ ni i y’a suma ni kunnafonidilanw ye minnu bɛ ɲɔgɔn kan, minnu bɛ ɲɔgɔn kan.
  • Dynamic Dispatch : Trait fɛnw (`dyn Trait`) bɛ baara kɛ ni tabali virtuel (vtables) ye walasa ka fɛɛrɛ weleli ɲɛnabɔ boli waati. O bɛ sanfɛla fitinin dɔ fara pointeur ɲinini kan ani ka compiler inlining bali, o bɛ se ka kɛ optimisation killerba ye hot loops kama.
  • Kulu tilatilali : Sugu minnu bɛ i n’a fɔ `Box` olu bɛ kulu tilatilali jira , o min bɛ teliya ka tɛmɛ kulu tilatilali kan siɲɛ caman ani ka degun fara jatebɔlan kan .
  • Cɛkɛ minnu bɛ ɲɛsin siratigɛ la : Labɛnbaliya layini caman (misali la, `Box` min kɔnɔ `Rc` bɛ sɔrɔ ka taa struct dɔ la ni `Vec` ye jogofɛnw na) bɛ o musakaw fara ɲɔgɔn kan, ka kunnafonidilanw sɔrɔ siraw kɛ dɔɔnin dɔɔnin ani minnu tɛ se ka fɔ ka ɲɛ.

Jagokɛla ka OS kɔnɔ i n’a fɔ Mewayz, yɔrɔ min na moduluw mago bɛ kunnafonidilanw baara la, ka baarakɛcogo ɲɛnabɔ, ani ka ko kɛlenw jaabi ni latɛmɛni dɔgɔman ye, o musaka fitininw bɛ se ka fara ɲɔgɔn kan ka kɛ makɔrɔ-nivo lag ye, ka nɔ bila fɛn bɛɛ la k’a ta rapɔɔri bɔli la ka se dashboard kurayali ma waati yɛrɛ la.

Fɛɛrɛ minnu bɛ kɛ ka fɛnw nɔgɔya i ka kodɔn kɔnɔ

Laɲini tɛ ka ɲɛsinbaliya ban — o tɛ se ka kɛ, wa a man ɲi fana — nka k’a waleya ni hakilitigiya ye. Fɛɛrɛ jɔnjɔnw filɛ nin ye :

Fɔlɔ , aw ka jenɛrikiw ka fisa ni jogofɛnw ye ni a bɛ se ka kɛ . Jɛnɛriw bɛ baara kɛ ni monomorphisation ye, ka kode danfaralen, optimisé dabɔ bɛton suguya kelen-kelen bɛɛ kama compile waati la. O bɛ static dispatch mara ani ka inlining kɛ sababu ye. Filanan, ka kunnafonidilanw minɛ. Donanw mara kuluw kɔnɔ minnu bɛ tugu ɲɔgɔn na, minnu bɛ se ka kɛ cache-friendly (`Vec`) sanni ka kɛsu dalajɛlenw siri ɲɔgɔn na. Donanw baara kuluw kɔnɔ, a kana kɛ weleli virtuel cakɛdaw fɛ. Sabanan, profil (profil) k’a sɔrɔ a ma dabila. Baara kɛ ni baarakɛminɛnw ye i n’a fɔ `cargo flamegraph` walasa k’a dɔn ni ɲɛsinbaliya ye buteli yɛrɛ ye; tuma caman na , musaka tɛ jate fo n' a bɛ sira gɛlɛn dɔ kan .

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

Lean Modular System jɔli ni Mewayz ye

Nin ​​faamuyali numan in musaka ni fɛn caman sɛgɛsɛgɛli bɛ kunnafoni di tigitigi plateforme dɔ jɔcogo kan i n' a fɔ Mewayz . Ni u bɛ modulu dɔ dilan Mewayz OS kama, dusu bɛ don baarakɛlaw kɔnɔ u ka baara kɛ ni jenɛrikiw ni cikanw ye minnu tɛ jɔ, ka ɲɛsin fɛnw ma minnu bɛ se ka kɛ fɛn kolomaw ye, minnu bɛ se ka baara kɛ—i n’a fɔ kunnafonidilanw jiginni pipelines walima jatebɔ motɛriw. O waati kelen na, jogofɛnw ni doni fangama bɛ to dafalen ye sanfɛ-dakunw na, baarakɛlaw bɛ se ka minnu bonya, yɔrɔ minnu na, fɛnɲɛnɛma-ko ye wajibi fɔlɔ ye. Ni u ye sugandili kɛ ni laɲini ye indirection ko la, Mewayz moduluw bɛ se ka abstraction barikamaw lase jagokɛlaw mago bɛ minnu na k’a sɔrɔ u ma saraka kɛ baarakɛcogo latigɛlen na, u bɛ u jigi da min kan. O kɔlɔlɔ ye jago OS modulari ye min bɛ teliya ani min bɛ baara kɛ a yɛrɛ la, yɔrɔ min na abstraction musaka ye wari bilali ye min bɛ kɛ ni hakili ye tuma bɛɛ, a tɛ kɛ sara dogolen ye.

Ɲininkali minnu bɛ kɛ tuma caman na

abstraction sɔngɔ : Indirection faamuyali Rust kɔnɔ

Rust ye kan ye min jɔlen bɛ layidu barikama kan : zeru-cost abstractions. A bɛ sira Di baarakɛlaw ma u ka se ka kode sɛbɛn min bɛ sanfɛ, min lakananen don, ani min bɛ ɲɛfɔli kɛ k’a sɔrɔ u ma baarakɛcogo jalaki sara boli waati la. O hakilina in ye fɛnba ye mun na Rust ka fisa ni sistɛmu porogaramuw ye, k’a ta baarakɛminɛnw na ka se tulonkɛ motɛriw ma. Nka, "indirection" hakilina sigilen bɛ siraba cɛtigɛyɔrɔ la min bɛ mɔgɔ ɲɛnajɛ Rust ka dilancogo la. Hali n’a ka c’a la, a nafa ka bon kosɛbɛ fɛn caman sɛgɛsɛgɛli ni lakana kama, ɲɛmajɔbaliya tɛ musaka zeru ye tuma bɛɛ, wa a baara jugu bɛ se ka Rust tɔgɔ bɔra baara yɛrɛ min na, o tiɲɛ ni makun ye. Plateformes i n’a fɔ Mewayz, n’o ye jago OS modulari ye, yɔrɔ min na, baarakɛcogo ɲuman ni nafolo baaracogo min bɛ se ka fɔ ka ɲɛ, o de ka bon kosɛbɛ, o musaka in faamuyali tɛ kalanko ye—a nafa ka bon jagokɛlaw ka hakilina barikamaw jɔli la, minnu bɛ se ka sɛgɛsɛgɛ.

Indirection ye mun ye ani mun na an mago bɛ a la ?

Indirection ye porogaramu fɛɛrɛ ye min na i bɛ fɛn dɔ Lase i ma k'a ɲɛsin a ma , nka i bɛ tɛmɛn cɛmancɛ-layɛrɛ dɔ fɛ . Rust kɔnɔ, a cogoya minnu ka ca kosɛbɛ olu ye taamasiyɛnw ye, fɛnw jiralanw, jogofɛnw, ani taamasiyɛn hakilitigiw i n’a fɔ `Box`, `Rc`, walima `Arc`. O baarakɛminɛnw nafa ka bon kosɛbɛ. U bɛ kɛ sababu ye ka kɛwale fangamaw, kuluw tilatilali, tigiya jɛlen, ani caman-caman-kɛcogo. Misali la, `Vec` b’a to i bɛ suguya wɛrɛw lajɛlen dɔ mara minnu bɛɛ bɛ `Draw` jogo waleya, o ye misali ye min bɛ kɛ UI sitɛmuw walima plugin architectures kɔnɔ. Ni indirection tun tɛ, ka kode flexible, modulaire sɛbɛnni tun bɛna gɛlɛya kosɛbɛ.

baarakɛcogo dogolenw ka takasi

k'a sɔrɔ abstraction ka teli ka kɛ "zero-cost" ye i tun bɛ se ka min sɛbɛn bolo la, indirection yɛrɛ bɛ tangible overhead don a kɔnɔ. O musaka in bɛ ye yɔrɔ koloma caman na :

Fɛɛrɛ minnu bɛ kɛ ka fɛnw nɔgɔya i ka kodɔn kɔnɔ

Laɲini tɛ ka ɲɛsinbaliya ban—o tɛ se ka kɛ, wa a man ɲi fana—nka k’a waleya ni hakilitigiya ye. Fɛɛrɛ jɔnjɔnw filɛ nin ye :

Lean Modular System jɔli ni Mewayz ye

Nin faamuyali numan in musaka ni fɛn caman sɛgɛsɛgɛli bɛ kunnafoni di tigitigi plateforme dɔ jɔcogo kan i n' a fɔ Mewayz . Ni u bɛ modulu dɔ dilan Mewayz OS kama, dusu bɛ don baarakɛlaw kɔnɔ u ka baara kɛ ni jenɛriki ni cikan jɔlen ye walasa ka fɛn kolomaw, baarakɛcogo jateminɛlenw kɛ—i n’a fɔ kunnafonidilanw jiginni pipelines walima jatebɔ motɛriw. O waati kelen na, jogofɛnw ni doni fangama bɛ to dafalen ye sanfɛ-dakunw na, baarakɛlaw bɛ se ka minnu bonya, yɔrɔ minnu na, fɛnɲɛnɛma-ko ye wajibi fɔlɔ ye. Ni u ye sugandili kɛ ni laɲini ye indirection ko la, Mewayz moduluw bɛ se ka abstraction barikamaw lase jagokɛlaw mago bɛ minnu na k’a sɔrɔ u ma saraka kɛ baarakɛcogo latigɛlen na, u bɛ u jigi da min kan. O kɔlɔlɔ ye jago OS modulari ye min bɛ teliya ani min bɛ baara kɛ a yɛrɛ la, yɔrɔ min na abstraction musaka ye wari bilali ye min bɛ kɛ ni hakili ye tuma bɛɛ, a tɛ kɛ sara dogolen ye.

aw ka jago ɲɛnabɔ ni Mewayz ye

Mewayz bɛ na ni jago modulu 208 ye ka kɛ kɛnɛ kelen ye — CRM , fatura , poroze ɲɛnabɔli , ani fɛn wɛrɛw . Aw ka fara baarakɛla 138.000+ kan minnu y’u ka baarakɛcogo nɔgɔya.

A daminɛ hɔrɔnya bi →

Try Mewayz Free

All-in-one platform for CRM, invoicing, projects, HR & more. No credit card required.

Start managing your business smarter today

Join 30,000+ businesses. Free forever plan · No credit card required.

Ready to put this into practice?

Join 30,000+ businesses using Mewayz. Free forever plan — no credit card required.

Start Free Trial →

Ready to take action?

Start your free Mewayz trial today

All-in-one business platform. No credit card required.

Start Free →

14-day free trial · No credit card · Cancel anytime