You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@qpid.apache.org by "ASF GitHub Bot (Jira)" <ji...@apache.org> on 2022/09/23 10:05:00 UTC

[jira] [Commented] (QPID-8601) [Broker-J] Broker-J instrumentation agent

    [ https://issues.apache.org/jira/browse/QPID-8601?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17608670#comment-17608670 ] 

ASF GitHub Bot commented on QPID-8601:
--------------------------------------

dakirily opened a new pull request, #141:
URL: https://github.com/apache/qpid-broker-j/pull/141

   This PR addresses [QPID-8601](https://issues.apache.org/jira/browse/QPID-8601) introducing an static instrumentation agent, which replaces some of the reflection method invocations with static final MethodHandle calls.




> [Broker-J] Broker-J instrumentation agent
> -----------------------------------------
>
>                 Key: QPID-8601
>                 URL: https://issues.apache.org/jira/browse/QPID-8601
>             Project: Qpid
>          Issue Type: Improvement
>          Components: Broker-J
>    Affects Versions: qpid-java-broker-8.0.6
>            Reporter: Daniil Kirilyuk
>            Priority: Minor
>
> Broker model objects heavily rely on java reflection. 
> Java version 7/8 introduced reflection alternatives allowing to access class fields as well as call class methods. Brief review of those alternatives can be found in this [blog post|https://www.optaplanner.org/blog/2018/01/09/JavaReflectionButMuchFaster.html].
> There are further changes coming, e.g. [JEP 416|https://openjdk.org/jeps/416] (implemented in Java 18), having as a goal reimplementation of java.lang.reflect.Method, Constructor, and Field on top of java.lang.invoke method handles. Jackson databind library already has an [issue|https://github.com/FasterXML/jackson-databind/issues/2083] directed to replace reflection calls with method handles. Similar approach is used in [spring data|https://github.com/spring-projects/spring-data-commons/blob/main/src/main/java/org/springframework/data/mapping/model/ClassGeneratingPropertyAccessorFactory.java] framework as well.
> We suggest to implement a static instrumentation object, which will replace reflection method invocation with the invocations of static final MethodHandle instances.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@qpid.apache.org
For additional commands, e-mail: dev-help@qpid.apache.org