krareT / pub-task

Terark public developing
MIT License
3 stars 6 forks source link

MemPool: Thread Local Cache MemPool #44

Closed rockeet closed 5 years ago

rockeet commented 5 years ago

Use Thead Local Cache to minimize CPU Cache conflict.

2M block for sfree implementation:

 void sfree(size_t pos, size_t len) {
    auto tc = m_thread_cache[pos >> 21]; // >>21 for div 2M
    tc->sfree(pos, len);
 }
rockeet commented 5 years ago

不使用谁申请谁释放(谁指相应的ThreadCache)。 free 时无脑 free 到当前线程的 tls freelist

性能已达到预期。