Laut Dokumentation auf Apache Tomcat Configuration,
org.apache.jasper.runtime. BodyContentImpl.LIMIT_BUFFER
Wenn das stimmt, jeder Tag-Puffer, der über org.apache.jasper.Constants.DEFAULT_TAG_BUFFER_SIZE erweitert wird und ein neuer Puffer der Standardgröße erstellt zerstört werden.
Wenn nicht angegeben, wird der Standardwert false verwendet.
Die Dokumentation bezieht sich eindeutig auf Tag-Puffer.
Vom source reference,
Jedes Mal, wenn Sie verwenden, um einen taglib
Tag auf Ihrer JSP
Seite wie einen <c:set>
JSTL
Tag oder wirklich jeden Tag (mit Ausnahme der <jsp:*>
-Tags, da sie anders nicht wirklich „tags“ als solche und behandelt werden), wird ein Zeichenpuffer eingerichtet, um den Body dieses Tags zu erhalten. Die Servlet/JSP
Spezifikationen verlangen, dass es keine Grenze für die Größe eines Tag-Körpers gibt, so dass dieser Puffer unbegrenzt wachsen kann. Wenn Sie ein Tag in ein anderes Tag verschachteln, wird zusätzlich ein zusätzlicher Puffer für das verschachtelte Tag usw. eingerichtet. Diese Puffer werden alle in einem Stapel im PageContext verwaltet, aber niemals wirklich dereferenziert. Aus diesem Grund bleiben alle diese Zeichenpuffer bestehen und werden von späteren Anfragen wiederverwendet.
Was LIMIT_BUFFER tut, ist Tomcat zu zwingen, den Puffer vor jeder Verwendung zu verwerfen, wenn es größer als die Standardgröße (512 Zeichen) und weisen Sie einen neuen Puffer der Standardgröße (die natürlich wachsen können, wenn es nicht genug mit dem Tag-Körper umgehen).
Wann ist dies relevant
Dies ist vor allem ein Problem, wenn Sie Tags mit sehr großen Körpern haben. Beispiel: 400 Worker-Threads mit einer durchschnittlichen Tag-Schachtelungstiefe von 3 = 400 * 3 * 512 = ~ 614 KB. Aber sagen Sie, Sie verwenden Kacheln und Sie haben eine Seite, die 1 MB groß und 5 Ebenen von Vorlagen ist. Dann sehen Sie sich 2 GB Speicher an, die für immer reserviert sind. Und Sie müssen den schlimmsten Fall in Betracht ziehen, da schließlich jeder Worker-Thread diese eine große Seite mindestens einmal und ohne LIMIT_BUFFER
bedient hat. Sobald diese Puffer groß sind, werden sie niemals kleiner.
Wahrscheinlich scheint Tomcat die riesigen Tags-Daten zwischenzuspeichern und zu speichern. Wenn die Seiten in Ihrer Anwendung wirklich groß sind, kann das auf unbestimmte Zeit wachsen. Das Setzen dieser Eigenschaft wird wahrscheinlich keine vollständigen Tags/HTML-Daten zwischenspeichern. Große JSP-Seitenanforderungen können Speicher füllen.
Laut Dokumentation scheint es wie session id
Caches.
This wurde das Problem gemeldet, aber scheint wie behoben.
Wenige weitere Daten zu lesen here, here.