On Tue, Oct 18, 2016 at 4:00 PM, Vitaly Davidovich <vita...@gmail.com> wrote:
> >> > * Change in allocation/capacity policy. >> > >> > The removal of the power-of-two restriction, and applying a 1.5x growth >> > factor (same as ArrayList) seems sensible. Does this mean that the >> ability >> > to compute the proper array index by using x & (length-1) wasn't worth >> it? >> > Or at least not worth the extra tail wastage? >> > >> >> There's no integer division to optimize, as with hash tables. > > But it does add some new branches, doesn't it? Potentially branches that > aren't taken prior to JIT compilation, but taken later = deopt. > If it's a smidgeon slower, I don't care that much; improvement in flexibility and scalability are more important. Of course, I do care about algorithmic improvements to e.g. removeIf > Curious if you ran some benchmarks on ArrayDeque. > Not yet. Who would like to show how slow the code is? > Also, some odd stylistic things, such as: > > while (s == (capacity = (elements = this.elements).length)) > > Is this an attempt to help the JIT or something? > > "jsr166 style" - makes it easy on javac and the JIT, if not for humans.