Rust's otomatiki ndangariro manejimendi inosunungura mugadziri kubva pakugadzirisa pointer uye inodzivirira kubva kune yakaderera-level ndangariro manipulation, senge mushure-yemahara memory yekuwana, null pointer dereferences, buffer overruns, nezvimwe. Maneja wepakeji ari kugadzirwa kugovera maraibhurari, kuona kuungana uye kugadzirisa zvinovimbika neprojekiti.
chikuru
- Mune rustc compiler
akapa tsigiro yekugadzirisa zvichibva pane kodhi profiling mhinduro (PGO, Profile-inotungamirirwa Optimization),
kukubvumira kuti ugadzire kodhi yakanyatsonaka zvichienderana nekuongororwa kwenhamba dzakaunganidzwa panguva yekuitwa kwechirongwa. Kugadzira chimiro, mureza we "-C profil-generate" unopihwa, uye kushandisa chimiro panguva yegungano - "-C profile-use" (pakutanga, chirongwa chinounganidzwa nemureza wekutanga, chinotenderera, uye mushure mekugadzira. iyo mbiri, inosanganiswa zvakare neyechipiri mureza); - Paunenge uchiita iyo "cargo run" command, iyo iri nyore kushandisa kukurumidza kuyedza console application, kugona kusarudza otomatiki faira rekuita kuti rimhanye kwakawedzerwa kana paine akati wandei mafaera mupakeji. Iyo faira yekusarudzika ichaitwa inotarwa kuburikidza neiyo default-run dhairekitori mu [package] chikamu chine mapakeji paramita, izvo zvinokutendera kuti udzivise kutsanangura zvakajeka zita refaira kuburikidza ne "-bin" mureza pese paunomhanya "cargo run";
- Murairo we "cargo mutengesi", wakambopihwa se
siyana package . Murairo unokutendera kuti uronge basa nekopi yemuno yevanovimba - mushure mekuita "mutengesi wemutoro", ese macode macode ekutsamira kweprojekiti anotorwa kubva ku crates.io kune dhairekitori renzvimbo, iro rinogona kushandiswa kushanda pasina kuwana makreti. io (mushure mekuita rairo, zano rekushandura dhizaini rinoratidzwa kushandisa dhairekitori rekuvaka). Iyi ficha yakatoshandiswa kuronga kuendeswa kwerustc compiler nekurongedza kwese kutsamira mune imwe archive nekuburitswa; - Izvozvi zvinogoneka kugadzira zvinongedzo kune enum sarudzo uchishandisa mhando aliases (semuenzaniso, mumuviri webasa "fn increment_or_zero(x: ByteOption) unogona kudoma "ByteOption::Hapana => 0"), mhando yekuverenga inovaka (βΉ MyTypeβΉ.. βΊβΊ::option => N) kana Self accesss (mumabhuroko c &self unogona kudoma βSelf::Quarter => 25β);
- Yakawedzera kugona kugadzira isina kudomwa macons mu macros. Panzvimbo pekutsanangura zita rechinhu mu "const", iwe unogona ikozvino kushandisa "_" hunhu kusarudza zvine simba chiziviso chisingadzokorore, kudzivirira kupokana kwezita paunenge uchidana macro zvakare;
- Yakawedzera kugona kushandisa "#[repr(align(N))" hunhu nemaenum uchishandisa syntax yakafanana nekutsanangura AlignNβΉTβΊ chimiro chine kurongeka uyezve kushandisa AlignNβΉMyEnumβΊ;
- Chikamu chitsva cheAPI chakaendeswa kuchikamu chakagadzikana, kusanganisira iyo BufReader::buffer, BufWriter::buffer, uye
Sero::kubva_mut,
Sero::se_chidimbu_chemasero,
DoubleEndedIterator ::nth_back,
Sarudzo::xor
{i,u}{8,16,64,128,size}::reverse_bits, Kupeta ::reverse_bits uye
slice::copy_mukati.
Uyezve, inogona kucherechedzwa
Source: opennet.ru