10

Python でのモジュールの作成とインポートに関する初心者向けのこの演習を終了しました。

モジュール内のすべてがコンピュータのメモリにインポートされるのだろうか?

コードが長くなり、インポートされたモジュールがより多くなるにつれて、後でメモリに影響がありますか?

このため、リソース効率の高いコードを記述するためにメモリ管理を知る必要がありますか?

4

3 に答える 3

9

モジュールは自動的にコンパイルされ (.pyc ファイル)、メモリにインポートされますが、メモリ不足を心配する必要はありません。モジュールは非常に小さいです。一度に何千ものモジュールがロードされるのはよくあることです!

Python がすべての作業を行うため、メモリ管理について知る必要はありません。

編集:各モジュール自体にコードとモジュールの多くのドキュメントを記述することもできます (ドキュメント文字列については、こちらを参照してください)。コンパイル手順で不要なものがすべて削除されるため、ロード時にモジュールのサイズや速度を増加させる必要はありません。テキスト、コメントなど

于 2011-09-10T16:24:42.570 に答える
3

インポートを悪用してメモリをリークする方法は 1 つだけ想像できます。任意の名前のモジュールを動的に作成およびインポートできます (たとえば、プラグイン システムを作成する目的で)。それらを一度使用して、使用を中止してください。通常のインポート機構、つまり を使用してこれを行った場合__import__(variable_module_name)、それらのモジュールは に追加されますが、sys.modulesそれらはそれ以上使用されません。

解決策はうまくいきます。そうしないでください。本当にプラグイン システムを作成している場合は、プラグインが再利用されるため、その種の動的インポートはおそらく問題ありません。動的に生成された使い捨てコードを本当に使用する必要がある場合。使用してevalください。

動的に生成されたコード (自動テストなど) で本当にインポートを使用する必要がある場合は、インポートしsys.modulesたモジュールを消去する必要があります。 これは、そのようなことを行う方法を説明する素晴らしい記事です。

于 2011-09-10T16:56:01.210 に答える
0

はいといいえ。

はい、モジュールはコンピューターのメモリにインポートされますが、リソース効率の高いコードを書くべきではありません。Python モジュールは非常に小さく (数 KiB、まれに数 MiB)、メモリ使用量に大きな影響を与えません。

于 2011-09-10T16:25:10.567 に答える