Project

General

Profile

Actions

Improvement #752

closed

Implement evaluation cache

Improvement #752: Implement evaluation cache

Added by Federico Vera over 7 years ago. Updated about 7 years ago.

Status:
Resolved
Priority:
Wishlist
Assignee:
Target version:
Start date:
2018-07-10
Due date:
2018-08-01
% Done:

100%

Estimated time:
Difficulty:
Tags:

Description

As of now, every call to Expression#evaluate() reevaluates the whole expression.
This isn't a problem in and of itself, but it's a common error when using the library and creates an annoying performance hit.

  • Find all scenarios where this could fail
  • If an expression contains non-deterministic results, the value should not be cached
  • Cache should be cleaned if variable changes
  • What happens when using setVariables() with maps?
  • Create tests for expression evaluate

PS: We attempted to fix this with documentation and warnings... but still creates a problem. An internal (at least partial) solution shouldn't be hard to accomplish... I think...

Updated by Federico Vera over 7 years ago Actions #1

  • Tracker changed from Development to Improvement
  • Priority changed from Normal to Wishlist

Updated by Federico Vera over 7 years ago Actions #2

  • Target version changed from 0.7 to 1.0

Updated by Federico Vera about 7 years ago Actions #3

  • Description updated (diff)

Scenarios to fail:

  • Multiple async calls (will fail anyway)
  • Non deterministic functions

Updated by Federico Vera about 7 years ago Actions #4

  • % Done changed from 0 to 70

Updated by Federico Vera about 7 years ago Actions #5

  • Status changed from New to Resolved
  • % Done changed from 70 to 100
Actions

Also available in: PDF Atom