在資源方面,特別是內存方面,兩種模式之間是否存在差異?我在標題中提到了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