问题
背景
我正在尝试测量对象的大小,并意识到方法不会存储在与对象数据相同的位置.
我正试图"看到"方法的代码存储在正在运行的Java应用程序中.
我尝试使用jmap转储堆并使用jhat检查转储,但是我找不到任何有用的关于我的类的方法的地方.
我的对象存储方法在哪里
它们存储在一个Class保存在PemGen空间中的对象中.
如果我转储我的Java应用程序,我可以看到该区域吗?
这不是微不足道的.JVM执行几个优化,如JIT编译,这使得此任务更难.
我正试图"看到"方法的代码存储在正在运行的Java应用程序中.
您知道每个类只有一个每个方法的副本,而不是每个实例?这意味着一旦类被加载ClassLoader,该类的所有方法都存储在内存中.您创建的实例数无关紧要.话虽这么说,你可能并不关心方法消耗多少内存.