在资源方面,特别是内存方面,两种模式之间是否存在差异?我在标题中提到了Python,但是如果对许多解释语言(八度等等)有一个共同的解释,那将会非常有用。Python - 交互模式与正常调用解释器
感谢
在资源方面,特别是内存方面,两种模式之间是否存在差异?我在标题中提到了Python,但是如果对许多解释语言(八度等等)有一个共同的解释,那将会非常有用。Python - 交互模式与正常调用解释器
感谢
它看起来像一个互动的过程中确实使用有点更多的内存:比较
[email protected]:/etc$
[email protected]:/etc$ python -c 'import time; time.sleep(20000)' &
[1] 3559
[email protected]:/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
[email protected]:/etc$ kill %1
[email protected]:/etc$
[1]+ Terminated python -c 'import time; time.sleep(20000)'
与
[email protected]:/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
[email protected]:/etc$ jobs -p
3881
[email protected]:/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的嵌入式系统上运行。
请注意,如果您将代码编写为模块,然后导入它,它将被编译为字节码并保存。我相信这会减少内存消耗,并减少后续调用的启动时间。您可能想要运行一些测试来了解差异。
谢谢你,伙计,这很有帮助 – saadtaame
@agf我只是问了 – saadtaame
我不确定在什么样的情况下,您会希望使用交互模式来处理任何事情,资源是至关重要的? – agf
嗯,我不认为这个问题有一个有用的答案。如果你能想出一个用例,那么在相同的情况下可以实际测试两者的资源使用情况。 – agf