我使用定制版本的Tomcat开发应用程序。
有对动态类加载的支持,我在测试和开发环境中经常使用它,并且我也对在生产环境中使用它的影响感到好奇。
据我所知,由于性能问题,动态类加载将不会在生产中使用,这是由于每次访问时都使用类加载器轮询类。
但是,该应用服务器支持轮询频率的配置以加载新类。
如果我对它的理解正确,那么如果我将动态类加载配置为每隔相当长的时间(即1小时)轮询一次,则应该避免大多数不利的性能影响。
在生产中,将以有限的方式使用此机制:
1)紧急修补程序,无需用户停机(修复程序将在第一次关闭时发布)
2)永久修补我们没有源代码的类(旧版第三方库)
这是可靠的解决方案吗?
谢谢
最佳答案
恕我直言,您不应将此功能用于生产。除了轮询开销外,还有很多其他情况不会在开发环境中引起问题
我想到的很少是
对编译期间内联的任何常量的影响
对烫发空间的影响
您无法跟踪生产中已部署的版本
可能会出现错误,例如在修补程序中缺少类文件