Graham Murray created OLINGO-748:
------------------------------------

             Summary: V4 Java Client needs lots of performance tuning.
                 Key: OLINGO-748
                 URL: https://issues.apache.org/jira/browse/OLINGO-748
             Project: Olingo
          Issue Type: Improvement
          Components: odata4-client
    Affects Versions: (Java) V4 4.0.0-beta-03
            Reporter: Graham Murray
            Priority: Critical


Removing some of the reflection based equality has helped, but Olingo's Java 
Client is still painfully slow on Android. A lot of this can be traced to the 
fact that the client requests 

json and odata.metadata=full as the default pub format.

This can be configured, obviously, and wouldn't be so bad, except a lot of the 
type metadata and link metadata processing is way too slow at the moment. So 
when you dial up the density of the metadata and annotations stuff gets pretty 
slow.

Some of the more major issues are caused by the fact that:

* The code often transitions between FullQualifiedName to a string rep and back 
to a FullQualifiedName which incurs a lot of string processing overhead.
* Creating URIs on Android is super slow. If possible Olingo should probably 
leave the link URI's unconstructed until they are absolutely required rather 
than hydrating/validating them at parse time.
* The validation performed on DateTimeOffset's appears to need more tuning.
* A lot of time is spent matching regular expressions. There are a few 
uncompiled patterns in play, if any short cuts can be brought into play to more 
quickly check if a pattern would even apply (character sampling) that might be 
a good idea.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to