ベンチマーク

ベンチマークとは、pandasのパフォーマンスを測定するためのテストです。pandasに関連するベンチマークには、2つの異なる種類があります。

pandasベンチマーク

pandasのベンチマークは、リポジトリのasv_benchディレクトリに実装されています。ベンチマークは、airspeed velocity (略してasv)フレームワーク用に実装されています。

ベンチマークは、pandasの開発者であれば誰でもローカルで実行できます。これは、asv runコマンドで実行でき、変更前と変更後にベンチマークを実行することで、ローカルの変更がパフォーマンスに影響を与えているかどうかを検出するのに役立ちます。パフォーマンステストスイートの実行に関する詳細は、こちらにあります。

ベンチマークは決定的ではなく、異なるハードウェアで実行したり、異なる負荷レベルで同じハードウェアで実行したりすると、結果に大きな影響を与えることに注意してください。同じハードウェアでほぼ同一の条件でベンチマークを実行した場合でも、まったく同じコードを実行すると、大きな差異が生じます。

pandasベンチマークサーバー

現在、pandasのベンチマークをmainブランチへのすべての(またはほぼすべての)コミットに対して実行している2つの物理サーバーがあります。サーバーは互いに独立して動作します。オリジナルのサーバーは長期間稼働しており、pandasのメンテナーの一人の場所に物理的に配置されています。新しいサーバーは、OVHCloud社のご厚意によるデータセンターにあります。pandasのスポンサーに関する詳細、およびあなたの会社がpandasの開発をどのようにサポートできるかは、pandasのスポンサーページをご覧ください。

ベンチマークの結果は、以下で確認できます。

オリジナルサーバーの構成

マシンは、tomaugspurger/asv-runnerにあるAnsibleプレイブックで構成できます。結果は、別のGitHubリポジトリであるtomaugspurger/asv-collectionに公開されます。

ベンチマークはAirflowによってスケジュールされています。結果を表示およびデバッグするためのダッシュボードがあります。表示するには、SSHトンネルを設定する必要があります。

ssh -L 8080:localhost:8080 pandas@panda.likescandy.com

OVHサーバーの構成

ベンチマークを実行するために使用されるサーバーは、システムノイズを低減し、ベンチマーク時間の安定性を最大化するように構成されています。

サーバーの構成方法の詳細は、pandas-benchmarksリポジトリにあります。ここに簡単な概要を示します。

コミュニティベンチマーク

pandasを含むデータフレームツールを比較する主なベンチマークは次のとおりです。