Hi again;
It seems you've found a real performance regression.
I've been playing some more and it seems the logic around the operator
overloading resolution/caching is flawed in the simplest case, i.e. when
there is no overload.
As a workaround, you may want to try using an overloading JexlArithmetic as
is:
{code}

    public static class JMeterArithmetic extends JexlArithmetic {
        public JMeterArithmetic(boolean astrict) {
            super(astrict);
        }

        /**
         * A workaround to create an operator overload
         * @param jma an improbable parameter class
         * @return 1
         */
        public int size(JMeterArithmetic jma) {
            return 1;
        }
    }
{code}

And use it at engine creation time:
{code}

        JexlEngine jexl = new JexlBuilder()
                    .cache(512)
                    .silent(true)
                    .strict(true)
                    .arithmetic(new JMeterArithmetic(true))
                    .create();
{code}

Let us know how it goes (if/when you find the time).





--
View this message in context: 
http://apache-commons.680414.n4.nabble.com/JEXL3-Performance-degradation-compared-to-2-1-1-tp4682086p4682110.html
Sent from the Commons - User mailing list archive at Nabble.com.

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to