IronPython 2.0.1 は、IronPython 1.x よりも約 3 倍遅くスクリプト ファイルを実行するようです。それが私がしていることではないという確信が持てないので、他の人が同様の経験をしたかどうか疑問に思っています.
IP 1.x ではファイルから実行するのに 5 秒、IP 2.0.1 では 18 秒近くかかる 200k の Python スクリプトがあります。
IronPython 2.0.1 は、IronPython 1.x よりも約 3 倍遅くスクリプト ファイルを実行するようです。それが私がしていることではないという確信が持てないので、他の人が同様の経験をしたかどうか疑問に思っています.
IP 1.x ではファイルから実行するのに 5 秒、IP 2.0.1 では 18 秒近くかかる 200k の Python スクリプトがあります。
IronPythonには、Pythonよりもはるかに遅いものが確かにいくつかあります。多くの場合、これは、実装で奇妙なコーナーケースにぶつかっていることが原因です。パフォーマンスの違いを示す非常に単純なスクリプトに減らして、それをIronPythonメーリングリストに送信することを試みる価値があります-開発者は非常に敏感です。
最近、IronPythonのパフォーマンスに関する一連の興味深いブログ投稿があります-これは良い概要です。要約すると、落とし穴を回避すれば非常に優れたパフォーマンスを得ることができ、IPチームはこれらの問題を見つけて迅速に修正することに非常に興味を持っています。落とし穴を見つけるために再現を絞り込むことは最も難しい部分です-動作をトリガーするものを理解したら、一般的に回避するのは簡単です。
タイミングには起動時間が含まれていますか?IronPython 2.6 Betaでは、起動時間とコードのコンパイル/実行が大幅に改善されています。可能であれば、そのリリースを試すことをお勧めします。
乾杯、デイビー
記事IronPython:インポートシンボルを再利用してパフォーマンスヒットを回避することで、埋め込みシナリオの実行を高速化できます。
IronPython 2.0 を使い始めたときも同様の問題がありました。私にとっての問題は、DLR の起動に時間がかかることでした。ランタイムが読み込まれると、スクリプトのパフォーマンスはかなり高速になります。
ランタイムの起動時間を短縮するには、バイナリを NGEN 化してみてください。これにより、起動時間が約 60% 短縮されました。
この修正を行っても、まだそれほど速くはありません。スクリプトがあまり実行していない場合でも、起動には全体の時間のかなりの部分がかかります。DLR チームが起動時のパフォーマンスの問題をすぐに修正してくれることを願っています。