我最近读到了关于slab系统的缓存着色并且不明白.为什么缓存着色会在不同的平板中为对象添加各种偏移量可以提高性能?
我最初的猜测是:具有缓存偏移的slab分配器,尝试将slabs的第一个对象放在不同缓存颜色的内存中.如果客户端从这些平板分配N个对象,它将获得具有N个缓存颜色的N个对象.
我的猜测是正确的还是有人可以给我更多提示?非常感谢,
在对RDring进行测试后,我发现删除元素有时失败,删除定时器的时间复杂度是线性的; 警报管理器使用TreeSet迭代所有要删除的元素.
然后,我查看PriorityQueue的来源并猜测也许可以用它来存储计时器列表.但我很惊讶,虽然PriorityQueue中的删除是在恒定时间内,但优先级队列中的元素插入也是线性的.他们没有使用任何树或二进制搜索技术来加速插入.
如果我想快速删除,那么PQ但插入慢.否则我可以使用TreeSet在log-N中插入但删除缓慢.是否有任何树或堆支持以log-N速度插入,删除和查找?