如何检查Java虚拟机中存储方法的区域
问题如何检查Java虚拟机中存储方法的区域,java,jvm,Java,Jvm,问题 我的对象的方法存储在哪里 如果我卸载java应用程序,我能看到那个区域吗 背景 我试图测量对象的大小,并意识到方法与对象数据存储在不同的位置 我试图“查看”这些方法的代码存储在正在运行的Java应用程序中的何处 我尝试使用jmap转储堆,并使用jhat检查转储,但是我找不到任何关于我的类的方法在哪里的有用信息 我的对象的方法存储在哪里 它们存储在Class对象中,该对象保存在PemGen空间中 如果我卸载java应用程序,我能看到那个区域吗 这不是小事。JVM执行了一些优化,比如JIT编译
Class
对象中,该对象保存在PemGen
空间中
如果我卸载java应用程序,我能看到那个区域吗
这不是小事。JVM执行了一些优化,比如JIT编译,这使得这项任务更加困难
我试图“查看”这些方法的代码存储在正在运行的Java应用程序中的何处
您知道每个类,而不是每个实例,每个方法只有一个副本吗?这意味着一旦类被类加载器
加载,该类的所有方法都存储在内存中。创建多少实例并不重要。话虽如此,您可能并不关心方法消耗了多少内存
另见: