很多人觉得Python慢是因为语言本身的问题。其实很多时候不是语言慢,是人写的代码不对路子。
我干了这么多年Python开发,踩过无数坑。有些优化技巧连官方文档都藏着掖着,或者写得太含蓄。今天掏心窝子聊几个真正管用的冷门招数。
1. 用__slots__代替频繁实例化的小对象
有个项目需要创建几十万个点坐标对象。每个对象就存x和y两个数。用普通类写,内存直接飙到1.2GB。后来改成__slots__,内存掉到200MB。每个Python对象默认带__dict__字典,这对小对象是巨大浪费。你定义类的时候加上__slots__ = ('x', 'y'),等于告诉Python别给我分配字典了,省下来的内存让你吃惊。代码执行速度还能快15%到20%。 <...