Created attachment 29322 [details] patchSmall.diff "IdentityStack.containsAll(Collection coll)" has a similar performance problem as the previously fixed Bug 53622 (for "VectorSet.retainAll(Collection coll)"). The problem is that "containsAll(Collection coll)" performs "this.contains(e.next())", which is slow because "this" is an IdentityStack, i.e., a Vector, and therefore "contains" is linear. I attached a patch (patchSmall.diff) similar to the one used by Jesse Glick in Bug 53622. I attached an improved patch (patchFull.diff) that builds the IdentityHashMap lazily, which gives slightly better performance than patchSmall.diff (which builds IdentityHashMap eagerly). I also attached a test that exposes this problem. For this test, patchSmall.diff provides a 676X speedup on my machine. To run the test, just do: $ java Test The output for the un-patched version is: Time is 17572 The output for the patched version is: Time is 26
Created attachment 29323 [details] patchFull.diff
Created attachment 29324 [details] test
svn revision 1554813