当前位置: 首页 > 面试题库 >

实习生的弦不在permgen中吗?

班昱
2023-03-14
问题内容

我已经jmap -heap在运行的Java应用程序上运行了命令,这是我得到的:

C:\ Program Files \ Java \ jdk1.7.0_05 \ bin> jmap -heap 2384附加到进程ID
2384,请等待…调试器已成功附加。检测到服务器编译器。
JVM版本为23.1-b03

,在新一代中使用并行线程。
使用线程局部对象分配。
并发标记扫描GC

堆配置:
MinHeapFreeRatio = 40
MaxHeapFreeRatio = 70
MaxHeapSize = 1073741824(1024.0MB)
NewSize = 1310720(1.25MB)
MaxNewSize = 17592186044415 MB
OldSize = 5439488(5.1875MB)
NewRatio = 2
SurvivorRatio = 8
PermSize = 134217728(128.0) MB)
MaxPermSize = 201326592(192.0MB)
G1HeapRegionSize = 0(0.0MB)

堆使用情况:
新一代(Eden + 1个幸存者空间):
容量= 228261888(217.6875MB)已
使用= 203794000(194.3531036376953MB)
可用= 24467888(23.334396362304688MB)
89.28078260703775%使用
伊甸空间:
容量= 202964992(193.5625MB)
用于= 198399360(189.2083740234375MB)
自由= 4565632(4.3541259765625MB)
使用97.75053226913141%
来自空间:
容量= 25296896(24.125MB)
用于= 5394640(5.1447296142578125MB)
自由= 19902256(18.980270385742188 MB)
21.325304100550518已用
空间:
容量= 25296896(24.125MB)已
用= 0(0.0MB)
免费= 25296896(24.125MB)已使用
0.0%
并发标记扫描:
容量= 506445824(482.984375MB)已
用= 159479408(152.09141540527344MB)
free = 346966416(330.89295959472656MB)
已使用31.489924576809226%
Perm生成:
容量= 134217728(128.0MB)已
使用= 72157448(68.81470489501953MB)
free = 62060280(59.18529510498047MB)
53.76148819923401%已使用

96874内嵌字符串,占89695496字节

因此,似乎在68mb的Permgen中大约有89mb的实习生弦。是否有未存储在Permgen中的实习字符串?


问题答案:

从Java
7发行说明

JDK
7中,不再在Java堆的永久代中分配实习字符串,而是在Java堆的主要部分(称为年轻代和旧代)中将其与应用程序创建的其他对象一起分配。此更改将导致更多数据驻留在主Java堆中,而永久生成中的数据更少,因此可能需要调整堆大小。由于此更改,大多数应用程序只会看到相对较小的堆使用差异,但是加载许多类或大量使用String.intern()方法的大型应用程序将看到更大的差异。



 类似资料:
  • 我已经在运行的Java应用程序上运行了命令,下面是我得到的信息: 看来68MB的permgen中有大约89MB的内部字符串。是否存在未存储在permgen中的内部字符串?

  • 我试图生成一组点,当绘制成一个图表示1个周期的正弦波。要求是: 1个周期的正弦波 下限=29491 上限=36043 点数=100 振幅=3276 零偏移量=32767 代码: 我正在生成并存储一个文件中的点。当这些点被绘制出来时,我得到了下面的图。 但我只需要一个循环。我怎么能这么做?

  • 我已经安装了JDK8,并尝试运行Eclipse。我收到以下警告消息: 忽略这个VM选项的原因是什么?

  • 问题内容: 在Java中以任何频率生成正弦波声音的最简单方法是什么?样本大小大于2个字节会有所帮助,但这并不 重要。 问题答案: 见一个自包含的例子。 也许更简单? 如链接答案顶部所示,这51行代码段(在下面重复-分隔为单行和行内注释)大约与 生成音调一样简单(好的,您可以取出5行以上用于谐波)。 人们似乎认为这应该是工具包中内置的一种产生 纯净音调的方法。并非如此,要花一点时间就可以做到。

  • 问题内容: 我在自己的环境中不断检测PermGen中的OOM: Java 6的 jboss-4.2.3 网络应用程序不大 我知道String.intern()问题-但是我没有足够有价值的用法。MaxPermGen大小的增加并没有费力(从128 Mb到256 Mb)。 还有什么其他原因可以为PermGen调用OOM?在这种情况下(策略,工具等)哪种调查方案是最佳的? 谢谢你的帮助 问题答案: 看到这