Programovanie

Generátory zdrojov C # na zvýšenie výkonu v .NET 5

Spoločnosť Microsoft predstavila ukážku schopnosti kompilátora C # s názvom Zdrojové generátory, ktoré môžu kontrolovať program a generovať zdrojové súbory, ktoré je možné pridať do kompilácie. Microsoft tvrdí, že generátory zdrojov môžu zlepšiť výkon v mnohých scenároch.

Zdrojový generátor, ktorý bol predstavený 29. apríla, je časť kódu (zostava .NET Standard 2.0), ktorá sa spúšťa počas kompilácie a môže skontrolovať program, aby vytvoril ďalšie súbory, ktoré sú kompilované spolu so zvyškom kódu.

Generátory zdrojov umožňujú vývojárom jazyka C # vykonávať tieto činnosti:

  • Načítajte kompiláciu predstavujúcu celý kód používateľa, ktorý sa kompiluje. Tento objekt je možné skontrolovať a vývojári môžu písať kód, ktorý pracuje so syntaktickými a sémantickými modelmi pre kompilovaný kód, napríklad s analyzátormi.
  • Generujte zdrojové súbory C #, ktoré sa majú pridať do objektu kompilácie počas kompilácie, s ďalším zdrojovým kódom poskytnutým ako vstup pri kompilácii kódu.

Microsoft uviedol, že používateľský kód je možné skontrolovať spolu s bohatými metadátami, ktoré kompilátor vytvorí počas kompilácie, pričom kód C # sa na základe analyzovaných údajov vydá späť do tej istej kompilácie. Zdrojové generátory sú podobné analyzátorom Roslyn, ktoré kontrolujú kód C # alebo Visual Basic a slúžia ako analyzátory, ktoré môžu emitovať zdrojový kód C #.

Zdrojové generátory sa majú dodávať ako súčasť jazyka C # 9. Spoločnosť sprístupnila vývojársku kuchársku knihu zdrojových generátorov a návrhový dokument zdrojových generátorov, ktoré vývojárom pomôžu začať.

Medzi scenáre, ktoré profitujú z generátorov zdrojov, patria:

  • Vykonať runtime reflexiu. Analýzou kódu napríklad pri spustení aplikácie môže dôjsť k fáze zisťovania radiča v čase kompilácie, čo povedie k rýchlejším časom spustenia.
  • Aby sa zabránilo použitiu „reťazovo zadaných“ rozhraní API, ako je napríklad fungovanie smerovania ASP.NET Core medzi radičmi a stránkami Razor. Smerovanie je možné silne napísať a potrebné reťazce vygenerovať ako detail kompilácie.
  • Pomôcť odstrániť prekážky optimalizácii kompilácie založenej na linkeroch a v predstihu.

Na prístup k generátorom zdrojov musia vývojári nainštalovať najnovšiu ukážku .NET 5 a najnovšiu ukážku Visual Studio.

$config[zx-auto] not found$config[zx-overlay] not found