You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@freemarker.apache.org by Tamás Barta <ba...@gmail.com> on 2019/11/04 22:00:19 UTC
Performance problem
Hi,
Could you please help me. I use Freemarker templates for a web site for
about 6 month and so far so good. Unfortunately since last week I have
serious performance problems. I couldn't find out what is going on, but
from thread dump I saw that almost every threads look like this:
at freemarker.core.FMParserTokenManager.jjMoveNfa_0(FMParserTokenManager.java:636)
at freemarker.core.FMParserTokenManager.jjMoveStringLiteralDfa0_0(FMParserTokenManager.java:530)
at freemarker.core.FMParserTokenManager.getNextToken(FMParserTokenManager.java:8008)
at freemarker.core.FMParser.jj_ntk_f(FMParser.java:5676)
at freemarker.core.FMParser.MixedContentElements(FMParser.java:3694)
at freemarker.core.FMParser.UnifiedMacroTransform(FMParser.java:2872)
at freemarker.core.FMParser.FreemarkerDirective(FMParser.java:3457)
at freemarker.core.FMParser.MixedContentElements(FMParser.java:3812)
at freemarker.core.FMParser.Root(FMParser.java:4458)
at freemarker.template.Template.(Template.java:253)
at freemarker.cache.TemplateCache.loadTemplate(TemplateCache.java:549)
at freemarker.cache.TemplateCache.getTemplateInternal(TemplateCache.java:439)
at freemarker.cache.TemplateCache.getTemplate(TemplateCache.java:292)
at freemarker.template.Configuration.getTemplate(Configuration.java:2750)
at freemarker.template.Configuration.getTemplate(Configuration.java:2599)
or
at freemarker.core.FMParserTokenManager.jjMoveNfa_0(FMParserTokenManager.java:634)
at freemarker.core.FMParserTokenManager.jjMoveStringLiteralDfa0_0(FMParserTokenManager.java:530)
at freemarker.core.FMParserTokenManager.getNextToken(FMParserTokenManager.java:8008)
at freemarker.core.FMParser.jj_ntk_f(FMParser.java:5676)
at freemarker.core.FMParser.PCData(FMParser.java:3604)
at freemarker.core.FMParser.MixedContentElements(FMParser.java:3756)
at freemarker.core.FMParser.If(FMParser.java:1689)
at freemarker.core.FMParser.FreemarkerDirective(FMParser.java:3422)
at freemarker.core.FMParser.MixedContentElements(FMParser.java:3812)
at freemarker.core.FMParser.If(FMParser.java:1663)
at freemarker.core.FMParser.FreemarkerDirective(FMParser.java:3422)
at freemarker.core.FMParser.MixedContentElements(FMParser.java:3812)
at freemarker.core.FMParser.If(FMParser.java:1663)
at freemarker.core.FMParser.FreemarkerDirective(FMParser.java:3422)
at freemarker.core.FMParser.MixedContentElements(FMParser.java:3812)
at freemarker.core.FMParser.Root(FMParser.java:4458)
at freemarker.template.Template.(Template.java:253)
at freemarker.cache.TemplateCache.loadTemplate(TemplateCache.java:549)
at freemarker.cache.TemplateCache.getTemplateInternal(TemplateCache.java:439)
at freemarker.cache.TemplateCache.getTemplate(TemplateCache.java:292)
at freemarker.template.Configuration.getTemplate(Configuration.java:2750)
at freemarker.template.Configuration.getTemplate(Configuration.java:2599)
Do you have any ideas where to find the problem? I use Freemarker 2.3.28.
Thanks, Tamás
Re: Performance problem
Posted by Siegfried Goeschl <si...@gmail.com>.
Hi Tamás,
thanks for getting back - think this is vaguely mentioned in https://freemarker.apache.org/docs/pgui_config_templateloading.html
Thanks in advance,
Siegfried Goeschl
> On 5 Nov 2019, at 14:44, Tamás Barta <ba...@gmail.com> wrote:
>
> Hi,
>
> Finally I managed to find it out that it was memory problem and I didn't
> know before that Freemarker uses soft-references cache inside by default,
> so parsed templates were cleared out and then parsed way too often.
> Traffic is increasing very fast in a webshop like ours as Christmas is
> coming so a few days ago it reached a problematic level.
>
> Regards, Tamás
>
> On Tue, Nov 5, 2019 at 10:56 AM Siegfried Goeschl <
> siegfried.goeschl@gmail.com> wrote:
>
>> Hi Tamas,
>>
>> I’m a Freemarker rookie but looking after performance problems is my daily
>> business :-)
>>
>> IMHO the key question is - what has suddenly changed?
>>
>> * New deployment?
>> * Changes to templates?
>> * Robots killing your website?
>> * Changed usage pattern of your website due client software release?
>>
>> Thanks in advance,
>>
>> Siegfried Goeschl
>>
>>> On 4 Nov 2019, at 23:00, Tamás Barta <ba...@gmail.com> wrote:
>>>
>>> Hi,
>>>
>>> Could you please help me. I use Freemarker templates for a web site for
>>> about 6 month and so far so good. Unfortunately since last week I have
>>> serious performance problems. I couldn't find out what is going on, but
>>> from thread dump I saw that almost every threads look like this:
>>>
>>> at
>> freemarker.core.FMParserTokenManager.jjMoveNfa_0(FMParserTokenManager.java:636)
>>> at
>> freemarker.core.FMParserTokenManager.jjMoveStringLiteralDfa0_0(FMParserTokenManager.java:530)
>>> at
>> freemarker.core.FMParserTokenManager.getNextToken(FMParserTokenManager.java:8008)
>>> at freemarker.core.FMParser.jj_ntk_f(FMParser.java:5676)
>>> at
>> freemarker.core.FMParser.MixedContentElements(FMParser.java:3694)
>>> at
>> freemarker.core.FMParser.UnifiedMacroTransform(FMParser.java:2872)
>>> at freemarker.core.FMParser.FreemarkerDirective(FMParser.java:3457)
>>> at
>> freemarker.core.FMParser.MixedContentElements(FMParser.java:3812)
>>> at freemarker.core.FMParser.Root(FMParser.java:4458)
>>> at freemarker.template.Template.(Template.java:253)
>>> at
>> freemarker.cache.TemplateCache.loadTemplate(TemplateCache.java:549)
>>> at
>> freemarker.cache.TemplateCache.getTemplateInternal(TemplateCache.java:439)
>>> at
>> freemarker.cache.TemplateCache.getTemplate(TemplateCache.java:292)
>>> at
>> freemarker.template.Configuration.getTemplate(Configuration.java:2750)
>>> at
>> freemarker.template.Configuration.getTemplate(Configuration.java:2599)
>>>
>>>
>>> or
>>>
>>>
>>> at
>> freemarker.core.FMParserTokenManager.jjMoveNfa_0(FMParserTokenManager.java:634)
>>> at
>> freemarker.core.FMParserTokenManager.jjMoveStringLiteralDfa0_0(FMParserTokenManager.java:530)
>>> at
>> freemarker.core.FMParserTokenManager.getNextToken(FMParserTokenManager.java:8008)
>>> at freemarker.core.FMParser.jj_ntk_f(FMParser.java:5676)
>>> at freemarker.core.FMParser.PCData(FMParser.java:3604)
>>> at
>> freemarker.core.FMParser.MixedContentElements(FMParser.java:3756)
>>> at freemarker.core.FMParser.If(FMParser.java:1689)
>>> at freemarker.core.FMParser.FreemarkerDirective(FMParser.java:3422)
>>> at
>> freemarker.core.FMParser.MixedContentElements(FMParser.java:3812)
>>> at freemarker.core.FMParser.If(FMParser.java:1663)
>>> at freemarker.core.FMParser.FreemarkerDirective(FMParser.java:3422)
>>> at
>> freemarker.core.FMParser.MixedContentElements(FMParser.java:3812)
>>> at freemarker.core.FMParser.If(FMParser.java:1663)
>>> at freemarker.core.FMParser.FreemarkerDirective(FMParser.java:3422)
>>> at
>> freemarker.core.FMParser.MixedContentElements(FMParser.java:3812)
>>> at freemarker.core.FMParser.Root(FMParser.java:4458)
>>> at freemarker.template.Template.(Template.java:253)
>>> at
>> freemarker.cache.TemplateCache.loadTemplate(TemplateCache.java:549)
>>> at
>> freemarker.cache.TemplateCache.getTemplateInternal(TemplateCache.java:439)
>>> at
>> freemarker.cache.TemplateCache.getTemplate(TemplateCache.java:292)
>>> at
>> freemarker.template.Configuration.getTemplate(Configuration.java:2750)
>>>
>>> at
>> freemarker.template.Configuration.getTemplate(Configuration.java:2599)
>>>
>>>
>>> Do you have any ideas where to find the problem? I use Freemarker 2.3.28.
>>>
>>>
>>> Thanks, Tamás
>>
>>
Re: Performance problem
Posted by Tamás Barta <ba...@gmail.com>.
Hi,
Finally I managed to find it out that it was memory problem and I didn't
know before that Freemarker uses soft-references cache inside by default,
so parsed templates were cleared out and then parsed way too often.
Traffic is increasing very fast in a webshop like ours as Christmas is
coming so a few days ago it reached a problematic level.
Regards, Tamás
On Tue, Nov 5, 2019 at 10:56 AM Siegfried Goeschl <
siegfried.goeschl@gmail.com> wrote:
> Hi Tamas,
>
> I’m a Freemarker rookie but looking after performance problems is my daily
> business :-)
>
> IMHO the key question is - what has suddenly changed?
>
> * New deployment?
> * Changes to templates?
> * Robots killing your website?
> * Changed usage pattern of your website due client software release?
>
> Thanks in advance,
>
> Siegfried Goeschl
>
> > On 4 Nov 2019, at 23:00, Tamás Barta <ba...@gmail.com> wrote:
> >
> > Hi,
> >
> > Could you please help me. I use Freemarker templates for a web site for
> > about 6 month and so far so good. Unfortunately since last week I have
> > serious performance problems. I couldn't find out what is going on, but
> > from thread dump I saw that almost every threads look like this:
> >
> > at
> freemarker.core.FMParserTokenManager.jjMoveNfa_0(FMParserTokenManager.java:636)
> > at
> freemarker.core.FMParserTokenManager.jjMoveStringLiteralDfa0_0(FMParserTokenManager.java:530)
> > at
> freemarker.core.FMParserTokenManager.getNextToken(FMParserTokenManager.java:8008)
> > at freemarker.core.FMParser.jj_ntk_f(FMParser.java:5676)
> > at
> freemarker.core.FMParser.MixedContentElements(FMParser.java:3694)
> > at
> freemarker.core.FMParser.UnifiedMacroTransform(FMParser.java:2872)
> > at freemarker.core.FMParser.FreemarkerDirective(FMParser.java:3457)
> > at
> freemarker.core.FMParser.MixedContentElements(FMParser.java:3812)
> > at freemarker.core.FMParser.Root(FMParser.java:4458)
> > at freemarker.template.Template.(Template.java:253)
> > at
> freemarker.cache.TemplateCache.loadTemplate(TemplateCache.java:549)
> > at
> freemarker.cache.TemplateCache.getTemplateInternal(TemplateCache.java:439)
> > at
> freemarker.cache.TemplateCache.getTemplate(TemplateCache.java:292)
> > at
> freemarker.template.Configuration.getTemplate(Configuration.java:2750)
> > at
> freemarker.template.Configuration.getTemplate(Configuration.java:2599)
> >
> >
> > or
> >
> >
> > at
> freemarker.core.FMParserTokenManager.jjMoveNfa_0(FMParserTokenManager.java:634)
> > at
> freemarker.core.FMParserTokenManager.jjMoveStringLiteralDfa0_0(FMParserTokenManager.java:530)
> > at
> freemarker.core.FMParserTokenManager.getNextToken(FMParserTokenManager.java:8008)
> > at freemarker.core.FMParser.jj_ntk_f(FMParser.java:5676)
> > at freemarker.core.FMParser.PCData(FMParser.java:3604)
> > at
> freemarker.core.FMParser.MixedContentElements(FMParser.java:3756)
> > at freemarker.core.FMParser.If(FMParser.java:1689)
> > at freemarker.core.FMParser.FreemarkerDirective(FMParser.java:3422)
> > at
> freemarker.core.FMParser.MixedContentElements(FMParser.java:3812)
> > at freemarker.core.FMParser.If(FMParser.java:1663)
> > at freemarker.core.FMParser.FreemarkerDirective(FMParser.java:3422)
> > at
> freemarker.core.FMParser.MixedContentElements(FMParser.java:3812)
> > at freemarker.core.FMParser.If(FMParser.java:1663)
> > at freemarker.core.FMParser.FreemarkerDirective(FMParser.java:3422)
> > at
> freemarker.core.FMParser.MixedContentElements(FMParser.java:3812)
> > at freemarker.core.FMParser.Root(FMParser.java:4458)
> > at freemarker.template.Template.(Template.java:253)
> > at
> freemarker.cache.TemplateCache.loadTemplate(TemplateCache.java:549)
> > at
> freemarker.cache.TemplateCache.getTemplateInternal(TemplateCache.java:439)
> > at
> freemarker.cache.TemplateCache.getTemplate(TemplateCache.java:292)
> > at
> freemarker.template.Configuration.getTemplate(Configuration.java:2750)
> >
> > at
> freemarker.template.Configuration.getTemplate(Configuration.java:2599)
> >
> >
> > Do you have any ideas where to find the problem? I use Freemarker 2.3.28.
> >
> >
> > Thanks, Tamás
>
>
Re: Performance problem
Posted by Siegfried Goeschl <si...@gmail.com>.
Hi Tamas,
I’m a Freemarker rookie but looking after performance problems is my daily business :-)
IMHO the key question is - what has suddenly changed?
* New deployment?
* Changes to templates?
* Robots killing your website?
* Changed usage pattern of your website due client software release?
Thanks in advance,
Siegfried Goeschl
> On 4 Nov 2019, at 23:00, Tamás Barta <ba...@gmail.com> wrote:
>
> Hi,
>
> Could you please help me. I use Freemarker templates for a web site for
> about 6 month and so far so good. Unfortunately since last week I have
> serious performance problems. I couldn't find out what is going on, but
> from thread dump I saw that almost every threads look like this:
>
> at freemarker.core.FMParserTokenManager.jjMoveNfa_0(FMParserTokenManager.java:636)
> at freemarker.core.FMParserTokenManager.jjMoveStringLiteralDfa0_0(FMParserTokenManager.java:530)
> at freemarker.core.FMParserTokenManager.getNextToken(FMParserTokenManager.java:8008)
> at freemarker.core.FMParser.jj_ntk_f(FMParser.java:5676)
> at freemarker.core.FMParser.MixedContentElements(FMParser.java:3694)
> at freemarker.core.FMParser.UnifiedMacroTransform(FMParser.java:2872)
> at freemarker.core.FMParser.FreemarkerDirective(FMParser.java:3457)
> at freemarker.core.FMParser.MixedContentElements(FMParser.java:3812)
> at freemarker.core.FMParser.Root(FMParser.java:4458)
> at freemarker.template.Template.(Template.java:253)
> at freemarker.cache.TemplateCache.loadTemplate(TemplateCache.java:549)
> at freemarker.cache.TemplateCache.getTemplateInternal(TemplateCache.java:439)
> at freemarker.cache.TemplateCache.getTemplate(TemplateCache.java:292)
> at freemarker.template.Configuration.getTemplate(Configuration.java:2750)
> at freemarker.template.Configuration.getTemplate(Configuration.java:2599)
>
>
> or
>
>
> at freemarker.core.FMParserTokenManager.jjMoveNfa_0(FMParserTokenManager.java:634)
> at freemarker.core.FMParserTokenManager.jjMoveStringLiteralDfa0_0(FMParserTokenManager.java:530)
> at freemarker.core.FMParserTokenManager.getNextToken(FMParserTokenManager.java:8008)
> at freemarker.core.FMParser.jj_ntk_f(FMParser.java:5676)
> at freemarker.core.FMParser.PCData(FMParser.java:3604)
> at freemarker.core.FMParser.MixedContentElements(FMParser.java:3756)
> at freemarker.core.FMParser.If(FMParser.java:1689)
> at freemarker.core.FMParser.FreemarkerDirective(FMParser.java:3422)
> at freemarker.core.FMParser.MixedContentElements(FMParser.java:3812)
> at freemarker.core.FMParser.If(FMParser.java:1663)
> at freemarker.core.FMParser.FreemarkerDirective(FMParser.java:3422)
> at freemarker.core.FMParser.MixedContentElements(FMParser.java:3812)
> at freemarker.core.FMParser.If(FMParser.java:1663)
> at freemarker.core.FMParser.FreemarkerDirective(FMParser.java:3422)
> at freemarker.core.FMParser.MixedContentElements(FMParser.java:3812)
> at freemarker.core.FMParser.Root(FMParser.java:4458)
> at freemarker.template.Template.(Template.java:253)
> at freemarker.cache.TemplateCache.loadTemplate(TemplateCache.java:549)
> at freemarker.cache.TemplateCache.getTemplateInternal(TemplateCache.java:439)
> at freemarker.cache.TemplateCache.getTemplate(TemplateCache.java:292)
> at freemarker.template.Configuration.getTemplate(Configuration.java:2750)
>
> at freemarker.template.Configuration.getTemplate(Configuration.java:2599)
>
>
> Do you have any ideas where to find the problem? I use Freemarker 2.3.28.
>
>
> Thanks, Tamás