2011-10-01 47 views
0

在資源方面,特別是內存方面,兩種模式之間是否存在差異?我在標題中提到了Python,但是如果對許多解釋語言(八度等等)有一個共同的解釋,那將會非常有用。Python - 交互模式與正常調用解釋器

感謝

+0

@agf我只是問了 – saadtaame

+0

我不確定在什麼樣的情況下,您會希望使用交互模式來處理任何事情,資源是至關重要的? – agf

+0

嗯,我不認爲這個問題有一個有用的答案。如果你能想出一個用例,那麼在相同的情況下可以實際測試兩者的資源使用情況。 – agf

回答

1

它看起來像一個互動的過程中確實使用有點更多的內存:比較

[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的嵌入式系統上運行。

請注意,如果您將代碼編寫爲模塊,然後導入它,它將被編譯爲字節碼並保存。我相信這會減少內存消耗,並減少後續調用的啓動時間。您可能想要運行一些測試來了解差異。

+0

謝謝你,夥計,這很有幫助 – saadtaame