首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何检查Java虚拟机中存储方法的区域

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

Stack Overflow用户
提问于 2011-12-18 13:49:32
回答 1查看 974关注 0票数 2

问题

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

背景

我试图测量对象的大小,并意识到方法不是存储在与对象数据相同的位置上。

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

我试着使用jmap转储堆,并使用jhat检查转储,但是对于类的方法在哪里,我找不到任何有用的东西。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-12-18 13:52:48

存储的对象的方法在哪里?

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

如果我转储我的java应用程序,我可以看到这个区域吗?

这不是小事一桩。JVM执行几个优化,比如JIT编译,这使得这项任务更加困难。

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

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

另请参阅:

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8552146

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档