我正在尝试使用某些缓存算法,这在某种程度上具有挑战性。 基本上,它需要分配很多小对象(双数组,1到256个元素),对象可以通过映射值map[key] = array
访问。初始化数组的时间可能相当长,一般超过10万cpu周期。分配/释放大量小物体的策略
我的意思是总计大约是千兆字节。物体可能需要根据需要弹出/推动,通常在随机的地方,一次一个物体。一个对象的生命周期通常很长,几分钟或更长,但是,对象在编程期间可能会多次分配/释放。
什么是避免内存碎片的好策略,同时仍然保持合理的分配释放速度?
我使用的是C++,所以我可以使用new和malloc。 谢谢。
我知道网站上有类似的问题,Efficiently allocating many short-lived small objects,有些不同,线程安全对我来说不是直接的问题。
我的开发平台是Intel Xeon,linux操作系统。 理想情况下,我想在PPC linux上工作,但它对我来说不是最重要的。
什么是平台?我的意思是,操作系统,CPU架构,编译器等,这些可能会大大影响答案。 – 2010-03-13 18:51:10