2011-07-25 16 views
4

メモリコストは明らかにモジュールの正確な大きさに依存しますが、私は一般的な答えしか探していません:Pythonでモジュールをインポートするのは一般的に高価ですか安いですか?アプリケーションの全期間にわたってメモリに潜んでいる可能性のある数十種類の小さなスクリプトがある場合、どれくらいメモリを消費しますか?Python:モジュールをインポートするためのメモリコスト

+0

あなたが組み込みのプラットフォームなどでない限り、私は心配しません。なぜそれを試してみてください。ほとんどの(すべて?)OSは、プロセスがどれだけのメモリを使用しているかを見る方法を持っています。 –

+0

@gnibblerは確かですが、一般的にあまり正確ではありません。最近のOSのメモリ管理には、数層の煙や鏡が必要です。しかし、とにかく問題ではないと私は同意します:) –

答えて

7

時間コスト(モジュールが一度しかインポートされないので愚かではない)は心配していないようですが、メモリコストです。私はあなたに言いました:これらのモジュールのすべての機能が必要な場合は、をどのように正確に計画して、をすべてメモリに保存しないようにしますか?最も論理的な方法でちょうどimportのものもあります。

つまり、Python importは文でありプリプロセッサディレクティブ(またはそれに類するもの)のようなものではないため、実際に内容が必要になるまでモジュールのインポートを遅らせることができます適切な時に。これは、特に大規模なプロジェクトや複雑なプロジェクトで有意義な最適化を行うことができます。覚えておいてください。foo.barを参照すると、Pythonコンパイラはfooがあるかどうかをチェックしません。実行時にすべての名前がルックアップされます。ダックタイピングがここで始まります。 foo.barコードは、fooがモジュール、クラス、またはオブジェクトの名前であるかどうかは気にしません。 (基本的にモジュールとクラスオブジェクトですが、私は逃げます...)

+0

これは本質的にBazaar DVCSの機能です。そのソースとその "lazy_import"メカニズムをチェックアウトすることができます。 –

関連する問題