このプロジェクトは、さまざまなプログラミング言語の速度を比較しようとします。このプロジェクトでは、円周率を正確に計算することにはあまり関心がありません。私たちが知りたいのは、プログラミング言語がどれくらいの速度で動作するかだけです。
比較には、π に対するライプニッツの公式の実装が使用されます。
これがどのように機能するかを説明するビデオです: π を手動で計算する
結果はここで確認できます: https://niklas-heer.github.io/speed-comparison/
私はこれらすべての言語の専門家ではないので、私の結果を話半分に聞いてください。
また、今回の調査結果は、その言語がプログラミング言語の 1 つの側面にすぎない浮動小数点演算をいかにうまく処理できるかを示しているだけです。
一部の言語で私が作成した恐ろしいコードの修正に協力していただくことも歓迎です。 ?
すべては Docker コンテナーとプログラムを呼び出す bash スクリプトによって実行されます。
実行時間を測定するには、Python パッケージが使用されます。
Docker
Earthly では、単一のコマンドですべてを実行できます。
earthly --config earthly-config.yml +all
これにより、すべてのタスクが実行されてすべての測定値が収集され、分析が実行されます。
すべての言語のデータを収集するには、次のコマンドを実行します。
earthly --config earthly-config.yml +collect-data
単一言語のデータを収集するには、以下を実行します。
earthly --config earthly-config.yml + < replace me with language name >
すべての結果から結合された CSV を生成するには、次のコマンドを使用します。
earthly --config earthly-config.yml +analysis
ファイルの読み取りと出力の印刷もカウントするのはなぜですか?
これは速度を比較するためのより現実的なシナリオだと思うからです。
コンパイル時間は測定値に含まれますか?
いいえ、それらは含まれていません。現実世界でプログラムを実行するときに、これも以前に行われるためです。
寄稿者のリストは自動的に生成されます。
ニクラス・ヒア | フランチェスコ・アレマンノ | ユウ・ジュ | ジェリー・リン | ガウテ ホープ | フラク0d |
ジョナサン・キャロル | スィディク・アシル | セルグ・ジニ | ガブリエル・バラルディ | サミュエル | ジョー・ランドマン |
サンディープ・クマール | マットン | ポール・ハラルドソン | オスカー・スミス | マイケル・アボット | ロレンツォ・ガブリエレ |
レイジーカーネル | クリス・ニュルンベルガー | ダーキーダーキー | グイ・ジェンウェイ | RDPパトリックザデヴ | プラウダスト |
セルゲイ・トロフィモフ | トーマス・キャスウェル | ともひろ | ゲンメブログ | 今津裕太 | 細木康平 |
インヘリ |
基本的なベンチマークに使用されるハイパーファインの作成用。
このプロジェクトは、ブログで同様の比較を行った Thomas からインスピレーションを得ています。