@陳梓瀚(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
當然內存池沒有預分配,是逐步增長的