Spring Boot Native vs Go:效能比較 – Ignacio Suay

banq發表於2022-01-11

Spring 啟動了一個名為Spring Native的新專案。該專案仍處於試驗階段,但允許您使用 GraalVM 構建本機映象。Spring Native 提供了一些有趣的特性,包括幾乎即時啟動(通常小於 100 毫秒)、即時峰值效能和更低的記憶體消耗,但代價是比 JVM 更長的構建時間和更少的執行時優化。

在 Spring Native 釋出期間,我正在學習 Go。我對 Go 感興趣的主要原因是它的效能:Go 速度快,記憶體消耗低,CPU 使用率低。

我想回答的問題是:Go 效能是否明顯優於 Spring Boot(特別是現在存在原生選項)?

。。。。

結論:

在 Go 中,儲存一個產品和檢索最後一個產品的響應時間快了 20% 左右。在檢索 20 個最新產品時,Go比 Java 和 Spring Boot Native快 133%。我想知道 ORM 庫(Gorm vs Hibernate)對這些結果的影響有多大,但顯然Go 比 Java 和 Spring Boot Native 快得多。

在資源利用方面,Go 也是贏家。

值得注意的是,在負載測試持續的 2 個小時內,Go 應用程式的 CPU 和記憶體保持穩定,而 Spring Native 的記憶體使用量不斷增加。

在我看來,Spring Native 是減少記憶體消耗的良好第一步。目前我仍然發現構建映象的時間太長,儘管我希望他們會在未來的版本中改進它。 

另一方面,我對 Go 的出色表現感到驚訝。我職業生涯的大部分時間都在編寫 Java 和 Spring 應用程式,所以我對 Go 世界仍然很陌生。我不認為 Go 會取代 Java,並且 Go 中缺少一些重要的特性,比如泛型(儘管 Go 團隊計劃很快新增它們)。儘管如此,我認為 Go 可能更適合開發微服務或函式即服務(無伺服器)。

相關文章