Le Tau o le Indirection i le Ele | Mewayz Blog Skip to main content
Hacker News

Le Tau o le Indirection i le Ele

Fa'amatalaga

11 min read Via blog.sebastiansastre.co

Mewayz Team

Editorial Team

Hacker News

O le Tau o le Aveesea: Malamalama i le Fa'asalaina ile Ele

O le ele o se gagana e fausia i luga o se folafolaga mamana: fa'atosina e leai se tau. E mafai ai e le au atiaʻe ona tusia le tulaga maualuga, saogalemu, ma le faʻaalia code e aunoa ma le totogiina o se faʻasalaga faʻatinoga i le taimi faʻatino. O lenei filosofia e totonugalemu i le mafuaʻaga e sili ai Rust i polokalama faʻapipiʻi, mai faiga faʻaogaina i masini taʻaloga. Ae ui i lea, o le manatu o le "indirection" o loʻo nofo i luga o se auala matagofie i le mamanu a Rust. E ui e masani ona mana'omia mo le fetuutuuna'i ma le saogalemu, o le le fa'atonuina e le o taimi uma e leai se tau, ma o lona fa'aoga sese e mafai ona tafiesea lemu ai le fa'atinoga tonu e ta'uta'ua ai Rust. Mo fa'avae e pei o Mewayz, ose pisinisi fa'apitoa OS lea e fa'atumauina ai le fa'aogaina lelei ma le fa'aogaina o puna'oa, o le malamalama i lenei tau e le'o le a'oa'oga—e mana'omia mo le fauina o faiga fa'atauva'a tau pisinisi.

O le a le Indirection ma Aisea Tatou te Manaomia ai?

Indirection ose polokalame fa'akomepiuta lea e te fa'asino iai se mea e le'o sa'o, ae e ala i se vaega fa'alatalata. I le Rust, o foliga masani o faʻailoga, faʻamatalaga, mea faʻapitoa, ma faʻailoga atamai e pei o 'Pusa', 'Rc', poʻo 'Arc'. O nei meafaigaluega e manaʻomia. Latou te fa'atagaina le amio fa'amalosi, fa'asoa fa'aputuga, fa'asoa fa'atasi, ma le polymorphism. Mo se faʻataʻitaʻiga, o le `Vec>` e mafai ai ona e teuina se aofaʻiga o ituaiga eseese e faʻatino uma le uiga 'Draw', o se faʻataʻitaʻiga masani i faiga UI poʻo faʻapipiʻi fausaga. A aunoa ma se fa'atonuga, e matua faigata lava le tusiaina o le fa'aoga fetu'una'i, fa'ailoga fa'apitoa.

"Abstraction o le faatufugaga o le natia lavelave, ma le le fa'atonuina o lana meafaigaluega autu lea. I Rust, o le lu'itau o le fa'aaogaina lea o le meafaigaluega e aunoa ma le fa'atagaina o le tau o le fa'aaogaina e avea ma lafoga fa'agasolo."

O Lafoga Natia o Galuega Fa'atino

E ui lava e masani ona "zero-tau" le fa'amuta e tusa ai ma mea e te mafaitusi ma le lima, ae o le fa'a'ole'ole lava ia e fa'ailoa mai ai le tino mai luga. O lenei tau e fa'aalia i le tele o vaega taua:

  • Memory Access (Cache Misses): O le mulimuli i se fa'asinoala e mana'omia le oso i se isi tuatusi manatua. Ole mea lea e mafai ai ona fa'ato'ilaloina le fa'aogaina muamua o le fa'aogaina o le CPU, ma fa'atupu ai le fa'agesegese tele o faitau pe a fa'atusatusa i fa'amaumauga o lo'o soso'o.
  • Dynamic Dispatch: Mea fa'apitoa (`dyn Trait`) fa'aoga laulau (vtables) e fo'ia ai le auala e vala'au i le taimi. Ole mea lea e fa'aopoopoina ai se la'ititi la'ititi mo le su'esu'eina o le fa'ailoga ma taofia ai le fa'apipi'iina o le fa'aputuga, lea e mafai ona avea ma fa'ama'i fa'apitoa mo fa'aoga vevela.
  • Vaega Fa'aputu: O ituaiga e pei o le 'Pusa' e fa'ailoa mai ai le fa'aputuga o fa'aputuga, o fa'atonuga o le tele e fa'agesegese nai lo le fa'aputuina o fa'aputuga ma fa'aopoopoina le mamafa i le fa'asoa.
  • Pisinisi Fa'atonu: O le tele o vaega o le le fa'atonuina (fa'ata'ita'iga, o le `Pusa` o lo'o i ai se `Rc` i se fausaga fa'atasi ai ma le `Vec` o mea fa'atusa) e fa'aopoopoina ai nei tau, ma fa'agesegese ai auala e maua ai fa'amaumauga.

I se pisinisi OS e pei o Mewayz, lea e mana'omia ai e modules le fa'agaioia o fa'amaumauga, fa'atautaia galuega, ma tali atu i fa'alavelave fa'aletonu, o nei tau laiti e mafai ona fa'apotopotoina i le fa'aletonu o le macro-level, e a'afia ai mea uma mai le fa'atupuina o lipoti i fa'afouga taimi moni.

Taiala mo le Fa'aitiitia i Lau Fa'amaumauga Fa'avae

O le fa'amoemoe e le o le fa'ate'aina o le fa'aletonu—e le mafai pe mana'omia—ae ia fa'aaoga tatau. O ta'iala autu nei:

Muamua, fa'asili mea lautele nai lo mea fa'apitoa pe a mafai. E fa'aogaina e Generics le monomorphization, e faia ai se fa'ailoga tu'ufa'atasi, fa'apitoa mo ituaiga sima ta'itasi ile taimi fa'aopoopo. Ole mea lea e fa'atumauina le fa'atonuga ma mafai ai ona fa'aulufale. Lona lua,faʻapipiʻi faʻataʻitaʻiga faʻamaumauga. Teu fa'amaumauga i fa'atasiga, fa'aoga-fa'agaogao (`Vec`) nai lo fa'aputuga fa'atasi o pusa. Fa'agasolo fa'amaumauga i vaega, ae le o filifili o telefoni feavea'i. Lona tolu, fa'alilolilo fa'agasolo. Fa'aoga meafaigaluega e pei o le 'cargo flamegraph' e iloa ai pe o le fa'a'ole'ole o le fa'ama'i lea; e masani lava, o le tau e fa'atauva'a se'ia o'o i se ala fa'aletonu.

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

Fausiaina o se Faiga Fa'avae Fa'alelei ma Mewayz

O lenei malamalamaga faanumeraina o le tau ma le fetuutuuna'i e fa'ailoa sa'o ai le fausaga o se tulaga e pei o Mewayz. Pe a mamanuina se module mo le Mewayz OS, e faʻamalosia le au atinaʻe e faʻaoga generics ma static dispatch mo faʻaoga autu, faʻaoga-faʻapitoa-e pei o paipa suiga o faʻamatalaga poʻo masini faʻatusatusa. I le taimi nei, o mea faʻapitoa ma le faʻamalosia o uta e tumau pea le atoatoa mo tulaga maualuga, faʻaoga faʻapipiʻi faʻapipiʻi faʻapipiʻi lea e sili ona manaʻomia le fetuutuunai. E ala i le faia o filifiliga ma le loto i ai e uiga i le le faʻaogaina, e mafai e Mewayz modules ona tuʻuina atu le manaʻomia o pisinisi faʻapitoa e aunoa ma le ositaulagaina o le faʻamoemoega o loʻo latou faʻalagolago i ai. O le i'uga o se faiga fa'apitoa fa'apisinisi OS e fa'atosina ma fa'apitoa, lea o le tau o le fa'ate'aina e masani lava o se fa'aagaga fa'apitoa, ae le o se totogi natia.

Fesili e Fai soo

O le Tau o le Aveesea: Malamalama i le Fa'a'ole'ole i le Ele

