Currently the rule code is compiled on every execution. Apart from performance impact of the compilation, this results in process private bytes growing on every execution as the dynamically compiled assemblies are never unloaded. After a number of executions, they start failing with an OutOfMemoryException.
This change does not fix the memory leak but it does make sure the rules are not recompiled unless they changed, so the leaking rate does not depend on number of rule executions.
Currently the rule code is compiled on every execution. Apart from performance impact of the compilation, this results in process private bytes growing on every execution as the dynamically compiled assemblies are never unloaded. After a number of executions, they start failing with an OutOfMemoryException.
This change does not fix the memory leak but it does make sure the rules are not recompiled unless they changed, so the leaking rate does not depend on number of rule executions.