2

私は、長期にわたる計算が行われる大規模な財務価格設定アプリケーションに取り組んでいます。psycoの選択的適用によってスピードアップできるいくつかの機能を特定しました。私の経営陣は、スタックにpsycoを追加することのコストとメリットの評価を要求しました。

私のプロジェクトの重要な性質を考えると、「パフォーマンスの向上」が潜在的に信頼性を低下させる可能性があるかどうかは受け入れられません。psycoを使用すると、使用するメモリが増える代わりにパフォーマンスが向上することを読みました。これが問題になるのではないかと心配しています。

私はこのようにやっています:

@psyco.proxy
def my_slow_function(xxx):

全部で、私たちはpsycoを15以下の機能に適用することを期待しています-これらは非常に頻繁に使用されます。このライブラリには何千もの関数があるため、これはコードのごく一部のサブセットにのみ影響します。すべての関数は小さく、数学的でステートレスです。

  • これにより、かなり多くのメモリが使用されるリスクがありますか?
  • このコンポーネントを長年のライブラリに追加するときに発生する可能性のある他の問題はありますか?

参考までに、プラットフォームはWindows32ビットXP上のPython2.4.4です

更新:主な潜在的なリスクは、psycoが追加される前よりも実行に多くのメモリを必要とするプログラムによるものと思われるため、理想的には、psycoを追加するとシステムのメモリ要件が劇的に変化するかどうかを確認する方法を見つけたいと思います。

4

2 に答える 2

3

プロファイリングしてみませんか?Psycoには、非常に詳細なログ機能があります。

メモリ使用量:x + kb

放出されたマシンコードとサポートデータ構造のために消費されるメモリ量に関するPsycoの現在の概念。これは、メモリオーバーヘッドの概算です(+記号は、この数値が非常に過小評価されていることを思い出させるはずです)。この情報を使用して、メモリ制限を調整します(セクション3.2.2)。

また、メモリ使用量は構成可能であることに注意してください。

memorymax

Psycoによって消費されるメモリが制限(キロバイト単位)に達したときに停止します。この制限には、このプロファイラーが開始する前に消費されたメモリーが含まれます。

于 2009-09-17T09:10:51.573 に答える
2

PsycoはJITコンパイラです。関数がステートレスの場合、メモリが増えることを除いて、ほとんど欠点はありません。

于 2009-09-17T08:20:41.490 に答える