O le ele o se gagana e fausia i luga o se folafolaga mamana: fa'atosina e leai se tau. E mafai ai e le au atiaʻe ona tusia le tulaga maualuga, saogalemu, ma le faʻaalia code e aunoa ma le totogiina o se faʻasalaga faʻatinoga i le taimi faʻatino. O lenei filosofia e totonugalemu i le mafuaʻaga e sili ai Rust i polokalama faʻapipiʻi, mai faiga faʻaogaina i masini taʻaloga. Ae ui i lea, o le manatu o le "indirection" o loʻo nofo i luga o se auala matagofie i le mamanu a Rust. E ui e masani ona mana'omia mo le fetuutuuna'i ma le saogalemu, o le le fa'atonuina e le o taimi uma e leai se tau, ma o lona fa'aoga sese e mafai ona tafiesea lemu ai le fa'atinoga tonu e ta'uta'ua ai Rust. Mo fa'avae e pei o Mewayz, ose pisinisi fa'apitoa OS lea e fa'asilisili ai le fa'aogaina lelei ma le fa'aogaina o puna'oa, o le malamalama i lenei tau e le'o fa'aa'oa'oga—e mana'omia mo le fauina o fa'atauga fa'atau pisinisi.

O le a le Indirection ma Aisea Tatou te Manaomia ai?

Indirection ose polokalame fa'akomepiuta lea e te fa'asino iai se mea e le'o sa'o, ae e ala i se vaega fa'alatalata. I le Rust, o foliga masani o faʻailoga, faʻamatalaga, mea faʻapitoa, ma faʻailoga atamai e pei o 'Pusa', 'Rc', poʻo 'Arc'. O nei meafaigaluega e manaʻomia. Latou te fa'atagaina le amio fa'amalosi, fa'asoa fa'aputuga, fa'asoa fa'atasi, ma le polymorphism. Mo se faʻataʻitaʻiga, o le 'Vec' e faʻatagaina oe e teu se aofaʻiga o ituaiga eseese e faʻaaogaina uma le uiga 'Draw', o se faʻataʻitaʻiga masani i faiga UI poʻo faʻapipiʻi fausaga. A aunoa ma se fa'atonuga, e matua faigata lava le tusiaina o le fa'aoga fetu'una'i, fa'ailoga fa'apitoa.

O Lafoga Natia o Galuega Fa'atino

E ui lava e masani ona "zero-tau" le fa'amavaega e tusa ai ma mea e mafai ona e tusia ma le lima, ae o le fa'atonuga lava ia e fa'ailoa mai ai i luga o le ulu. O lenei tau e fa'aalia i le tele o vaega taua:

Taiala mo le Fa'aitiitia i Lau Fa'amaumauga Fa'avae

O le fa'amoemoe e le o le fa'ate'a'ese'ese—e le mafai pe mana'omia—ae ia fa'aoga tatau. O ta'iala autu nei:

Fausiaina o se Fa'a'au'au Fa'alelei ma Mewayz

O lenei malamalamaga faanumeraina o le tau ma le fetuutuuna'i e fa'ailoa sa'o ai le fausaga o se tulaga e pei o Mewayz. Pe a mamanuina se module mo le Mewayz OS, e faʻamalosia le au atiaʻe e faʻaoga generics ma static dispatch mo fesoʻotaʻiga autu, maʻaleʻale faʻatinoga—pei o paipa suiga o faʻamatalaga poʻo masini faʻatusatusa. I le taimi nei, o mea faʻapitoa ma le faʻamalosia o uta e tumau pea le atoatoa mo tulaga maualuga, faʻaoga faʻapipiʻi faʻapipiʻi faʻapipiʻi lea e sili ona manaʻomia le fetuutuunai. E ala i le faia o filifiliga ma le loto i ai e uiga i le le faʻaogaina, e mafai e Mewayz modules ona tuʻuina atu le manaʻomia o pisinisi faʻapitoa e aunoa ma le ositaulagaina o le faʻamoemoega o loʻo latou faʻalagolago i ai. O le i'uga o se faiga fa'apitoa fa'apisinisi OS e fa'atosina ma fa'apitoa, lea o le tau o le fa'ate'aina e masani lava o se fa'aagaga fa'apitoa, ae le o se totogi natia.

Fa'amama lau Pisinisi ma Mewayz

Mewayz aumai 208 pisinisi modules i le tasi tulaga — CRM, invoicing, project management, and more. Auai i le 138,000+ tagata fa'aoga na fa'afaigofie a latou galuega.

Amata Saoloto i le Aso →