python、pandas内存优化

	Python的使用使我们的工作更加简单,但是他有一些功能封装确实不够严谨。因为他的灵活和简便使我们很多时候都忘记了它的缺点。在web后端设计中,try是很有必要的。你永远不知道用户给你传过来的是什么数据,如果你能够相信他给你传过来的数据,不是家里有矿就是太过年轻了。
	今天说的是Python的垃圾回收机制,这里面做内置做的确实不好。基本上的使用只要配合gc包就能够弥补这个缺点。当使用一个DataFrame且后面不会再使用时,可以将这个变量引用删掉,并释放内存,例如df
del df
gc.collect().
	经过这一步后,这个内存算是释放掉了。为什么说算是而不是彻底释放掉呢,因为这里面就有一个比较坑的地方。如果你的DataFrame参与了函数之间的数据传递,不好意思。这个内存你永远也释放不掉,即便调用它的函数完成了任务,它所占用的内存依然存在(内存泄漏),除非脚本调用结束。想要解决这个问题,那就需要用一些其他办法了。比如DataFrame写到本地,其他函数需要数据的时候之间取数据,记得函数结束的时候删除引用。这里面并不是空间换时间,如果本地内存消耗不起的话,那这个办法就不可行了。

你可能感兴趣的:(bug整理,优化数据处理速度)