一个广为人知但鲜有人用的技巧:对象池(2)

大小错误 :这种情况在使用字节缓冲区和数组时非常常见:对象应该有不同的大小,而且是以定制的方式构造,但返回对象池后却作为通用对象重用。

重复下单 :这是引用泄露的一个变种,存在多路复用时特别容易发生:一个对象被分配到多个地方,但其中一个地方释放了该对象。

就地修改 :对象不可变是最好的,但如果不具备那样做的条件,就可能在读取对象内容时遇到内容被修改的问题。

缩小对象池 :当池中有大量的未使用对象时,要缩小对象池。

对象重新初始化 :确保每次从池中取得的对象不含有上次使用时留下的脏字段。

最后,Alex指出:

对象池并不适合所有人。在应用程序开发的早期阶段就开始使用对象池是没有意义的,因为你那时候还不能确切地知道什么需要池化,也不确定如何池化。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/e8e2ce170f5d8bfc4fe359108c5259cb.html