On Wed, 2002-03-13 at 05:19, Geir Magnusson Jr. wrote:

> 
> I guess the question is - is there any point to doing this? :)  It's not
> clear to me what kind of real performance improvements can be realized by
> compiling, because once the template is intepreted, it's bytecode, right?

The AST is bytecode, but I believe the compiled form of a template would
be different in that the reflection would be removed and if types place
in the context were immutable then I believe the compiler would make
things faster.
 
> I think the motivation for starting a compiler was when we believed that JSP
> was incredibly fast and Velocity was slow.  Since thing, we have proved to
> ourselves many times that Velocity is comparable in performance to JSP,
> which is of course, compiled from generated Java code.

I think velocity is comparable to jakarta implementations of JSP but I'm
not sure there has been many comparisons with other JSP implementations.
I am still willing to bet 10 bucks (american bucks ;-)) that the
compiler would make a significant improvement. But some internal changes
to velocity would be required in order to make this actually work. A
core that stated immutable types in the context which would allow for
real complication with the option to allow mutable types if you wished.
Hashtables are convenient and I know people use them but I think that
allow mutable types in the context actually promotes bad design.

> I would be interested in understanding if there really is potential for
> improvement doing this, or if we are just making things more complex with no
> real benefit.
> 
> In the case above, you took what is now basically
> 
>   for(int j=0; j<numchildren; j++)
>   {
>     getChild(j).render();
>   }
> 
> And unwound the loop into the two writes
> 
> I am sure there is performance improvement there and it could significant in
> such a trivial case (or other optimal situations), but the question is how
> that improvement scales for real-world templates.

I believe the expansion would be greater than this and the AST wouldn't
be reference at all in the final compiled version of the template.

I am honestly not going to be tackling any sort of compiler until
Turbine is finished so I may never be working on a compiler ;-)

> Geir
> 
> -- 
> Geir Magnusson Jr.                                     [EMAIL PROTECTED]
> System and Software Consulting
> "He who throws mud only loses ground." - Fat Albert
> 
> 
> --
> To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>
-- 
jvz.

Jason van Zyl
[EMAIL PROTECTED]

http://tambora.zenplex.org


--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to