cayenne-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Andrus Adamchik (JIRA)" <>
Subject [jira] [Closed] (CAY-1998) Speeding up PropertyUtils
Date Thu, 02 Apr 2015 18:04:55 GMT


Andrus Adamchik closed CAY-1998.
       Resolution: Fixed
    Fix Version/s: 4.0.M3

Ended up with a solution precompiling property path to a linked list of unresolved Accessors.
When each object is evaluated, each path component has to look up a "segment" Accessor in
the cache, and then call it to get the value. 

Perhaps we'll be able to build something more efficient with java 7 MethodHandles (as those
do not require us to know upfront the type of the target object for evaluation).

Still need to run performance tests.

> Speeding up PropertyUtils
> -------------------------
>                 Key: CAY-1998
>                 URL:
>             Project: Cayenne
>          Issue Type: Improvement
>            Reporter: Andrus Adamchik
>            Assignee: Andrus Adamchik
>             Fix For: 4.0.M3
> PropertyUtils are very slow (especially in multi-threaded apps) when working with POJOs
as every call to 'getProperty' results in java.beans.Introspector call , that is synchronized
and slow. Hoping that replacing this with an internal cache of accessors per path would improve
the situation.

This message was sent by Atlassian JIRA

View raw message