保持 MaxPermSize 小有什么好处吗?

2023-12-26

假设是 64 位 JVM,保持 MaxPermSize 小有什么显着的好处吗?

这是在频繁重新部署且存在类加载器泄漏的 Java EE 应用程序的上下文中。作为中期解决方法,将 MaxPermSize 提高到一个荒谬的值似乎非常合理 - 只要它不会耗尽磁盘交换空间。

由于未部署的应用程序的代码几乎全部未使用(除了涉及泄漏的代码),因此它会被操作系统调出。因此,未部署的碎片对物理内存的负载似乎可以忽略不计。这已经通过观察 RSS(Unix 上的工作集大小)得到了验证。

我还应该担心其他影响吗?


From JVM 热点常见问题解答 http://java.sun.com/docs/hotspot/gc1.4.2/faq.html

我应该增加客户端虚拟机中永久代的大小吗?

这永远是一个判断。一般来说,增加一代的大小(这不仅适用于永久代)可以减少各种问题的发生率,但是,这可能会导致其他进程过度分页和/或垃圾收集或抛出异常内存异常。

有两种故障模式需要考虑。

当提高 MaxPermSize 时,以前使用垃圾收集来恢复永久代空间的行为良好的程序可能会因无休止的分页而死亡。对于永久代来说,这通常只发生在临时字符串的大量驻留中。

另一种故障模式是必须为永久代保留地址空间,这将减少堆其余部分的可用空间(最大 -Xmx 可能太大)。这将导致配置为使用所有可用空间的程序在初始化时失败。

Also 本文 https://blogs.oracle.com/jonthecollector/entry/presenting_the_permanent_generation says :

因此,我们利用类保留在永久代中的事实,在收集永久代之前收集永久代。并且永久代目前是串行收集的。

我认为大型永久代会导致 GC 时间更长。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

保持 MaxPermSize 小有什么好处吗? 的相关文章

随机推荐

  • 在 /admin/ 安装 jinja2 TemplateDoesNotExist 后

    我已经安装了 jinja2 之后 DIRS 停止工作 我必须手动包含它们 更改 APP DIRS 没有帮助 模板看起来像这样 TEMPLATES BACKEND django template backends jinja2 Jinja2
  • LESS - 多个不同的类具有相同的风格?

    你会如何用 LESS 写出下面这种风格 nav a hover nav a focus footer a hover footer a focus fullscreen container a hover fullscreen contai
  • Ansible:如何将默认值应用于列表的每个复杂参数

    我有以下列表和默认变量 my list complex key1 val1 key2 val2 key3 val3 keyN valN key1 val1 key3 val3 keyN valN key2 default2 key3 def
  • 如何确定Microsoft Edge是否是默认浏览器?

    是否有可靠的编程方式来确定 Microsoft Edge 是默认浏览器 我知道一种选择是使用IApplicationAssociationRegistration QueryCurrentDefault https msdn microso
  • 如何在 Laravel 9 Validation 中实现上述验证?

    我正在尝试实现某些 Laravel 验证标准 但我很难实现这些标准 请同样帮助我 我正在使用 laravel 9 和 PHP 8 1 描述 我有一个 API 其中包含以下提到的输入 A 公司名称 必填b company number 根据条
  • 使用 telegram bot API 创建新组

    如何使用 Telegram 中的机器人创建新群组 据我所知 机器人本身无法做到这一点 那么是否有可能将机器人实现为常规程序user How Update 这就是我要的http t me polyglossia http t me polyg
  • 为数据网格行创建上下文菜单

    我有一个可能有很多行的数据网格 当用户右键单击其中一行时 我需要为每一行显示一个上下文菜单 并在用户单击该选项时执行一个操作 相同的操作 但根据当前选定的行不同的数据项 对此最好的策略是什么 我担心每一行的 ContextMenu 都太过分
  • preRenderView 禁用 ajax

  • typedef struct 与 Object - 优点

    我计划定义一个类 其属性中包含 x y 网格的坐标 但是 我不确定实现此设计的 最佳 方法 这是一个很简单的问题 我只想正确地做并有一个理由 一种解决方案是拥有两个属性 类型为 int 一个用于 x 一个用于 y 在对象内 另一种是定义一个
  • 在 Django 中获取自己的应用程序

    有没有一种方法可以获取属于 Django 项目本身的应用程序列表 忽略安装的应用程序 pip 换句话说 我可以排除安装的应用程序吗 pip from settings INSTALLED APPS 您可以使用以下方式获取所有 django
  • app.listen() 和 app.get() 如何在express和hapi上工作

    使用 http 节点模块 仅限本机模块 我如何重新创建 app listen 和 app get 使用带有构造函数的 http 模块 var app function opts this token opts token app proto
  • 如何更改azure函数的python版本

    当我发布我的天蓝色云函数时 我收到消息 本地 python 版本 3 9 7 与部署的 Function App 的预期版本不同 这可能会导致 Azure Functions 中出现 ModuleNotFound 错误 请创建版本 3 9
  • 重定向路由严格斜杠

    我尝试对 webapp2 重定向路由使用严格斜杠 但收到此值错误 ValueError Routes with strict slash must have a name 这是我的路线之一的示例 RedirectRoute r handle
  • Perl 6 的 shell() 使用哪个 shell?

    Perl 6 的shell https docs perl6 org routine shell向 shell 发送命令 但没有说明那是什么 我一直得到bash在我的机器上 但我不知道我是否可以信赖它 perl6 e shell Q ech
  • 返回对象的保留/释放

    我是 Objective C 的新手 所以这可能是一个愚蠢的问题 我不禁看到 ObjC 和 Microsoft 的 COM 在内存管理方面的相似之处 AddRef Release vs retain release 在 COM 环境中 或多
  • 从推送通知打开 Android 应用程序

    有一个小问题一直困扰着我 我已将应用程序设置为接收来自 Urban Airship 的推送通知 一切正常 但是当我点击通知中心中的通知时 没有任何反应 我希望我的应用程序在用户点击推送通知时打开 我该怎么做才能实现此目的 一如既往 我们非常
  • 在执行繁重的 JavaScript 处理时强制 HTML5 画布重绘?

    这个问题与这位较老的 https stackoverflow com questions 1209689 how can i force the browser to redraw while my script is doing some
  • SQL SELECT INSERT INTO 生成唯一 ID

    我试图选择一个数据表并将该数据插入到另一个具有相似列名的文件中 它本质上是重复的数据 当前语法如下 INSERT INTO TABLE1 id id2 col1 col2 SELECT similiarId similiarId2 simi
  • google-services.json 是否安全,不会受到黑客攻击?

    如果黑客反编译了我的 APK 他是否能够从此文件中看到我的 API 密钥 我不担心我的源代码存储库 我只是担心黑客能够以某种方式从我的 APK 中看到这个 API 密钥 我正在尝试加密该文件并在运行时解密它 但遇到一些问题 谷歌插件的设置方
  • 保持 MaxPermSize 小有什么好处吗?

    假设是 64 位 JVM 保持 MaxPermSize 小有什么显着的好处吗 这是在频繁重新部署且存在类加载器泄漏的 Java EE 应用程序的上下文中 作为中期解决方法 将 MaxPermSize 提高到一个荒谬的值似乎非常合理 只要它不