- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我正在调查我们的一个生产系统上的 JVM 崩溃,以下内存值在下面的 hs_err_pid 日志文件片段中代表什么?
Heap
par new generation total 1258624K, used 955445K [0x00000005c0000000, 0x00000006155b0000, 0x000000066aaa0000)
eden space 1118784K, 73% used [0x00000005c0000000, 0x00000005f1e52598, 0x0000000604490000)
from space 139840K, 98% used [0x000000060cd20000, 0x00000006153db100, 0x00000006155b0000)
to space 139840K, 0% used [0x0000000604490000, 0x0000000604490000, 0x000000060cd20000)
tenured generation total 2796224K, used 1745107K [0x000000066aaa0000, 0x0000000715550000, 0x00000007c0000000)
the space 2796224K, 62% used [0x000000066aaa0000, 0x00000006d52d4d90, 0x00000006c2e0c400, 0x0000000715550000)
compacting perm gen total 482944K, used 482943K [0x00000007c0000000, 0x00000007dd7a0000, 0x0000000800000000)
the space 482944K, 99% used [0x00000007c0000000, 0x00000007dd79fff0, 0x00000007dd7a0000, 0x00000007dd7a0000)
No shared spaces configured.
我关心的是“compacted perm gen”用法:它是指最大分配的 perm gen 堆的使用百分比,还是最大堆的使用百分比,或其他什么?提供的百分比似乎是已用/总计的除法,这是总分配的 perm gen 吗?由于我们的 -XX:MaxPermSize
设置为 1GB...
是否有任何有用的资源(Oracle whitepaper 除外,它没有提到 hs_err 文件)来解释在 JVM 崩溃时转储的数据?
最佳答案
我从未找到准确描述“compacting perm gen”值的引用资料,但我们自己的调查证明报告的值是:
currently used PermGen / currently allocated PermGen
在我的问题示例中,这意味着已经为 PermGen 分配了 482944K 内存,其中 482943K 内存已在 GC 点使用 (99%)。我们的最大 PermGen 大小设置为 1048576K (1GB),因此收集过程有大量保留资源可用于重新分配。
对于那些遇到类似问题的人 - 我们最终解决了问题。在我们的案例中,它原来是一个利用了 sun.misc.Unsafe 的第三方库。类,即 notoriously "unsafe"当使用不当。
在这种情况下,一个 piece of logic for cloning objects将特定的 ClassLoader 传递给某些 sun.misc.Unsafe 操作以复制对象。在某些机器上,复制的对象经常以损坏的状态创建。当 JVM 尝试进行垃圾收集时,它最终会收集这些坏对象之一并崩溃。这总是导致我的问题中描述的错误。
关于java - "compacting perm gen"值代表什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15611423/
随着我们的应用程序的增长,我们需要更多的 Windows CE 设备空间。 我们安装了 SD 卡。从 sd 卡运行我们的应用程序很慢,如果您从持久路径运行应用程序,则需求分页会出现一些严重的问题。 我
是否可以在数据网格单元格中显示图像? 我目前正在使用紧凑型框架 3.5。 有什么建议吗? 最佳答案 就像其他海报评论的那样,你需要自己动手。幸运的是,这并不太难。 在我的应用程序中,我需要一种在特定列
我读了这个问题:Command Line Parser for .NET . 我以为这就是我要找的,但图书馆 Command Line Parser Library不是 Compact 框架友好的..
我用过 CF Remote Performance Monitor ,但是这似乎只跟踪在托管世界中初始化的内存,而不是在非托管世界中。好吧,我只能假设这是因为探查器中列出的数字远低于允许的最大值(CE
关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。 想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。 8年前关闭。 Improve thi
当我将字符串绘制到缓冲区中时,结果输出并没有像我期望的那样抗锯齿。这段代码说明了这个问题……只需将它放在标准智能设备项目的 Form1.cs 中: protected override void On
一位 friend 正在做在线 Scala 类(class)并分享了此内容。 # Write a recursive function that counts how many different w
如何仅使用紧凑型框架获取 MAC 地址? 最佳答案 OpenNETCF 代码的 1.4 从以下 P/Invoke 调用中获取信息: [DllImport ("iphlpapi.dll", Se
System.Diagnostics命名空间(尤其是 GetFrame(int frameNumber))在 CF 中不可用。在 CE (6.0 R3) 上运行时如何获取调用堆栈详细信息? 谢谢! 最
使用 .net Compact Framework 编写的应用程序可以自行重启吗? 实现这一目标的一些常见模式是什么?我想要一个自我更新的应用程序,如果更新完成,它会自行重启。 当然,我可以有 2 个
在 Compact Framework 上, System.Windows.Forms.Timer 类不支持 system.componentmodel 构造函数: 支持新的 Timer():http
在我的 Windows CE 6.0 应用程序中,我正在与返回错误 header 信息的专有 Web 服务器设备通信(更具体地说,它没有返回任何 header 信息)。 我认为缺少 header 信息
我只通过使用 Compact Any Size Classes .. 它可以在各种类型的手机上完美运行。 但 XCode Storyboard更喜欢对所有 iphone 纵向模式使用紧凑的常规尺寸类。
我目前正在将我的 Compact Framework 2.0 应用程序迁移到新的 Windows Embedded 7 Compact 机器上,并且必须为 CF 3.5 重新编译它。它编译但根本不运行
我有以下要求: 我需要一个适用于 CE (x86) + .NET Compact Framework 的 API 来播放视频(类似于 CorePlayer API...只是免费)? 还有其他可用的吗?
我正在使用 VS2008 和 .NET Compact Framework 3.5 构建一个可执行文件,目标是 Windows Mobile 6 Professional,但是每当我编译项目时,我在
尝试在我的新 PC 上的 Visual Studio 中构建 .CAB 时出现以下错误。来源是相同的。旧 PC 上也不存在注册表警告。 Windows CE CAB Wizard Warning: S
我正在尝试使用 Bouncy Castle v1.7在 Windows Mobile 6.5 设备上。 我正在尝试执行以下代码: ISigner signer = SignerUtilities.Ge
当我使用取消按钮关闭程序时,我收到一个应用程序错误,它所做的只是关闭表单。 错误说: “应用程序 appName.exe 遇到严重错误,必须关闭” 我该如何开始修复它?它不是抛出的异常;没有提供其他信
我知道 compact() 是一个标准的 php 函数。而 set() 是一种特定于蛋糕的方法。 我正在运行一个简单的测试,将值传递给使用 ajax 生成的 View (我的 Controller 中
我是一名优秀的程序员,十分优秀!