@陈梓瀚(vczh)
size_t idx = ( size + _lpoolXep - 1 ) / _lpoolXep - 1; 它是O(1)不?
@陈梓瀚(vczh)
为什么不可能呢? 我这儿的实现其实很简单,关键是用block里面的index,它的本质是一个O(1)的HASH, 这样的代价就是创建pool的时候: 非常有必要对缓存大小事先按需求进行合理估计。
@陈梓瀚(vczh)
我实现的这个虽然有缺陷,但在我的使用范围内,确实是严格O(1)的。如果要用到HASH或树之类的就是lg(n)的了。 SIZE按幂次增长我也想过,那样的话空间浪费厉害,不过跨度比较大的话确实可以考虑
@hdqqq
没有认真看代码吧, 只是内存池满了OR请求大小超过上限才会new delete
当然内存池没有预分配,是逐步增长的