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)