Re: High performance with stateful TemplateDirectiveModel

Daniel Dekany <[email protected]> Tue, 16 Dec 2014 12:31:08 +0100
Newsgroups gmane.comp.web.freemarker.user
Message-ID <[email protected]>
Tuesday, December 16, 2014, 4:09:14 AM, Jerker Klang wrote:

> Hi Daniel!
>
> Interesting and useful. I'll check it out as soon as I get some time for
> it.
>
> I'm not sure I can use the isNestedOutputCachable() feature since some
> of the content that I want to cache may contain things that are using 
> dynamic expressions (like including a constant that is environment 
> specific).

For that to work well we would need parse-time resolved variables...
that we don't have (also could be added later, but it has some
preconditions, namely, namespace prefixes, that's not yet implemented,
and is far away).

> Still the whole new feature is interesting.
>
> Thanks!
>
> //Jerker
>
> On 12/15/2014 10:46 PM, Daniel Dekany wrote:
>> Yip, I know this problem, and I have just added a feature that targets
>> this and some more. Check out CachingUpperCaseDirective here:
>> https://github.com/freemarker/freemarker/blob/2.3-gae/src/test/java/freemarker/core/DirectiveCallPlaceTest.java
>>
>> It will be a new feature in 2.3.22, which should be released in early
>> 2015. So, for now you have to build it from the GitHub 2.3-gae branch
>> (it's important that it's the "gae" one), and please do so if you can,
>> and try to use it, and break it. I'm open for new suggestions of
>> course, until it's released.
>>
>> (I would say that the 2.3-gae head is pretty safe to use in
>> production, in case waiting for the be release is a problem. The new
>> API-s and features can change a bit though.)
>>
>> Monday, December 15, 2014, 9:42:19 AM, Jerker Klang wrote:
>>
>>> Hello all,
>>>
>>> I'd thinking about how I could attain template "compile time generation"
>>> optimizations the best way. Or maybe I'm just on the wrong track. Any
>>> comments would be helpful.
>>>
>>> I'm using Freemarker as html template engine. In that html I have
>>> sometimes a few <script>-tags containing javascript. The javascript
>>> could be optimized with one of numerous available optimization and
>>> minification tools available. I was thinking about doing a
>>> TemplateDirectiveModel that on the first run optimizes that code and any
>>> calls thereafter only returns the optimized part. Is this a good way to
>>> attain my goal (doing early, close to only once, expensive template
>>> translation). Of course the code within has to be written so it doesn't
>>> depend on anything that makes the code dynamic on each rendering.
>>>
>>> As I said, any feedback on my thoughts would be greatly appreciated!
>>>
>>> Have a great day!
>>>
>>> //Jerker
>>>
>
>
> ------------------------------------------------------------------------------
> Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server
> from Actuate! Instantly Supercharge Your Business Reports and Dashboards
> with Interactivity, Sharing, Native Excel Exports, App Integration & more
> Get technology previously reserved for billion-dollar corporations, FREE
> http://pubads.g.doubleclick.net/gampad/clk?id=164703151&iu=/4140/ostg.clktrk
> _______________________________________________
> FreeMarker-user mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/freemarker-user
>

-- 
Thanks,
 Daniel Dekany


------------------------------------------------------------------------------
Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server
from Actuate! Instantly Supercharge Your Business Reports and Dashboards
with Interactivity, Sharing, Native Excel Exports, App Integration & more
Get technology previously reserved for billion-dollar corporations, FREE
http://pubads.g.doubleclick.net/gampad/clk?id=164703151&iu=/4140/ostg.clktrk