位置:首頁(yè) > 軟件操作教程 > 編程開(kāi)發(fā) > Python > 問(wèn)題詳情

python應(yīng)用操作——使用slots來(lái)減少內(nèi)存開(kāi)支

提問(wèn)人:ylm發(fā)布時(shí)間:2020-09-29

你是否注意到你的 Python 應(yīng)用占用許多資源特別是內(nèi)存?有一個(gè)技巧是使用 slots 類(lèi)變量來(lái)在一定程度上減少內(nèi)存開(kāi)支。

import sysclass FileSystem(object):

 

    def __init__(self, files, folders, devices):

        self.files = files

        self.folders = folders

        self.devices = devices

print(sys.getsizeof( FileSystem ))

 class FileSystem1(object):

 

    __slots__ = ['files', 'folders', 'devices']

    def __init__(self, files, folders, devices):

        self.files = files

        self.folders = folders

        self.devices = devices

 

print(sys.getsizeof( FileSystem1 ))#In Python 3.5#1-> 1016#2-> 888

很明顯,你可以從結(jié)果中看到確實(shí)有內(nèi)存使用上的節(jié)省,但是你只應(yīng)該在一個(gè)類(lèi)的內(nèi)存開(kāi)銷(xiāo)不必要得大時(shí)才使用 slots。只在對(duì)應(yīng)用進(jìn)行性能分析后才使用它,不然地話(huà),你只是使得代碼難以改變而沒(méi)有真正的益處。

繼續(xù)查找其他問(wèn)題的答案?

相關(guān)視頻回答
回復(fù)(0)
返回頂部