gpt4 book ai didi

java - 如何检查 Java 虚拟机中存储方法的区域

转载 作者:行者123 更新时间:2023-11-30 06:32:49 25 4
gpt4 key购买 nike

问题

  1. 我的对象的方法存储在哪里?
  2. 如果我转储我的 java 应用程序,我能看到那个区域吗?

背景

我正在尝试测量我的对象的大小,并意识到方法没有存储在与对象数据相同的位置。

我试图“查看”这些方法的代码在正在运行的 Java 应用程序中的存储位置。

我尝试使用 jmap 转储堆并使用 jhat 检查转储,但我找不到任何关于我的类的方法在哪里的有用信息。

最佳答案

Where is the method for my object stored

它们存储在 Class 对象中,该对象保存在 PemGen 空间中。

and can I see that area if I dump my java app ?

这不是微不足道的。 JVM 执行多项优化,例如 JIT 编译,这使得这项任务变得更加困难。

I'm trying to 'see' where the code for the methods are stored in a running Java app.

您是否知道每个的每个方法只有一个副本,而不是每个实例?这意味着一旦类被 ClassLoader 加载,该类的所有方法都存储在内存中。创建多少个实例并不重要。话虽如此,您可能并不关心方法消耗多少内存。

另见:

关于java - 如何检查 Java 虚拟机中存储方法的区域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8552146/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com