A Rust éjszakai kiadásaiban bővült a párhuzamosítási lehetőségek köre.

A Rust fordítójának frontendjén, amely olyan feladatokat lát el, mint a szintaktikai elemzés, típusellenőrzés és kölcsönzések elemzése, megvalósították a párhuzamos végrehajtás támogatását, amely jelentősen csökkenti a fordítási időt. A párhuzamosítás már elérhető a Rust éjszakai kiadásaiban, és az "-Z threads=8" opcióval aktiválható. A stabil ágban ezt a lehetőséget 2024-ben tervezik bevezetni.

A Rust fordítási idő csökkentésén már évek óta dolgoznak. 2023 első 10 hónapja alatt a fordítási idő átlagosan 13%-kal csökkent, a csúcsmemória-felhasználás 15%-kal, a generált fájlok mérete pedig 7%-kal csökkent. Ezen a ponton a gyorsulást a fordító optimalizálásaival érték el. Ezt követően a fejlesztők a fordítási műveletek párhuzamosításán kezdtek dolgozni.

Eddig a Rust párhuzamosítása főként folyamat szinten valósult meg; például a Cargo csomagkezelő párhuzamosan indíthat több rustc folyamatot több csomag egyidejű fordításához. A párhuzamosítás támogatása a backend oldalon is jelen van, amely a kódgenerálással kapcsolatos műveleteket végzi – a Rust backend képes kódot részekben generálni, amelyeket a LLVM párhuzamosan dolgozhat fel. A frontend azonban eddig csak egy szálon dolgozhatott.

A párhuzamosítás támogatásához a frontendet a Rayon könyvtár használatához fordították, és jelentősen átdolgozták; például sok része most már mutexek és olvasási/írási zárolások segítségével szinkronizálódik, és a kód atomikus típusokat használ. Teljesítményt tesztelve az új párhuzamosítható megvalósítás egy szálas módban (-Z threads=1) akár 2%-kal lassabban képes fordítani, de ha a szálak száma meghaladja az egyet, a sebesség jelentősen nőtt. Például 8 szál (-Z threads=8) beállításával bizonyos esetekben a fordítási időt 50%-kal sikerült csökkenteni.

A végeredmény erősen függ a környezeti beállításoktól és a fordítandó kódtól - nagyon kis programok esetén, amelyek amúgy is gyorsan fordulnak, a párhuzamos fordítás lassabb lehet. Ezen kívül a párhuzamos módban a memóriafogyasztás jelentősen megnövekedhet, például a tesztek során a memóriafogyasztás 35%-os növekedését figyelték meg.

Forrás: opennet.ru

Megbízható hosting vásárlása weboldalak számára, DDoS védelemmel, VPS VDS szerverek. 🔥 Megbízható webtárhely vásárlása DDoS védelemmel, VPS VDS szerverek | ProHoster