Warum könnte StringTemplate langsam sein?

Ich verwende StringTemplate als Ansichtsebene für meine Webanwendung. Kürzlich habe ich gemessen, wie viel Zeit für das Rendern von Seiten aufgewendet wird. Bei einfachen Seiten beträgt sie etwa 50 ms und bei komplexen Seiten 500 ms. Das ist zu viel für meine Bedürfnisse, also suche ich nach einer Möglichkeit, die performance von ST zu verbessern. Wie kann ich das machen?

Die meiste Zeit wird von der StringTemplate.toString-Methode verbraucht, daher handelt es sich nicht um ein Cache-Problem.

Ich verwende aktiv anonyme Vorlagen und enthaltene Vorlagen – könnte dies der Grund sein?

    Verwenden Sie write () nicht toString und schreiben Sie dann in Ihren Stream. write () wird rendern und übertragen ohne Pufferung. großer Unterschied. Ter

    Ist das der Terence Parr?

    Ich denke, was Terence meinte, ist

     template.write(new AutoIndentWriter(response.getWriter())); 

    aber ich kann nicht glauben, dass das einen merkbaren Unterschied machen wird.

    Sie sollten zwei Dinge getrennt voneinander einstellen

     String str = template.toString(); // 1 response.getWriter().print(str); // 2 

    die Langsamkeit ist wahrscheinlich in der zweiten Zeile, die IO beinhaltet.

    Wenn Sie toString() Speicher zu groß.

    Überprüfen Sie Ihren Speicher, wenn Sie den Belastungstest mit toString() ausführen.

    Wenn deine Erinnerung reicht. Zwei Fälle sind gleichzeitig.