我们有一个 web 应用程序,它依赖于大约 125 个 jar,包括 spring、hibernet、zk 等。
当我们启动 tomcat 服务器时,它会将大约 55K 类加载到 permgen 中。由于这个巨大的类加载,应用程序启动需要大量时间。此外,应用程序所需的 permgen 空间非常高,因为在程序执行期间还会加载其他类。
- 有没有办法控制启动时加载多少类,以便应用程序快速启动?
- 有没有办法从 permgen 中释放/卸载不常用的类?[这些问题特定于从外部 jar 加载的类]
我曾尝试使用为 java 指定的 -XX:+CMSClassUnloadingEnabled -XX:+CMSPermGenSweepingEnabled 选项。但一段时间后只有 42 个类被卸载。
非常感谢任何帮助或指示。