是否有使用Tomcat修复BodyContentImpl jsp标记内存泄漏的方法?

是否有使用Tomcat修复BodyContentImpl jsp标记内存泄漏的方法?,tomcat,memory-leaks,jsp-tags,Tomcat,Memory Leaks,Jsp Tags,我在apache上读过一些关于BodyContentImpl的低效性以及它如何分配cb空间的bug报告。私有字符[]cb;如果标记写出50KB的HTML,缓冲区大小将从512字节增加到50KB,每次需要分配时,它将创建一个新的char[],并执行两个System.arraycopy调用 这个bug报告说这个bug被移动到Tomcat7的队列中,但是我在发布说明中还没有看到任何东西。有没有人能够同时使用Tomcat解决这个问题 我读过关于LIMIT_BUFFER=true的文章。他们说设置此标志时

我在apache上读过一些关于BodyContentImpl的低效性以及它如何分配cb空间的bug报告。私有字符[]cb;如果标记写出50KB的HTML,缓冲区大小将从512字节增加到50KB,每次需要分配时,它将创建一个新的char[],并执行两个System.arraycopy调用

这个bug报告说这个bug被移动到Tomcat7的队列中,但是我在发布说明中还没有看到任何东西。有没有人能够同时使用Tomcat解决这个问题

我读过关于LIMIT_BUFFER=true的文章。他们说设置此标志时会影响性能。代码将释放当前的sb并重新分配一个512字节的新sb

public void clear() throws IOException {
467           if (writer != null) {
468               throw new IOException();
469           } else {
470               nextChar = 0;
471               if (LIMIT_BUFFER && (cb.length > Constants.DEFAULT_TAG_BUFFER_SIZE)) {
472                   bufferSize = Constants.DEFAULT_TAG_BUFFER_SIZE;
473                   cb = new char[bufferSize];
474               }
475           }
476       }
如果在同一个请求中多次调用此代码,这似乎会迫使您从一个小缓冲区开始,并最终创建更多的cb以收集垃圾


bug报告中提出了一些更改,但我想知道是否有人已经实现了一些方法来解决这个问题,这样它就不会产生这么多浪费的字符串并执行这么多System.arraycopy调用。谢谢

否,此增强请求没有进一步的进展


我会选择LIMIT\u BUFFER=true。与您认为可能存在性能问题的任何情况一样,通过探查器运行您的应用程序,看看是否真的有什么需要担心的。有很多选择。我使用YourKit,因为他们向开源开发人员提供免费的拷贝。

不,在这个增强请求上没有进一步的进展

我会选择LIMIT\u BUFFER=true。与您认为可能存在性能问题的任何情况一样,通过探查器运行您的应用程序,看看是否真的有什么需要担心的。有很多选择。我使用YourKit,因为他们向开源开发人员提供免费副本