回答
標準庫很大。每次解釋程序啓動時都將其完全導入,這將是確保該過程需要時間的好方法,因爲它必須從磁盤讀取所有相關文件。此外,它會使基礎解釋器不必要地消耗大量內存。
讓我們把由@DietrichEpp計算出來的指標--0.5秒,磁盤緩存 - 並將其放到透視圖中。假設這些0.5秒主要是受處理器限制的,這將使得在cgi中使用python的web服務器(但不是fcgi或wsgi)能夠每秒至多服務2頁(不包括所有其他必須完成的任務實際上服務的頁面,外部蟒蛇)
對比與裸露的解釋器,(在我的機器上)需要0.02秒,開始和終止。
$ time python -c exit
real 0m0.019s
user 0m0.004s
sys 0m0.012s
更不用說命名空間污染了。默認情況下,Python定義的全局名稱非常少,但確實有這個... –
@Lattyware。甚至比污染本身*還要糟糕的是,事實是你不知道已經採取了什麼名字。決定一個變量名將涉及知道所有的模塊名稱 – goncalopp
出於好奇,我寫了一個測試:https://gist.github.com/4694889 - 我的電腦需要大約0.5秒導入所有模塊。 –
- 1. 爲什麼標準輸入()會導致EOF錯誤
- 2. 爲什麼eclipse有這樣的問題導入標準的python庫
- 3. mod_wsgi python無法從標準庫導入
- 4. 塊爲什麼不是python標準庫的一部分?
- 5. 爲什麼Foundation.h不能在標準Xcode模板中導入?
- 6. Python:文件不會讀取整個文件,io.FileIO會 - 爲什麼?
- 7. python subprocess不會寫入標準輸出
- 8. 爲什麼Python導入不工作?
- 9. 爲什麼不在Python中導入A.B?
- 10. 在Python中,爲什麼函數中的exec不會導入?
- 11. 不確定如何從Python標準庫導入模塊
- 12. 爲什麼HibernateTransactionManager不會自動注入Spring注入?
- 13. Sass :: Engine.render不會導入藍圖庫...爲什麼?
- 14. PTVS + Django的:我爲什麼不能導入Python庫
- 15. 爲什麼我必須從標準庫中導入某些東西,如datetime等,但不必導入print(),len()等...?
- 16. 爲什麼TestInitialize不會自動調用?
- 17. 爲什麼C++標準庫不會爲異常使用虛擬繼承?
- 18. 標準庫對自動分配的保證是什麼?
- 19. 爲什麼導入python模塊不導入嵌套模塊?
- 20. 爲什麼沒有函數在Python標準庫中讀取/寫入文件
- 21. 爲什麼CPython不使用`sphinx.autodoc`作爲標準庫?
- 22. 爲什麼python可以將共享庫作爲模塊導入?
- 23. 爲什麼Visual Studio Intellisense不會自動插入runat =「server」?
- 24. Idris:從標準庫隱藏數據類型,或者不導入標準庫
- 25. 爲什麼會話會自動過期?
- 26. 爲什麼這兩個Python導入的工作方式不同?
- 27. 爲什麼python不會寫入這個打開的文件?
- 28. 爲什麼我不能在Grails中導入這個Groovy庫?
- 29. 標準庫和標準模板庫有什麼區別?
- 30. 爲什麼jQuery不是W3C標準?
爲什麼會多出幾行? – Volatility
@Volatility寫入一些額外行的成本很小,但可以量化。如果用戶805627假定導入整個庫將不會有額外的成本,但這個問題確實有意義 - 儘管我會承認它表明對計算機和編程的普遍理解缺乏瞭解。 – goncalopp