Vala言語の特徴 (2)
前回に引き続き、vala言語の特徴を紹介する。
なお、公式ページはこちら。 https://wiki.gnome.org/Projects/Vala
ネイティブなバイナリを生成できる
valaのソースコードから、最終的にはネイティブなバイナリコードを生成できる。 PerlやRubyのようなインタープリターではないし、JavaのようなVMも不要だ。
「最終的には」と述べたのは、valaコンパイラが、途中C言語のソースを介すからだ。 valaコンパイラは、
という手順を経てネイティブなバイナリコードを生成する。
ネイティブであることは、実行速度やメモリ利用効率の面から有利だ。
https://code.google.com/p/vala-benchmarks/wiki/BenchResults
上記ページにはC++、Mono、C、valaの速度比較結果がある。 (残念ながらメモリ使用量の結果はtimeコマンドのバグ(?)で存在しない)
この結果から、ざっくり概観を得る為に言語ごとに速度値を平均化した。さらに、その平均値をC言語を1として比較してみた(C比)。
言語 | 平均値 | C比 |
---|---|---|
C++ | 22.47 | 1.07 |
Mono | 38.28 | 1.82 |
C | 20.98 | 1.00 |
Vala | 23.04 | 1.10 |
valaはC比1.1倍だ。
なお、ページは異なるが、Java、Python、Rubyも比較してみよう。
http://benchmarksgame.alioth.debian.org/u32/benchmark.php?test=all&lang=java&lang2=gcc&data=u32
http://benchmarksgame.alioth.debian.org/u32/benchmark.php?test=all&lang=python3&lang2=gcc&data=u32
http://benchmarksgame.alioth.debian.org/u32/benchmark.php?test=all&lang=yarv&lang2=gcc&data=u32
これらのページを見ると、JavaはC比2倍、Pythonは34倍、Rubyは44倍だ。
以上より、valaの処理速度C比1.1倍という結果が、いかに高速か分かるだろう。 特に、最新の言語機能を使用できて、この処理速度を実現できるところが魅力的だろう。
現在、valaによるアプリケーションを開発中です。 興味があれば登録してみてください。 http://gridraw.com