我已经将java配置为将垃圾收集信息转储到日志中(详细GC).我不确定日志中的垃圾收集条目是什么意思.这些条目的样本发布在下面.我在Google上搜索过,并没有找到可靠的解释.
我有一些合理的猜测,但我正在寻找答案,这些答案提供了条目中数字的严格定义,并由可靠的消息来源支持.对所有引用sun文档的答案自动+1.我的问题是:
8109.128:[GC [PSYoungGen:109884K-> 14201K(139904K)] 691015K-> 595332K(1119040K),0.0454530秒]
8112.111:[GC [PSYoungGen:126649K-> 15528K(142336K)] 707780K-> 605892K(1121472K),0.0934560 secs]
8112.802:[GC [PSYoungGen:130344K-> 3732K(118592K)] 720708K-> 607895K(1097728K),0.0682690 secs]
假设一个64位JVM,将MaxPermSize保持为小有什么显着的好处吗?
这是在经常重新部署的Java EE应用程序的上下文中,并且具有类加载器泄漏.作为一个中期解决方案,将MaxPermSize提升到一个荒谬的值似乎是非常合理的 - 只要它不会破坏磁盘交换空间.
由于取消部署的应用程序代码几乎全部未使用(除了涉及泄漏的代码),因此操作系统会将其分页.因此,未部署碎屑对物理内存的负担似乎可以忽略不计; 这已通过观察RSS(Unix上的工作集大小)得到验证.
还有其他我应该关注的影响吗?