Adding slots to all Models
Since the active record switch, we instantiate a lot of Model. This instantiation create a new __dict__ for each instance and this can be quite consuming of memory resources. I think we could add __slots__ on all the Models because we should not assign any dynamic attribute to those instance. The values and changed values are stored in _cache* and _values attributes which are dict created on the need.
But to be really efficient the __slots__ mut be set to the all __mro__ chain otherwise it is not used. This means that all modules must be upgraded or maybe it is possible to customize the metaclass PoolMeta to add an empty slots by default. Also the Pool.setup should be checked to also set slots to the new class created.