ARMって超遅い

最近、仕事で玄箱でビルドしてベンチマークを取る機会があった。
結論から言うと、同クロックのx86と比べて4-8倍遅い。
PCは普通にDebianを入れたもので、玄箱はDebian化したもの。
計測したのは、とあるインタープリタで、有名ベンチマークスイートを実行。
結果から分かったのは、
x86比でもっとも速いコードは、局所的なループをぐるぐる回っているもので、
もっとも遅いものは、関数ポインタで飛びまくっているものだった。
つまり、
・関数コールが遅い
・関数ポインタのコールも遅い
ということだった。
その理由としては、分岐予測の精度と、キャッシュ容量の違いが考えられる。
今でこそ組み込みはARMの天下だけど、IntelがSoCに本腰を入れてきたら分からないな~、と思った。

Author: _fp

Software Engineer Place: Tokyo, Japan Skills: C, Javascript, Objective-C, Perl, Clojure, Java, PythonErlang, Haskell, OpenGL Twitter: _fp