This PR improves the performance of deduplication done by 
ResourceBundleGenerator.

The original implementation compared every pair of values, requiring O(n^2) 
time. The new implementation uses a HashMap to find duplicates, trading off 
some extra memory consumption for O(n) computational complexity. In practice 
the time to generate jdk.localedata on my Linux VM files dropped from 14 to 8 
seconds.

The resulting files (under build/support/gensrc/java.base and jdk.localedata) 
have different contents; map iteration order depends on the insertion order, 
and the insertion order of the new implementation is different from the 
original.
The files generated before and after this change have the same size.

-------------

Commit messages:
 - Speed up CLDR deduplication

Changes: https://git.openjdk.org/jdk/pull/9243/files
 Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=9243&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8288979
  Stats: 101 lines in 1 file changed: 56 ins; 27 del; 18 mod
  Patch: https://git.openjdk.org/jdk/pull/9243.diff
  Fetch: git fetch https://git.openjdk.org/jdk pull/9243/head:pull/9243

PR: https://git.openjdk.org/jdk/pull/9243

Reply via email to