问题标签 [permanent-generation]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
8 回答
8640 浏览

java - 我如何发现永久代中的内容

给定一个堆转储或一个正在运行的虚拟机,我如何发现永久代的内容是什么?我知道“jmap -permstat”,但这在 Windows 上不可用。

0 投票
5 回答
19034 浏览

memory - 电梯和码头的 PermGen 问题

我正在标准 Lift 平台(maven 和 jetty)上开发。我反复(每两天一次)得到这个:

这是在我的开发环境中。这不是问题,因为我可以继续重新启动服务器。在部署中我没有这些问题,所以这不是一个真正的问题。我只是好奇。

我对JVM不太了解。我认为我认为永久代内存用于类和实习字符串之类的东西是正确的?我记得有点与 .NET 内存模型混淆了......

为什么会发生这种情况?默认值是不是非常低?它是否与 Scala 必须为 Function 对象和类似的 FP 事物创建的所有辅助对象有关?每次我用新编写的代码(每隔几分钟)重新启动 Jetty 时,我想它会重新加载类等。但即便如此,它不可能有那么多可以吗?而且JVM不应该能够处理大量的类吗?

干杯

0 投票
1 回答
68329 浏览

java - java中的静态分配——堆、栈和永久代

我最近一直在阅读很多关于 java 中的内存分配方案的内容,并且在我从各种来源阅读时有很多疑问。我已经收集了我的概念,我会要求仔细阅读所有要点并对其发表评论。我知道内存分配是特定于 JVM 的,所以我必须事先说,我的问题是特定于 Sun 的。

  1. 类(由类加载器加载)进入堆上的一个特殊区域:永久代
  2. 所有与类相关的信息,如类名、与类关联的对象数组、JVM 使用的内部对象(如 java/lang/Object)和优化信息都进入永久生成区域。
  3. 所有静态成员变量都再次保存在永久代区域中。
  4. 对象在不同的​​堆上:年轻代
  5. 每个类的每个方法只有一个副本,无论是静态方法还是非静态方法。该副本被放入永久代区域。对于非静态方法,所有参数和局部变量都进入堆栈 - 每当对该方法进行具体调用时,我们都会获得一个与之关联的新堆栈帧。我不确定静态方法的局部变量存储在哪里。他们在永久代的堆上吗?或者只是他们的引用存储在永久代区域,而实际副本在其他地方(在哪里?)
  6. 我也不确定方法的返回类型存储在哪里。
  7. 如果对象(在年轻代中)需要使用静态成员(在永久代中),则为它们提供对静态成员的引用 && 为它们提供足够的内存空间来存储方法的返回类型等。

谢谢你经历这个!

0 投票
7 回答
1047 浏览

c# - 永久运行的可执行文件

我使用 VS 2005 (c#) 创建了一个 winform (monitoring) 应用程序,现在,当这个应用程序由于某种原因崩溃时我遇到了问题,我必须确保它会自动重新启动。

我该如何解决这个问题?(也许通过使用 Windows 服务应用程序?)

谢谢

0 投票
6 回答
1780 浏览

java - 永久代:默认值的容量是固定的还是会根据需要增长?

我们注意到运行 Solaris 10 的客户的永久 GC 容量从 50% 增长到 97%。此 JVM 使用默认值“permgen”(我们没有将任何自定义 Permgen FLAG 传递给 JVM)。

我们应该设置更高的 PermGen 值,而不是在生产中以 97% 的 permgen 空间运行?

PS:我们在 solaris 10 上使用 JDK 1.6.0_23。

更新 我们是否应该认为它很快就会发生 OutOfMemoryError ?或者 JVM 是否有可能增加容量以使使用率降至 97% 以下?

0 投票
1 回答
1031 浏览

java - JVM 性能调优:年轻副本与老年代 gc

嗨:我有一个多线程 Java 应用程序。有很多临时对象。
-XX:MaxTenuringThreshold=1,我们在启动JVM的时候放了上面的参数。这意味着所有对象将在 gc 期间存活一次,然后将其提升到老年代。我们-XX:MaxTenuringThreshold=10可以举个例子,这样对象会在 10 次 gc 后提升到旧的 JVM 老年代。但这会在年轻 gc 期间导致不必要的复制操作(因为对象被复制“从 'eden' 到 'from'、从 'from' 到 'to'、'from'、'to' 是两个幸存者缓冲区)?

这些问题也可能意味着如果a)年轻代中有多次复制,老年代gc较少,b)老年代垃圾收集时间长但年轻代复制很少,哪一个更好?

0 投票
2 回答
229 浏览

php - 在 wordpress 中添加自定义永久链接标签

基本上我想要实现的是在wordpress博客的所有链接的末尾添加一个变量? %/%一个%

但是我创建 %a% 作为标签的努力没有成功。

我已经阅读了几天,似乎无法得到任何工作,并感谢任何人在这件事上的帮助

0 投票
2 回答
233 浏览

java - 静态成员驻留在内存中的什么位置,是永久代吗?

静态成员驻留在哪里。我需要详细说明静态、本地和实例成员内存分配(变量、方法)。内存管理(是永久代)。

0 投票
0 回答
51 浏览

android - DVM 中的永久代堆

DVM 是否具有与 JVM 相同的堆结构?它是否有永久生成堆,所有类,信息。与该类相关(例如类名、与该类关联的对象数组、内部类描述符),静态成员变量是否存储在永久生成区?如果没有,它们是如何存储的?

0 投票
0 回答
23 浏览

google-colaboratory - Google Collab 中的 OpenPose 永久保存到我的 Google Drive?

每次我使用: https : //colab.research.google.com/drive/1VDjRLKAu9KLQky0gv4RLJjeH6NRPiWXy?usp=sharing 我必须等待大约 35 分钟安装 openpose 是否可以永久安装它,避免每次我使用 openpose 时等待安装时间? 我已经在这里检查了答案:Permanent Installation of OpenPose in Google Collab and cannot apply it to my colab.