Sdílet prostřednictvím


gRPC a nativní AOT

Autor: James Newton-King

gRPC podporuje rozhraní .NET Native předem (AOT) v .NET 8. Nativní AOT umožňuje publikování klientských a serverových aplikací gRPC jako malých a rychlých nativních spustitelných souborů.

Upozorňující

V .NET 8 nejsou všechny funkce ASP.NET Core kompatibilní s nativní AOT. Další informace najdete v tématu ASP.NET Core a nativní kompatibilita AOT.

Začínáme

Kompilace AOT se provádí při publikování aplikace. Nativní funkce AOT je povolená PublishAot s možností.

  1. Přidejte <PublishAot>true</PublishAot> do souboru projektu klienta nebo serverové aplikace gRPC. Tím povolíte nativní kompilaci AOT během publikování a povolíte analýzu dynamického použití kódu během sestavování a úprav.

    <Project Sdk="Microsoft.NET.Sdk.Web">
    
      <PropertyGroup>
        <TargetFramework>net8.0</TargetFramework>
        <PublishAot>true</PublishAot>
      </PropertyGroup>
    
      <ItemGroup>
        <PackageReference Include="Grpc.AspNetCore" Version="2.51.0" />
        <PackageReference Include="Google.Protobuf" Version="3.22.0" />
      </ItemGroup>
    
    </Project>
    

    Nativní AOT lze také povolit zadáním -aot možnosti pomocí šablony ASP.NET Core gRPC:

    dotnet new grpc -aot
    
  2. Publikujte aplikaci pro konkrétní identifikátor modulu runtime (RID) pomocí dotnet publish -r <RID>.

Aplikace je dostupná v adresáři publikování a obsahuje veškerý kód potřebný ke spuštění.

Nativní analýza AOT zahrnuje veškerý kód aplikace a knihovny, na které aplikace závisí. Zkontrolujte nativní upozornění AOT a proveďte opravné kroky. Často je vhodné otestovat publikování aplikací, abyste zjistili problémy v rané fázi životního cyklu vývoje.

Optimalizace velikosti publikování

Nativní spustitelný soubor AOT obsahuje pouze kód z externích závislostí potřebných k podpoře aplikace. Nepoužitý kód se automaticky oříznou.

Velikost publikování služby ASP.NET Core gRPC lze optimalizovat vytvořením tvůrce hostitelů pomocí WebApplication.CreateSlimBuilder()nástroje . Tento tvůrce poskytuje minimální seznam funkcí potřebných ke spuštění aplikace ASP.NET Core.

var builder = WebApplication.CreateSlimBuilder(args);
builder.Services.AddGrpc();

var app = builder.Build();
app.MapGrpcService<GreeterService>();
app.Run();

Výhody používání nativní AOT

Aplikace publikované s nativní AOT mají:

  • Minimalizované nároky na disk
  • Kratší doba spuštění
  • Snížení poptávky po paměti

Další informace a příklady výhod, které nativní AOT poskytuje, najdete v tématu Výhody použití nativní AOT s ASP.NET Core.

Další materiály