Based on the 3.0.3 code that'd probably be doable (and I think 4.0
is quite a bit more pluggable (and flexible) with its data binders than
3.0.3. Practically speaking, the number of hops doesn't matter much from a
complexity standpoint, so if you have the code to automatically swap
"ognl:foo" into a prop call, then
"ognl:foo.bar" is really just the same thing, only twice.
The places it would get more complicated are expressions that use
operators e.g.
"ognl:foo > bar"
Or
"ognl:new Object[] {foo, bar}"
Calls like that will probably have to remain OGNL for the
foreseeable futures (because I doubt Howard wants to write an expression
parser and compiler), but, as Howard has mentioned, the 80% case is just
simple gets and sets, so even if he can only speed up that limited subset of
the expressions out there, it'd have a disproportionate (and positive)
impact on performance.
--- Pat
> -----Original Message-----
> From: news [mailto:[EMAIL PROTECTED] On Behalf Of Marcus Brito
> Sent: Tuesday, November 22, 2005 4:07 AM
> To: [email protected]
> Subject: Re: Ways to Make OGNL Run Faster
>
> Howard Lewis Ship <hlship <at> gmail.com> writes:
>
> > I'm squandering some cycles on tapestry-prop, which adds a "prop:"
> > prefix. It makes the cost of a single "hop" drop by a factor of 10 or
> > so.
>
> Tt would be nice to add a piece of code to automatically use "prop" if the
> OGNL
> expression is just one hop away; this would give a nice speed boost to
> existing
> applications, without changing a single line.
>
> Maybe the whole "ognl:" thing is wrong and it should have been called
> "ref:" or
> something like that, and the reference resolver should have been
> pluggable. This
> would be a very nice improvement for Tapestry 4.x -- the "ognl:" prefix
> could be
> kept for a couple years for backwards compatibility.
>
> -- Marcus Brito <[EMAIL PROTECTED]>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]