Summary: | OCL Interpreter works very slowly | ||||||
---|---|---|---|---|---|---|---|
Product: | [Modeling] Sirius | Reporter: | Alexander Strakh <strakh> | ||||
Component: | Core | Assignee: | Project inbox <sirius.core-inbox> | ||||
Status: | NEW --- | QA Contact: | |||||
Severity: | normal | ||||||
Priority: | P3 | CC: | maxime.porhel, pierre-charles.david | ||||
Version: | unspecified | Keywords: | triaged | ||||
Target Milestone: | --- | ||||||
Hardware: | PC | ||||||
OS: | Linux | ||||||
Whiteboard: | |||||||
Attachments: |
|
Hi Alexander, Thanks for your proposed patch. Could you submit a patch set to Gerrit ? Then we will use it to discuss the technical aspects of the proposed solution. See the Contributor Guide at [1]. Could you also try to use Acceleo expressions instead of OCL ones ? As mentioned in the Sirius Specifier Guide: 'It is highly recommended that you use Acceleo, which implemented the MTL standard and is a super-set of the OCL language, instead of raw OCL.' (see [2] and [3]) Acceleo is a super-set of the OCL language and the Acceleo interpreter already has a cache mechanism. Regards, Maxime [1] http://wiki.eclipse.org/Sirius/Contributor_Guide [2] http://www.eclipse.org/sirius/doc/specifier/general/Writing_Queries.html#acceleo [3] http://www.eclipse.org/sirius/doc/specifier/general/Writing_Queries.html#ocl |
Created attachment 247568 [details] Patch with cache implementation for OCL Interpreter OCL interpreter works very slowly on my project. I have about 200 different nodes with many identical ocl expressions. As a result I forced to wait about 666 sec. After inserting cache implementation for ocl expressions I have result - about 1sec. Is it possible to apply my patch? Patch in attachement.