LoginSignup
6
3

More than 5 years have passed since last update.

GraalVMのメモリ使用率はすごく少なくて良い。なんとJavaの1/16!

Last updated at Posted at 2019-03-17

GraalVMを使う → おそい (というか、Javaが十分早い。Goよりも。)
という記事を書きました。

記事中、GraalVMについて、「フットプリントの軽さや、起動の速さなどを目指しており」と書いているにもかかわらず、速度についてのみ触れ、フットプリントについて言及していなかったため、フットプリントについても確認してみました。

環境

MacBook Pro (Retina, 13-inch, Late 2012)
プロセッサ 2.9 GHz Intel Core i7
メモリ 8 GB 1600 MHz DDR3

測定

/usr/bin/time -l コマンドを使用します。
インストールされている各環境の言語バージョン、計測する実装は前記事と同じです。

結果

言語 maximum resident set size GraalVMを1とした比率
(小数点1位切り捨て)
Node.js 21,852,160 12
Java 28,856,320 16
GraalVM 1,798,144 1
Golang 1,974,272 1
C#(dotnet) 18,505,728 10
Python3 6,537,216 3

GraalVMすごい!

なんと、Javaの1/16にフットプリントを抑えることができます。
(今回はフィボナッチ数を計算するという、小さなコマンドラインツールで確認しているので、Webアプリ等、Kubernatesでサービス提供したいアプリケーションでは状況が異なると考えますが、また、コンテナのオーバーヘッド等もあるので、正確ではありませんが、)GraalVMはJavaの1/16のインフラで同一のプロセス数のサービスを提供できるポテンシャルがある、ということです。
素晴らしいですね!
(あと、Pythonが優秀なのがもう一つの驚き。)

6
3
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
3