设置 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
.
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
.