Dmitri Blinov created JEXL-277:
----------------------------------
Summary: Speedup arithmetic evaluations
Key: JEXL-277
URL: https://issues.apache.org/jira/browse/JEXL-277
Project: Commons JEXL
Issue Type: Improvement
Affects Versions: 3.1
Environment: The [PR
15|https://github.com/apache/commons-jexl/pull/15] is prepared for this ticket
Reporter: Dmitri Blinov
As of now, Jexl inefficiently evaluates operators *+*, *-*, */*, *%*, *\** on
Integer and Long types as it casts operands to BigInteger type, applies
operation and casts the result back. This for example, creates 3 BigInteger
instances for a simple operation of 1+1. All evaluations on Integer types, and
in some cases, on Long types, can be performed on corresponding primitive
*long* values, which is a magnitute of 200%-300% faster, in my measurments, and
unneeded objects are not allocated on heap. Another point is to make selfAssign
operators *overridable* in descendands of JexlArithmetic, instead of being able
to be *oveloaded*, which can save the time by avoiding reflection when using
syntax like {code}x += 1{code}.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)