Heim  >  Artikel  >  Java  >  Lambda-Funktion mit GraalVM Native Image – Teil zur Vereinfachung von Kalt- und Warmstarts

Lambda-Funktion mit GraalVM Native Image – Teil zur Vereinfachung von Kalt- und Warmstarts

Patricia Arquette
Patricia ArquetteOriginal
2024-10-29 12:27:29835Durchsuche

Lambda function with GraalVM Native Image - Part easuring cold and warm starts

Einführung

In Teil 2 der Serie haben wir untersucht, wie man reine Lambda-Funktionen (ohne Verwendung von Frameworks wie Spring Boot 3) mit Custom Runtime, das GraalVM Native Image enthält, mit GraalVM 21 Runtime entwickelt und bereitstellt.

In diesem Artikel messen wir die Leistung (Kalt- und Warmstarts) der Lambda-Funktion mit diesem Ansatz.

Messen von Kalt- und Warmstarts der Lambda-Funktion mit Custom Runtime, das GraalVM Native Image enthält

Für unsere Messungen verwenden wir unsere Beispielanwendung aus Teil 2 und geben allen Lambda-Funktionen 1024 MB Speicher.

Die Ergebnisse des folgenden Experiments basierten auf der Reproduktion von mehr als 100 Kalt- und etwa 100.000 Warmstarts für die Dauer von 1 Stunde mit der Lambda-Funktion GetProductByIdWithPureJava21GraalVMNativeImageLambda, die der Java-Lambda-Handlerklasse zugeordnet ist, die für den Abruf des Produkts (gespeichert) verantwortlich ist in der DynamoDB) durch seine ID. Dafür habe ich das Lasttest-Tool verwendet, aber Sie können jedes beliebige Tool verwenden, z. B. Serverless-Artillery oder Postman.

Kalt (c) und warm (m) Startzeit in ms:

c p50 c p75 c p90 c p99 c p99.9 c max w p50 w p75 w p90 w p99 w p99.9 w max
525.77 532.12 542.32 632.56 635.73 636.11 4.16 4.69 5.46 12.30 37.25 211.83

Abschluss

In diesem Artikel wurde die Leistung (Kalt- und Warmstarts) der reinen Lambda-Funktion mit 1024 MB Speicher unter Verwendung einer benutzerdefinierten Laufzeit mit GraalVM Native Image mit GraalVM 21-Laufzeit gemessen.

Ein Vergleich dieser Leistungsmessungen mit dem Artikel „Messung von Kalt- und Warmstarts mit Java 21“ unter Verwendung verschiedener Lambda-Speichereinstellungen, den wir mit aktiviertem SnapStart und dem Priming der DynamoDB-Anfrage durchgeführt haben, zeigt, dass wir bei weitem die niedrigsten Kalt- und Warmstartzeiten haben Verwendung von GraalVM Native Image im Vergleich zur Verwendung der reinen Lambda-Funktion mit SnapStart und der beschriebenen Vorbereitung. Natürlich haben beide Ansätze SnapStart und GraalVM Native Image auch unterschiedliche Vor- und Nachteile, die wir im separaten Artikel untersuchen.

Zum Zeitpunkt der Veröffentlichung waren auch neuere Versionen verfügbar (wie die GraalVM 23-Laufzeitversion). Nehmen Sie also die Versionsänderungen vor und kompilieren Sie das GraalVM Native-Image gemäß den Anweisungen aus Teil 2 der Serie neu und messen Sie die Lambda-Leistung erneut .

Im nächsten Artikel der Serie werden wir die Auswirkungen verschiedener Lambda-Speichereinstellungen (von 256 bis 1536 MB) auf die Lambda-Leistung untersuchen, da die Speichereinstellung auch die Kosten für die Ausführung der Lambda-Funktionen stark beeinflusst.

Das obige ist der detaillierte Inhalt vonLambda-Funktion mit GraalVM Native Image – Teil zur Vereinfachung von Kalt- und Warmstarts. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn