本文主要讲述C++ new运算符和operator new, placement new之间的种种关联,new的底层实现,以及operator new的重载和一些在内存池,STL中的应用。 一 new运算符和operator new(): new:指我们在C++里通常用到的运算符,比如A* a =
分类:
编程语言 时间:
2016-03-03 12:46:53
阅读次数:
284
我们撰写代码是无法避免是要和内存打交道的,内存的使用和释放也就成为了一个问题 ,在cocos中 有如下几种使用方式。 1,autorelease 自动释放池,首先我们来看看相应的开放源码。 当我们对一个对象进行autorelease后,cocos会把这个对象放入内存池,内存池会在用户使用这个对象后自
分类:
其他好文 时间:
2016-03-02 17:50:27
阅读次数:
163
参考文章: http://blog.sina.com.cn/s/blog_51df3eae01016peu.html 我们知道Redis并没有自己实现内存池,没有在标准的系统内存分配器上再加上自己的东西。所以系统内存分配器的性能及碎片率会对Redis造成一些性能上的影响。 在Redis的 zmall
分类:
其他好文 时间:
2016-03-01 22:46:59
阅读次数:
724
在仿写stl的过程中,被一处内存错误卡了很久。当内存池需要多次malloc时会出现堆损坏的错误,初步判断是数组越界,但总是检查不出来。一开始用Dr.Memory检查不出来,就试了一下devpartner。官网链接 http://www.borland.com/zh-CN/Products/Softw
分类:
编程语言 时间:
2016-02-16 22:00:56
阅读次数:
171
有些情形会需要申请大量的固定尺寸的内存块,若一个个都用malloc申请效率很低,这种情况非常适合使用内存池解决。 下面就是一个固定内存块尺寸的内存池的完整源码。注:其中的内存申请不是使用的malloc,而是自己定义的torch::HeapMalloc,简单修改下即可。 代码详情请见Github【点击
分类:
其他好文 时间:
2016-01-31 13:19:45
阅读次数:
134
内存池为boost自带的 #include <boost/pool/pool.hpp> 或者另外一个开源的库: nedmalloc 一个高效率的库 线程池需要下载另外一个开源库 http://www.cnblogs.com/TianFang/archive/2007/08/23/867350.htm
分类:
编程语言 时间:
2016-01-30 17:43:33
阅读次数:
177
程序通过系统的内存分配一次性申请适当大小的内存作为一个内存池,之后应用程序自己对内存的分配和释放则可以通过这个内存池来完成。只有当内存池需要动态扩张时,才需要系统再调用内存分配函数,其它时间对内存的一切掌握都在应用程序的掌握之中。 从线程安全角度,内存池可以分为单线程内存池和多线程池 单线程内存池:
分类:
编程语言 时间:
2016-01-29 16:02:15
阅读次数:
498
http://blog.csdn.net/rabbit729/article/details/3927979
分类:
其他好文 时间:
2015-12-10 18:46:49
阅读次数:
151
一、Memcached 存储 Session由于 Memcached 是分布式的内存对象缓存系统,因此可以用来实现 Session 同步:把 Web 服务器中的内存组合起来,成为一个“内存池”,不管是哪个服务器产生的 Sessoin 都可以放到这个“内存池”中,其他的 Web 服务器都可以使用。使用...
分类:
系统相关 时间:
2015-12-08 01:57:39
阅读次数:
337
此算法灵感来自于apache内存池实现原理,不过读者如果没有看过apache内存池实现也无关系,因为本算法相对apache内存池算法更为简单而且易懂,个人认为某些场合也更为高效,或许真正到了apache服务器上性能不如,但是这套设计思想应该还是可以借鉴到更多场合的。我们在调用malloc函数时,操作...
分类:
其他好文 时间:
2015-11-29 12:07:03
阅读次数:
155