首頁 >Java >java教程 >帶有 GraalVM Native Image 的 Lambda 函數 - 部分緩解冷啟動和熱啟動

帶有 GraalVM Native Image 的 Lambda 函數 - 部分緩解冷啟動和熱啟動

Patricia Arquette
Patricia Arquette原創
2024-10-29 12:27:29890瀏覽

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

介紹

在本系列的第 2 部分中,我們探索如何使用包含 GraalVM Native Image 和 GraalVM 21 運行時的自訂運行時來開發和部署純 Lambda 函數(不使用 Spring Boot 3 等任何框架)。

在本文中,我們將使用這種方法來測量 Lambda 函數的性能(冷啟動和熱啟動)。

使用包含 GraalVM Native Image 的自訂執行階段測量 Lambda 函數的冷啟動和熱啟動

對於我們的測量,我們將使用第 2 部分中的範例應用程序,並為所有 Lambda 函數提供 1024 MB 記憶體。

下面的實驗結果是基於使用Lambda 函數GetProductByIdWithPureJava21GraalVMNativeImageLambda 在1 小時內重現超過100 次冷啟動和大約100.000 次熱啟動,該函數映射到負責檢索產品的Java Lambda 處理程序類別(儲存在DynamoDB 中)透過其id。為此,我使用了負載測試工具,嘿,但您可以使用任何您想要的工具,例如 Serverless-artillery 或 Postman。

冷 (c) 和暖 (m) 開始時間(以毫秒為單位):

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

結論

在本文中,使用包含 GraalVM Native Image 和 GraalVM 21 運行時的自訂運行時,測量了具有 1024 MB 記憶體的純 Lambda 函數的效能(冷啟動和熱啟動)。

將這些效能測量值與文章《使用Java 21 測量冷啟動和熱啟動》進行比較,使用不同的Lambda 記憶體設定(啟用SnapStart 並使用DynamoDB 請求啟動),我們發現我們的冷啟動和熱啟動時間是迄今為止最低的使用GraalVM Native Image 與使用帶有SnapStart 的純Lambda 函數進行比較並描述啟動。當然,SnapStart 和 GraalVM Native Image 兩種方法也有不同的優點和缺點,我們將在單獨的文章中探討。

在發佈時,還提供了較新的版本(例如GraalVM 23 運行時),因此您可以按照本系列第2 部分中的說明進行版本更改並重新編譯GraalVM Native 映像,並重新測量Lambda 性能.

在本系列的下一篇文章中,我們將探討不同 Lambda 記憶體設定(從 256 到 1536 MB)對 Lambda 效能的影響,因為記憶體設定也會嚴重影響執行 Lambda 函數的成本。

以上是帶有 GraalVM Native Image 的 Lambda 函數 - 部分緩解冷啟動和熱啟動的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn