0

inlinePythonにはCに似たものがありますか?

そうでない場合、関数の実行を高速化するにはどうすればよいですか?

4

5 に答える 5

7

いいえ、Pythonにはそのようなステートメントはありません。

ただし、関数呼び出しのオーバーヘッドが問題になる場合は、Pythonなどのスクリプト言語を使用するのは間違った選択です。関連するパーツをCエクステンションに移動することを検討してください。それがオプションである場合は、Cythonをご覧ください。

于 2012-09-01T17:26:41.300 に答える
1

いいえ、そうではありません。ただし、Pythonの実行を高速化するメカニズムはいくつかあります。たとえば、Boost.Pythonを使用してPythonプログラムからネイティブCコードを呼び出すことができます。

Boost Python Libraryは、PythonとC++をインターフェースするためのフレームワークです。これにより、特別なツールを使用せずに、C ++コンパイラだけを使用して、C ++クラスの関数とオブジェクトをPythonに、またはその逆にすばやくシームレスに公開できます。これは、C ++インターフェイスを邪魔にならないようにラップするように設計されているため、ラップするためにC ++コードをまったく変更する必要がないため、Boost.PythonはサードパーティのライブラリをPythonに公開するのに理想的です。ライブラリで高度なメタプログラミング手法を使用すると、ユーザーの構文が単純化されるため、ラッピングコードは一種の宣言型インターフェイス定義言語(IDL)のように見えます。

于 2012-09-01T17:26:33.773 に答える
1

scipyからWeaveと呼ばれるダウンロード可能なライブラリがあり、cまたはc++コードをPythonコードにインライン化できます。それはそれをスピードアップします。

ただし、Python自体にはインライン関数はありません。

scipy、numpyなど、計算を高速化するように設計されたライブラリは他にもあります。matplotlibはかなり優れたライブラリだと思います。また、並列計算用のiPythonもあります。

幸運を。

于 2012-09-01T17:30:33.793 に答える
0

Pythonはコードを最適化しますが、その方法に影響はありません。ほぼすべてのPythonコードのロード時間を短縮するために、実行前にバイトコードにコンパイルできます。

于 2012-09-01T17:37:45.167 に答える
0

Pythonの同等のインライン機能を知りません。

関数を高速化して、慣用的な言語機能(リスト内包表記など)を使い果たしたと仮定してアルゴリズムを調べるためにできる最善のこと。

于 2012-09-01T17:27:51.420 に答える