Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open peer review of the Epsilon Solution #5

Open
georghinkel opened this issue Jun 16, 2021 · 1 comment
Open

Open peer review of the Epsilon Solution #5

georghinkel opened this issue Jun 16, 2021 · 1 comment
Labels
question Further information is requested

Comments

@georghinkel
Copy link
Contributor

First, sorry for the late response, I did not have an internet connection in the last couple of days. I could only do a short review so far, will do a more in-depth review in the next couple of days.

The solution looks good to me, very clean and understandable. The only thing, the performance is not so good. Is this because of a one-time effort (JVM war-up or alike) or really time for the transformation itself? Judging from the fact that the times are almost the same for all cases, I would guess the former. A second seems a lot of time for me. It would be interesting to know whether it will always be like that.

@agarciadom agarciadom added the question Further information is requested label Jun 19, 2021
@agarciadom
Copy link
Member

agarciadom commented Jun 19, 2021

Yes, it is because of the JVM warmup. I have just pushed some changes to the Epsilon SampleLauncher class which transforms all OCL queries in one pass, rather than starting a new Java process for each OCL query, so it measures transformation times. (Note, however, that I had to use the models before the changes you introduced that caused the regression in #6).

The times are much smaller, and closer to NMF:

Transforming ../../models/Stage0Challenge0.xmi into outputs/Stage0Challenge0-egl.sql
Transformed in 1.02 seconds
Transforming ../../models/Stage0Challenge1.xmi into outputs/Stage0Challenge1-egl.sql
Transformed in 0.33 seconds
Transforming ../../models/Stage0Challenge2.xmi into outputs/Stage0Challenge2-egl.sql
Transformed in 0.21 seconds
Transforming ../../models/Stage1Challenge0.xmi into outputs/Stage1Challenge0-egl.sql
Transformed in 0.20 seconds
Transforming ../../models/Stage1Challenge1.xmi into outputs/Stage1Challenge1-egl.sql
Transformed in 0.20 seconds
Transforming ../../models/Stage1Challenge2.xmi into outputs/Stage1Challenge2-egl.sql
Transformed in 0.16 seconds
Transforming ../../models/Stage2Challenge0.xmi into outputs/Stage2Challenge0-egl.sql
Transformed in 0.13 seconds
Transforming ../../models/Stage3Challenge0.xmi into outputs/Stage3Challenge0-egl.sql
Transformed in 0.16 seconds
Transforming ../../models/Stage3Challenge1.xmi into outputs/Stage3Challenge1-egl.sql
Transformed in 0.13 seconds
Transforming ../../models/Stage4Challenge0.xmi into outputs/Stage4Challenge0-egl.sql
Transformed in 0.13 seconds
Transforming ../../models/Stage4Challenge1.xmi into outputs/Stage4Challenge1-egl.sql
Transformed in 0.14 seconds
Transforming ../../models/Stage4Challenge2.xmi into outputs/Stage4Challenge2-egl.sql
Transformed in 0.15 seconds
Transforming ../../models/Stage5Challenge0.xmi into outputs/Stage5Challenge0-egl.sql
Transformed in 0.11 seconds
Transforming ../../models/Stage5Challenge1.xmi into outputs/Stage5Challenge1-egl.sql
Transformed in 0.14 seconds
Transforming ../../models/Stage6Challenge0.xmi into outputs/Stage6Challenge0-egl.sql
Transformed in 0.19 seconds
Transforming ../../models/Stage6Challenge1.xmi into outputs/Stage6Challenge1-egl.sql
Transformed in 0.18 seconds
Transforming ../../models/Stage7Challenge0.xmi into outputs/Stage7Challenge0-egl.sql
Transformed in 0.10 seconds
Transforming ../../models/Stage7Challenge1.xmi into outputs/Stage7Challenge1-egl.sql
Transformed in 0.10 seconds
Transforming ../../models/Stage7Challenge2.xmi into outputs/Stage7Challenge2-egl.sql
Transformed in 0.17 seconds
Transforming ../../models/Stage7Challenge3.xmi into outputs/Stage7Challenge3-egl.sql
Transformed in 0.13 seconds
Transforming ../../models/Stage8Challenge0.xmi into outputs/Stage8Challenge0-egl.sql
Transformed in 0.15 seconds

This issue is partly due to the fact that the ETL interpreter has some warm-up delays of its Java code, and also to the fact that ETL is an interpreted language. We need to parse the scripts from scratch on every run. In comparison, your solution is already compiled to bytecode, so it can start running sooner.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
question Further information is requested
Projects
None yet
Development

No branches or pull requests

2 participants