我们团队对c++的内存管理做了不少改进,技术方案讨论中我们甚至有彻底重写malloc和free全部代码的思考,已有方案的cpu cache不够友好,理论上应该可以设计出比tcmalloc更好的库,但是考虑到代码总长度和测试的时间,最底层malloc和free就不改了。为了用尽可能少的代码在产品中尽快解决最迫切的问题,目前的实现是基于重写shared_ptr, 一方面实现了完全线程安全,另一方面实现了gc垃圾内存回收和对象再利用recycle, gc的机制刚好可以配合实现完全线程安全,对象recycle机制可以实现更快的性能。另外,使用方法上与std库make_shared全兼容,只要对象被shared_ptr封装,那么就是一个支持全新内存管理模式的对象。综合性能上,远超java的机制,也远超现有c++的性能,我们用此库重新实现了memcache, 查询性能比原生用c语言开发的版本快70%。下载测试 http://www.haisql.com |