[
https://issues.jboss.org/browse/JGRP-2043?page=com.atlassian.jira.plugin....
]
Sanne Grinovero commented on JGRP-2043:
---------------------------------------
Had some fun to check the idea:
||Benchmark||Mode||Cnt||Score||Error||Units||
|JMHBenchmarks.handleConstructor | thrpt | 20 | 259026577.394 | ± 11565939.282 |
ops/s|
|JMHBenchmarks.reflectionConstructor | thrpt | 20 | 109785986.116 | ± 1816899.921 |
ops/s|
|JMHBenchmarks.standardConstructor | thrpt | 20 | 251565737.383 | ± 10512663.697 |
ops/s|
Improve performance of Message#readHeader
-----------------------------------------
Key: JGRP-2043
URL:
https://issues.jboss.org/browse/JGRP-2043
Project: JGroups
Issue Type: Enhancement
Reporter: Sanne Grinovero
Assignee: Bela Ban
Priority: Minor
Fix For: 4.0
A CPU hot spot highlighed by profiling via JFR:
{noformat}Stack Trace Sample Count Percentage(%)
java.lang.reflect.Constructor.newInstance(Object[]) 71 2.392
java.lang.Class.newInstance() 71 2.392
org.jgroups.Message.readHeader(DataInput) 71 2.392
{noformat}
I'd have expected the reflective constructor to perform well on a recent JVM, but
apparently it's not in this case. A theory is that the {{Class}} type being unknown
makes this code harder to optimise; needs to be looked into.
It might be possible to patch the {{ClassConfigurator}} to provide instances of the
required {{Header}} type rather than returning the class, and optimise that instead.
--
This message was sent by Atlassian JIRA
(v6.4.11#64026)