You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@click.apache.org by "Gilberto C Andrade (JIRA)" <ji...@apache.org> on 2013/10/18 22:19:43 UTC
[jira] [Comment Edited] (CLK-306) Replacing OGNL with MVEL
[ https://issues.apache.org/jira/browse/CLK-306?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13635400#comment-13635400 ]
Gilberto C Andrade edited comment on CLK-306 at 10/18/13 8:18 PM:
------------------------------------------------------------------
I thought MVEL would be more performatic!
But:
{code}
gilberto.andrade@A37710:~/bin/click-trunk$ uname -a
Linux A37710.ADMINISTRACAO 3.7.10-1.1-desktop #1 SMP PREEMPT Thu Feb 28 15:06:29 UTC 2013 (82d3f21) x86_64 x86_64 x86_64 GNU/Linux
gilberto.andrade@A37710:~/bin/click-trunk$ javac -version
javac 1.7.0_17
gilberto.andrade@A37710:~/bin/click-trunk$ javac -version
gilberto.andrade@A37710:~/bin/click-trunk$ cat framework/classes/TEST-org.apache.click.service.PropertyServicePerformanceTest.txt
Testsuite: org.apache.click.service.PropertyServicePerformanceTest
Tests run: 2, Failures: 0, Errors: 0, Time elapsed: 20,103 sec
------------- Standard Error -----------------
OGNLPropertyService cumulative read test in 59599 ms
OGNLPropertyService cumulative write test in 27741 ms
MVELPropertyService cumulative read test in 97231 ms
MVELPropertyService cumulative write test in 27145 ms
------------- ---------------- ---------------
Testcase: test_OGNLService took 10,017 sec
Testcase: test_MVELService took 10,079 sec
{code}
Bob, would you mind to make your test again?
regards
was (Author: gilbertoca):
I thought MVEL would be more performatic!
But:
[CODE]
gilberto.andrade@A37710:~/bin/click-trunk$ uname -a
Linux A37710.ADMINISTRACAO 3.7.10-1.1-desktop #1 SMP PREEMPT Thu Feb 28 15:06:29 UTC 2013 (82d3f21) x86_64 x86_64 x86_64 GNU/Linux
gilberto.andrade@A37710:~/bin/click-trunk$ javac -version
javac 1.7.0_17
gilberto.andrade@A37710:~/bin/click-trunk$ javac -version
gilberto.andrade@A37710:~/bin/click-trunk$ cat framework/classes/TEST-org.apache.click.service.PropertyServicePerformanceTest.txt
Testsuite: org.apache.click.service.PropertyServicePerformanceTest
Tests run: 2, Failures: 0, Errors: 0, Time elapsed: 20,103 sec
------------- Standard Error -----------------
OGNLPropertyService cumulative read test in 59599 ms
OGNLPropertyService cumulative write test in 27741 ms
MVELPropertyService cumulative read test in 97231 ms
MVELPropertyService cumulative write test in 27145 ms
------------- ---------------- ---------------
Testcase: test_OGNLService took 10,017 sec
Testcase: test_MVELService took 10,079 sec
[/CODE]
Bob, would you mind to make your test again?
regards
> Replacing OGNL with MVEL
> ------------------------
>
> Key: CLK-306
> URL: https://issues.apache.org/jira/browse/CLK-306
> Project: Click
> Issue Type: New Feature
> Components: core
> Affects Versions: 1.4
> Environment: Target Click 1.5
> Reporter: Bob Schellink
> Assignee: Malcolm Edgar
> Fix For: 2.4.0-RC1
>
> Attachments: ASF.LICENSE.NOT.GRANTED--expression-language-performance.rar, ASF.LICENSE.NOT.GRANTED--expression-language-performance.zip, mvel.zip, patch.diff
>
>
> I have been following both OGNL and MVEL (another expression language) development the last couple of months. If we are going to make changes to this here are some things you might find interesting:
> * OGNL 2.7.1 which is included in tapestry 4.1, now sports byte code enhancement. This was added by one of the tapestry authors to make OGNL much faster than its reflection mode. However in my testing 2.7.1 threw exceptions every now and then. So still buggy.
> * MVEL (http://mvel.codehaus.org/) seems like a good replacement for OGNL. It has good docs and is actively developed. They even fixed a bug I logged! Like OGNL, MVEL also runs in two modes, either reflection or byte compiled. Unlike OGNL, MVEL's reflection mode is faster than Click's reflection mode.
> I am no expert on this but according to the article below (from MVEL's author), byte code enhancement have some problems in that generated classes accumulate in java's perm space and will only be removed when their classloader is removed.
> http://artexpressive.blogspot.com/2007/07/mvel-by-numbers-real-story.html
> So MVEL in reflection mode looks like an ideal solution here. The power of OGNL with the performance of Click reflection.
> Table columns can again take advantage of expressions. For example to aggregate a total for the row -> new Column("price * tax");
--
This message was sent by Atlassian JIRA
(v6.1#6144)