设置 Tomcat 的缺点 RECYCLE_FACADES = true?

Disadvantages of setting Tomcat's RECYCLE_FACADES = true?

Apache Tomcat 8 Configuration Reference states that the default value for org.apache.catalina.connector.RECYCLE_FACADES = false. However, the Security Considerations web page 说:

Setting org.apache.catalina.connector.RECYCLE_FACADES system property to true will cause a new facade object to be created for each request. This reduces the chances of a bug in an application exposing data from one request to another.

因为默认值是不太安全的值,我想知道为什么。我认为它的一部分与性能有关,但我没有看到关于 RECYCLE_FACADES 的太多讨论。将其设置为 true 有什么缺点?

设置org.apache.catalina.connector.RECYCLE_FACADES=true的主要缺点是性能。 Tomcat 在请求中重复使用尽可能多的对象,以减少 GC 流失 (即重复创建和丢弃许多对象)。 使用这些对象没有性能差异——只有丢弃和重新创建循环会降低性能。

默认设置不是 "unsafe" 本身 ,但有错误的应用程序可能导致 Tomcat 看起来做非常奇怪的事情。因此,如果应用程序没有违反任何规则,那么应该首选更高性能的配置。

如果您不信任 Tomcat 实例上 运行 的应用程序,您绝对应该启用 RECYCLE FACADES.