python應(yīng)用操作——使用slots來(lái)減少內(nèi)存開(kāi)支
你是否注意到你的 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)有真正的益處。
點(diǎn)擊加載更多評(píng)論>>