2014-12-21

各言語のARVv7とx86-64での実装のパフォーマンス比較

LPATHBench/writeup.md at master · logicchains/LPATHBench

同じ箇所に二回訪れずに最も長い経路を見つけるコードで。各言語の実装を、ARMv7とx86-84においてベンチマークしてみた結果が公開されている。

記事に書いてあるように、これは、ARMv7とx86-64のプロセッサーのベンチマーク比較ではなく、各言語の実装が、ARMとx86-64でどれだけ効率的に実装されているのかを比較している。

たとえば、C++はARMにおいてはx86-64の74%のパフォーマンスを出している。しかし、ARM版OpenJDKはなんと29%の速度しか出ていない。OracleによるJava実装は、40%ぐらいのパフォーマンスを出している。

コードはとても短いが、パフォーマンス改善のためのpull requestがどんどんよせられたらしく、その結果が興味深い。Javaでクラスではなく配列を使うようにしたら速くなったとか、C#のイテレーターは結構オーバーヘッドがあるだとか。

luajitが恐ろしく速いのが興味深い。

7 comments:

  1. Luajit/x86-64とLuajit/ARMv7が同程度に遅いだけのように見える

    ReplyDelete
  2. おっしゃるとおり、Luajitは同程度に遅い。
    C++は同程度に速いですね。

    ReplyDelete

  3. ´´´´´████████´´´´
    ´´`´███▒▒▒▒███´´´´´
    ´´´███▒●▒▒●▒██´´´
    ´´´███▒▒▒▒▒▒██´´´´´
    ´´´███▒▒💋▒▒██´
    ´´██████▒▒███´´´´´
    ´██████▒▒▒▒███´´
    ██████▒▒▒▒▒▒███´´´´
    ´´▓▓▓▓▓▓▓▓▓▓▓▓▓▒´´
    ´´▒▒▒▒▓▓▓▓▓▓▓▓▓▒´´´´´
    ´.▒▒▒´´▓▓▓▓▓▓▓▓▒´´´´´
    ´.▒▒´´´´▓▓▓▓▓▓▓▒
    ..▒▒.´´´´▓▓▓▓▓▓▓▒
    ´▒▒▒▒▒▒▒▒▒▒▒▒
    ´´´´´´´´´███████´´´´
    ´´´´´´´´████████´´´´´´
    ´´´´´´´█████████´´´´´
    ´´´´´´██████████´´´
    ´´´´´´██████████´´
    ´´´´´´´█████████´
    ´´´´´´´█████████´
    ´´´´´´´´████████´´´
    ________▒▒▒▒▒
    _________▒▒▒▒
    _________▒▒▒▒
    ________▒▒_▒▒
    _______▒▒__▒▒
    _____ ▒▒___▒▒
    _____▒▒___▒▒
    ____▒▒____▒▒
    ___▒▒_____▒▒
    _███______▒▒
    █_███____███
    █__███_ _█_███
    █ ███

    Hi, very superb and unique content u have here..
    keep the post coming..

    ReplyDelete
  4. I will bookmark this great blog as my reference in a great literature blog thanks

    ReplyDelete

You can use some HTML elements, such as <b>, <i>, <a>, also, some characters need to be entity referenced such as <, > and & Your comment may need to be confirmed by blog author. Your comment will be published under GFDL 1.3 or later license with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.