问题
背景
我试图测量对象的大小,并意识到方法不是存储在与对象数据相同的位置上。
我正在尝试“查看”方法的代码存储在运行中的Java应用程序中的位置。
我试着使用jmap转储堆,并使用jhat检查转储,但是对于类的方法在哪里,我找不到任何有用的东西。
发布于 2011-12-18 13:52:48
存储的对象的方法在哪里?
它们存储在Class对象中,该对象保存在PemGen空间中。
如果我转储我的java应用程序,我可以看到这个区域吗?
这不是小事一桩。JVM执行几个优化,比如JIT编译,这使得这项任务更加困难。
我正在尝试“查看”这些方法的代码存储在运行中的Java中的位置。
您知道每个类只有每个方法的一个副本,而不是每个实例?这意味着一旦类被ClassLoader加载,该类的所有方法都存储在内存中。创建多少个实例并不重要。尽管如此,您可能并不关心方法消耗了多少内存。
另请参阅:
https://stackoverflow.com/questions/8552146
复制相似问题