commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Dmitri Blinov (JIRA)" <j...@apache.org>
Subject [jira] [Created] (JEXL-277) Speedup arithmetic evaluations
Date Tue, 02 Oct 2018 08:29:00 GMT
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)

Mime
View raw message