On Fri, 8 Aug 2025 17:31:52 GMT, Chen Liang <li...@openjdk.org> wrote:
>> JDK-8351996, PR #24043, updated java.lang.ClassValue, but accidentally >> missed a piece of cache refresh code that is meaningful when the cache is >> speculatively invalidated by `remove` calls. >> >> This caused a significant regression in the >> [PageRank](https://github.com/renaissance-benchmarks/renaissance/blob/master/benchmarks/apache-spark/src/main/scala/org/renaissance/apache/spark/PageRank.scala) >> benchmark, primarily because Scala array creation like `Array.fill` uses >> `scala.reflect.ClassTag` which uses `ClassValue`, making `ClassValue.get` a >> hot code path for every array creation. > > Chen Liang has updated the pull request with a new target base due to a merge > or a rebase. The incremental webrev excludes the unrelated changes brought in > by the merge/rebase. The pull request contains five additional commits since > the last revision: > > - Rename test > - Merge branch 'master' of https://github.com/openjdk/jdk into > fix/classvalue-cache-miss > - Merge branch 'master' of https://github.com/openjdk/jdk into > fix/classvalue-cache-miss > - Test > - Cache miss when remove is called on another class Thanks for the reviews. On a side note, a release note for this regression is written for 25. I will integrate to facilitate backport into 25u. ------------- PR Comment: https://git.openjdk.org/jdk/pull/26679#issuecomment-3172241024