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