RFR: 8346230: [perf] scalability issue for the specjvm2008::xml.transform workload [v4]

Joe Wang joehw at openjdk.org
Tue Mar 25 22:13:12 UTC 2025


On Fri, 14 Mar 2025 01:28:34 GMT, Vladimir Ivanov <vaivanov at openjdk.org> wrote:

>> The HashMap for caching was deleted. Now it use only ThreadLocal variable without synchronization.
>> According to the specjvm2008::xml.transform workload the performance for low threads counts was not affected and improved for high threads counts. 
>> For the 2 socket server based on Xeon 6780E reported scores are (average for 3 runs):
>> 2x6780E | 1C | 32C | 64C | 96C | 128C | 160C | 192C | 224C | 256C | 288C
>> orig        | 138.9567 | 4127.567 | 8203.907 | 12252.07 | 15496.65 | 16222.91 | 15846.48 | 14758.43 | 14612.34 | 13969.25
>> patched | 139.7067 | 4118.763 | 8352.657 | 12491.14 | 16085.63 | 18101.67 | 21001.52 | 23847.33 | 26481.25 | 28273.93
>
> Vladimir Ivanov has updated the pull request incrementally with one additional commit since the last revision:
> 
>   8346230 [perf] scalability issue for the specjvm2008::xml.transform workload

I see in the latest update, you've removed sync and inUse. Both are fine as Transformers are not designed to be used concurrently and inUse is unnecessary as each thread has its own reader. If you're interested, you may look into more history in the upstream Xalan code where DTMManager was added with sync because of finalization. Otherwise, the change is fine to me. Please address Alan's comment. Also, copyright year and @LastModified tag need to be updated.

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

PR Review: https://git.openjdk.org/jdk/pull/23185#pullrequestreview-2715322973


More information about the core-libs-dev mailing list