2

在我的 Grails 应用程序中使用 Spring Security Core 插件进行身份验证。我面临一个严重的问题,因为我的应用程序在安装后花了 21 秒来提升 Tomcat 的 43/2。

到目前为止一切顺利,但Tomcat服务器开始出现错误'PermGen Error'内存错误。在它是 64 之前,八月是 256,因此该错误不会经常使我的应用程序崩溃。

我想知道您是否知道一些插件配置以减少此错误的发生率或某些方法来影响此缓存的释放,因为用户数量正在增加,如果您无法解决它很遗憾不得不离开插件我似乎是应用安全的绝佳选择。

有人可以告诉我应用程序干扰中使用的插件数量是否具有此内存?

4

2 回答 2

4

PermGen 是内存的一部分,用于存储应用程序的静态组件,主要是类。从字面上看,它不会受到用户数量或与用户活动相关的日志的影响,而是会消耗堆空间。

为了减少 PermGen 存储,您必须检查您的代码,重新设计那些包含不必要/冗余对象和操作的算法,并在可能的情况下合并变量和函数。一般来说,简化的代码会产生更小的可执行文件。这就是您保存 PermGen 空间的方式。

于 2012-12-21T06:46:48.507 回答
1

某些版本的 Tomcat permgen 比其他版本更多。在第 6 行中有一个次要版本,我不能每个人都能可靠地保持运行。即使使用最新版本,您仍然需要调整内存设置。我使用以下内容,它最适合我。我仍然时不时地得到它们,特别是如果我正在进行大量运行时编译。在生产中,这不是问题,因为 grails 的所有开发开销都不存在。

-XX:MaxPermSize=512m -XX:PermSize=512m -Xms256m -Xmx1024m

于 2012-12-20T17:42:13.950 回答