[jira] [Created] (VELOCITY-979) Performance issue with comparing strings in Velocity

"Alex (Jira)" <[email protected]>
Newsgroups gmane.comp.jakarta.velocity.devel
Message-ID <[email protected]>
Alex created VELOCITY-979:
-----------------------------

             Summary: Performance issue with comparing strings in Velocity
                 Key: VELOCITY-979
                 URL: https://issues.apache.org/jira/browse/VELOCITY-979
             Project: Velocity
          Issue Type: Improvement
          Components: Engine
    Affects Versions: 2.3
            Reporter: Alex


Most Velocity compare expressions eventually use ASTComparisonNode which at first attempts to treat data types as numbers:

 
Boolean result = compareNumbers(left, right);
if (result == null)
{
result = compareNonNumber(left, right);
}
 
There is fairly large overhead when attempting to create BigDecimal from non-numeric strings used in comparison in the DuckType.asNumber:
 
if (coerceType)
{
String string = asString(value);// coerce to string
if (string != null)
{
return new BigDecimal(string);
}
}
 
The exception is created capturing stack, etc. On large volume of compare operations it's very visible.
 



--
This message was sent by Atlassian Jira
(v8.20.10#820010)
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.