2017-06-20 87 views
3

我最近正在考慮使用標準庫並在編程中使用它們。我想知道如何調用庫,我聽到很多關於依賴的討論並對它們進行管理,以避免使用不必要的模塊和不必要的模塊來重載程序。所以我想知道在使用標準庫中的函數和模塊時是否有額外的負載/資源使用增加。例如,如果我寫了一個完全由標準庫函數構建的程序,並且沒有我自己的代碼(這意味着我有大量的導入語句),我會看到性能下降嗎?或者是每個程序加載的標準庫,無論它是否被調用?因此它是標準庫的一部分。在Python中使用內置庫有沒有懲罰?

謝謝你們,如果我還不夠清楚,很樂意詳細說明我的問題。

+1

嘿,約翰,那是60歲小睡過程。足夠的睡眠? –

+1

取決於圖書館和實施。在C版本中,有些嵌入在基本代碼中,所以不會有任何額外的開銷。要獲得這些列表,請查看Modules和Python目錄下的源代碼(例如Python/sysmodule.c)。所以說「內置」(你的標題)和「標準」(你的文本)不是一回事。 – cdarke

+1

@ChristianDean身體上,我感覺很棒。 我將展示自己的大門。 –

回答

6

性能影響很小。

第一次導入模塊將模塊字節碼和對象加載到內存中(存儲在sys.modules映射中)。該加載將需要少量時間和少量內存。

你必須是一個更大的項目才能開始重要。 Mercurial項目非常關心啓動時間(一個命令行客戶端必須快速響應),它使用延遲加載方案,其中導入的模塊加載被延遲直到實際訪問。通過這種方式,項目可以引用數百個模塊(和擴展),但只能實際加載當前命令行選項所需的那些模塊。

另一種方法是用你自己的代碼來定義功能,但是執行該字節代碼的時候也會花費時間和內存,但是另外一個缺點就是你可能會引入錯誤或者設計錯誤,標準庫已經設法消除多年。

相關問題