Updated webrev at http://cr.openjdk.java.net/~weijun/8197518/webrev.01/.
> On Feb 23, 2018, at 9:02 AM, Weijun Wang <weijun.w...@oracle.com> wrote:
> You mean I can save it somewhere and only update it when a cleanup is
> This should be better. Now there will be only isEmpty(), getFirst() and
> addFirst(), and one less getLast().
>> On Feb 23, 2018, at 1:45 AM, Xuelei Fan <xuelei....@oracle.com> wrote:
>> Looks like list synchronization is a factor of the performance impact.
>> Maybe, you can have a private time for the oldest entry so don't
>> access/iterate/cleanup entries list until necessary. The "at most every
>> minute" may be not a good strategy in some situations.
In fact, it's now almost "exactly every minute". What situations do you think
it's not good? I cannot use size() because I have to remember all entries with
lifespan to be correct.
>> On 2/22/2018 12:36 AM, Weijun Wang wrote:
>>> Please take a review at
>>> Two notes:
>>> 1. I tried list.subList(here, end).clear() but it's not faster.
>>> 2. I have looked at ConcurrentHashMap + ConcurrentSkipListMap but will need
>>> more time to verify its correctness and measure the performance gain. Since
>>> the bug is reported on 8u, a safer fix looks better.