https://blog.kyubuns.dev/entry/2020/07/12/150546
シェアしました。
コンパイルが爆速、Null無し、Immutable variables by default、Pure functions by defaultと自分が好きな機能盛りだくさんなV言語。
そんなV言語がjsやwasmの出力に対応しました!!!
が、出力方法はまだドキュメントに乗っていません。
まあそのうち乗るでしょう。
vlangのdiscordから集めてきた情報を元にビルド方法を紹介します。
サンプルコード
公式に乗ってるフィボナッチ数列を列挙するコードをコンパイルしていきます。
fibonacci.v
普通に実行してみる
v fibonacci.v
コンパイルはこれぐらいの速度。(以下、全部MBP2018で試しています。)0.25s user 0.04s system 97% cpu 0.301 total
./fibonacci
実行はこれぐらいの速度。0.00s user 0.00s system 56% cpu 0.004 total
js
v -b js -w -o fibonacci fibonacci.v
これでfibonacci.jsが生成されます。0.00s user 0.00s system 73% cpu 0.008 total
とバカ早いです。
0.04s user 0.01s system 91% cpu 0.060 total
実行速度のテストするには、試行回数が2桁ぐらい足りないので参考程度に。
でもこれvでそのままビルドして実行するより早いのでは??
変換後のコードはこんな感じ。
めちゃめちゃ素直に変換されてるのが分かります。
wasm
いや、vはcに変換してるだけやん!
まあそれはそれとして、v->cはjs同様早いんですが、
c->wasmは 2.15s user 0.72s system 224% cpu 1.277 total
ぐらいの時間がかかります。
このfibonacci.c、なんと9559行にも膨れます。
Cに変換するのはコンパイル速度ではなく実行速度が欲しい時、みたいな感じなんですかね。
0 コメント:
コメントを投稿