mruby 3.1のarmv5tのセルフビルドとRyzenでのクロスビルドのスピードを比較してみました。
armv5tの方はKirkwoodでクロックは1.2Gです。OSはNetBSD 9.0です。
RyzenはFreeBSD/amd64 13.1RのBastilleBSDに環境があります。Ryzen 2400Gでクロックは3.6Gです。クロス(OS)のクロス(アーキテクチャ)です。
セルフのほうを準備します。
まずここにあるruby30-baseのpkgをインストールします。
次にrakeをインストールします。
# gem30 install rake
bisonはインストールしてあったので、(必要なくなったようです)mruby 3.1をビルドします。
# /usr/pkg/lib/ruby/gems/3.0.0/gems/rake-13.0.3/exe/rake
クロスのほうはここに書いた手順でビルドします。
クロスは33秒でした。
セルフは1582秒でした。
50倍くらい違いますが、クロスのツールとかライブラリの用意も必要なのでまるまるというわけでもありません。
セルフのarmは結構早いほうで、クロックが250Mのターゲットもあり、もしこれでビルドすると200倍くらい違うかもしれません。
armはNetBSDで動かしていますが、FreeBSD/armはクソでNetBSDの20倍くらい遅いので、1000倍くらい違いになるのかもしれません。
rakeがマルチコアに対応すればもっと差は広がるでしょう。
matzのスライドにウサギとカメがでてきますが、人生無限ではないので、資源がゆするのであれば、有効に時間を使いましょう。