1

PythonがCと同じくらい高速だった場合、後者はpythonアプリ/ライブラリに存在しますか?

例:PythonがCのように高速だった場合、PILは完全にPythonで記述されますか?

4

4 に答える 4

7

「レガシー」CライブラリおよびOS機能にアクセスするため。

于 2010-02-20T20:56:41.080 に答える
5

もちろん、ctypesを使用して既存の C コードにアクセスすることもできますが、十分に複雑なケースでは、必ずしもそうしたくない場合があります。C用に設計された (および C で実装された) インターフェースにコーディングしている場合、コンパイルを行わないと、小さなエラーが発生する可能性があります。呼び出し側では、C で適切にコンパイルすることを単に拒否するだけで、アプリケーション全体がクラッシュする可能性があります。

ctypesしたがって、既存の優れた C コードを再利用する目的で( ではなく) C コードを使用することは、非常に理にかなっています (もちろん、 Cythonも問題ありません。呼び出し側のエラーの場合に、C コードを生成するためです。コンパイルに失敗します;-)。

もちろん、既存の堅実で微調整された優れたコードを再利用するのではなく、すべてをゼロから書き直すことはあまり意味がありません。古くてすでに克服された問題に対するちょうどいい解決策は、あなたの時間を費やすための最良の、最も生産的な、そして最も満足のいく方法ではないでしょう;-)。

于 2010-02-20T21:08:20.040 に答える
2

PythonでCモジュールを使用するのは理にかなっています。

  • パフォーマンス
  • Pythonに移植されないライブラリ(パフォーマンス上の理由など)またはOS固有の関数を使用するライブラリ
  • スクリプティング。たとえば、多くのゲームでは、Python、Lua、およびその他の言語をスクリプト言語として使用しています。したがって、C /C++関数をPythonに公開します。

あなたの例に関して:はい、しかしPythonは本質的にCより遅いです。両方が同じくらい速いなら、Cコードはしばしば攻撃(バッファオーバーフローなど)を受けやすいのでPythonを使うのは理にかなっています。

于 2010-02-20T21:01:03.643 に答える
0

ハードウェアにアクセスします。

于 2010-02-20T21:50:14.180 に答える