Skip to content

Significant performance degradation of expressions' evaluation switching from 1.16 to 1.17 #814

@eugene-furs

Description

@eugene-furs

Describe the bug
After switching FEEL implementation from 1.16 to 1.17 it has been observed that performance of expressions' evaluation significantly degraded. In our test case with 6 million evaluations (6 expressions 1 million times each) the performance became about 6 times slower for not pre-parsed expressions and 12 times slower for pre-parsed expressions.

To Reproduce
Steps to reproduce the behavior (our test case setup):

  1. Prepare 6 FEEL expressions to be evaluated on provided context
  2. Generate 1000 contexts (Map<String, Object> in our case)
  3. 1000 times: evaluate each expression for each context and measure time of overall evaluation running the test with FEEL 1.16 and 1.17

Alternatively the attached test code can be used switching FEEL versions in pom.xml.
FEEL-Perf.zip

Expected behavior
About the same performance of expressions' evaluation or reasonable low performance degradation

Environment

  • FEEL engine version: [1.17.5] versus [1.16.1]
  • Affects:
    • Custom software solution using feel-scala library

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions