Похоже, что интерактивный процесс использует немного больше памяти: сравните
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 КБ для интерактивного процесса.
Я ожидаю, что это значение (разница) будет несколько увеличиваться, но не значительно, с использованием только из-за истории команд и других тонкостей, представленных в интерактивном сеансе. Я не думаю, что это когда-либо будет существенной разницей, но вы можете запускать подобные тесты для вашей конкретной ситуации. Чтобы создать фон для текущего сеанса интерпретации, вы буквально нажимаете ^Z
(CTRL-Z).
Но в целом, я не думаю, что разница будет существенной, если вы не используете встроенную систему с несколькими МБ ОЗУ.
Обратите внимание, что если вы напишите свой код как модуль, а затем импортируете его, он будет скомпилирован в байт-код и сохранен. Я считаю, что это уменьшит потребление памяти, а также уменьшит время запуска при последующих вызовах. Возможно, вы захотите запустить несколько тестов, чтобы понять разницу.