gRPC i natywna usługa AOT
Autor: James Newton-King
Usługa gRPC obsługuje natywną platformę .NET przed czasem (AOT) na platformie .NET 8. Natywna funkcja AOT umożliwia publikowanie aplikacji klienckich i serwerowych gRPC jako małych, szybkich natywnych plików wykonywalnych.
Ostrzeżenie
Na platformie .NET 8 nie wszystkie funkcje platformy ASP.NET Core są zgodne z natywną funkcją AOT. Aby uzyskać więcej informacji, zobacz ASP.NET Core i Natywna zgodność funkcji AOT.
Rozpocznij
Kompilacja AOT odbywa się po opublikowaniu aplikacji. Natywna funkcja AOT jest włączona z opcją PublishAot
.
Dodaj
<PublishAot>true</PublishAot>
do pliku projektu klienta lub aplikacji serwera gRPC. Spowoduje to włączenie natywnej kompilacji AOT podczas publikowania i włączenia dynamicznej analizy użycia kodu podczas kompilacji i edytowania.<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>
Można również włączyć natywną
-aot
funkcję AOT, określając opcję przy użyciu szablonu ASP.NET Core gRPC:dotnet new grpc -aot
Opublikuj aplikację dla określonego identyfikatora środowiska uruchomieniowego (RID) przy użyciu polecenia
dotnet publish -r <RID>
.
Aplikacja jest dostępna w katalogu publikowania i zawiera cały kod potrzebny do jej uruchomienia.
Natywna analiza AOT obejmuje cały kod aplikacji i biblioteki, od których zależy aplikacja. Przejrzyj ostrzeżenia dotyczące natywnej usługi AOT i wykonaj kroki naprawcze. Warto często testować aplikacje do publikowania, aby wykrywać problemy na wczesnym etapie cyklu projektowania.
Optymalizowanie rozmiaru publikowania
Natywny plik wykonywalny AOT zawiera tylko kod z zależności zewnętrznych wymaganych do obsługi aplikacji. Nieużywany kod jest automatycznie przycinany.
Rozmiar publikowania usługi gRPC platformy ASP.NET Core można zoptymalizować, tworząc konstruktora hostów za pomocą WebApplication.CreateSlimBuilder()
polecenia . Ten konstruktor udostępnia minimalną listę funkcji wymaganych do uruchomienia aplikacji ASP.NET Core.
var builder = WebApplication.CreateSlimBuilder(args);
builder.Services.AddGrpc();
var app = builder.Build();
app.MapGrpcService<GreeterService>();
app.Run();
Zalety korzystania z natywnej AOT
Aplikacje opublikowane za pomocą natywnej usługi AOT mają:
- Zminimalizowane zużycie dysku
- Skrócony czas uruchamiania
- Zmniejszenie zapotrzebowania na pamięć
Aby uzyskać więcej informacji i przykłady korzyści zapewnianych przez natywną funkcję AOT, zobacz Korzyści wynikające z używania natywnej funkcji AOT z platformą ASP.NET Core.