2

関数を直接 C で記述して Python モジュールとして使用する場合、Python C API を使用することでどれだけのパフォーマンスが得られるかを視覚化するデータはありますか?

「Cの方が速い」という明らかな事実に加えて; Python C API と C を比較したデータはありますか?

4

1 に答える 1

3

そのような「データ」を取得する簡単な方法があるかどうかはわかりません。それはあなたが何をしているかに大きく依存し、Python 側から C 側にデータを転送し、またその逆にデータを転送することは、単純に Python で操作を直接実行する場合と比較して、システムに余分な負荷がかかることを考慮する必要があります。

多くの計算を行っていて、それらの計算が複雑であるが既存のライブラリ (「numpy」など) では実行できない場合は、実行する価値があるかもしれません。もちろん、計算は必ずしも「数学」である必要はありません。大きな配列でデータをシャッフルしたり、if (x > y) z++;型操作を行ったりすることもできます。しかし、データを "python" から "C" タイプのデータに変換し、元に戻すには、実際に大量の処理を行う必要があります。

「このスポーティーな車は、それほどスポーティーでない車よりもどれくらい速いですか」と尋ねるようなもので、渋滞の多い大都市を運転する場合、違いはまったくないかもしれませんが、それらを比較するとスポーティな車が適切に足を伸ばすことができるレース トラックでは、勝者は明らかです。

「車」テーマでは、「混雑」は C の非常に小さな関数への多数の呼び出しであり、あまり機能しません。「Python から C に変換し、Python データに戻す」が混雑/トラフィックになります。ライト。データの塊が大きい場合は、もう少し「レーストラック」効果が得られます。

于 2013-09-22T22:23:40.000 に答える