リソース、特にメモリに関して、2 つのモードに違いはありますか? タイトルで Python について言及していますが、多くのインタープリター言語 (Octave など) に共通する説明があれば、非常に役立ちます。
ありがとう
リソース、特にメモリに関して、2 つのモードに違いはありますか? タイトルで Python について言及していますが、多くのインタープリター言語 (Octave など) に共通する説明があれば、非常に役立ちます。
ありがとう
インタラクティブなプロセスは、より多くのメモリを使用しているようです: 比較
malkovich@malkovich:/etc$
malkovich@malkovich:/etc$ python -c 'import time; time.sleep(20000)' &
[1] 3559
malkovich@malkovich:/etc$ pidstat -r -p $!
Linux 2.6... (malkovich) 11-10-01 _x86_64_ (4 CPU)
08:11:41 PM PID minflt/s majflt/s VSZ RSS %MEM Command
08:11:41 PM 3559 0.00 0.00 27872 4412 0.12 python
malkovich@malkovich:/etc$ kill %1
malkovich@malkovich:/etc$
[1]+ Terminated python -c 'import time; time.sleep(20000)'
と
malkovich@malkovich:/etc$ python
Python 2.6.6 (r266:84292, Sep 15 2010, 16:22:56)
[GCC 4.4.5] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import time
>>> time.sleep(20000)
^Z
[1]+ Stopped python
malkovich@malkovich:/etc$ jobs -p
3881
malkovich@malkovich:/etc$ pidstat -r -p 3881
Linux 2.6... (malkovich) 11-10-01 _x86_64_ (4 CPU)
08:16:10 PM PID minflt/s majflt/s VSZ RSS %MEM Command
08:16:10 PM 3881 0.00 0.00 34856 5072 0.14 python
興味深いのは、RSS (常駐メモリ使用量) の値です。対話型プロセスでは、約 650 kB 増加しています。
この値 (差) は、インタラクティブ セッションで提供されるコマンド ヒストリやその他の優れた機能によってのみ、使用に伴って多少増加すると予想されますが、大幅には増加しません。それが大きな違いになるとは思いませんが、特定の状況で同様のテストを実行することをお勧めします。実行中の通訳セッションをバックグラウンドにするには、文字通り^Z
(CTRL-Z) を押します。
しかし、全体として、数 MB の RAM しか搭載されていない組み込みシステムで実行していない限り、違いはそれほど大きくないと思います。
コードをモジュールとして記述してインポートすると、バイトコードにコンパイルされて保存されることに注意してください。これにより、メモリ消費が削減され、その後の呼び出しでの起動時間も短縮されると思います。違いを把握するために、いくつかのテストを実行することをお勧めします。