JVM 性能排查查看哪个java 对象内存占用占用内存大,中显示

相关文章推荐
一、安装JProfiler
从http://www./下载5.1.2并申请试用序列号
二、主要功能简介
1.内存剖析 Memory pr...
一、安装JProfiler
从http://www./下载5.1.2并申请试用序列号
二、主要功能简介
1.内存剖析 M...
最近发现产品的java程序,占用内存变大很多。由于是从之前的32位server转到使用64位server,所以很有可能是不同架构下jvm分配内存大小不同导致的。
JAVA中没有类似C语言的siz...
链接:http://blog.csdn.net/fanfank/article/details/
最近面试多,出的题目很多都有如下形式,给定一个class或者struct...
对于对象的内存布局与内存对齐这个问题,其实是没有统一的说法的,因为实际情况还要联系你的平台与编译器以及编译器的设置。我的是VC7,XP系统,编译器的结构成员对齐设置为默认。下面针对两种情况来说说:
类的内存布局-sizeof(类对象)
一、简单对象
virtual ~...
有了前面几节的铺垫,本节开始摸索C++的对象的内存布局,平台为windows32位+VS2008。
一 内置类型的size
内置类型,直接上代码,帮助大家加深记忆:
简介sizeof 的总结: http://blog.csdn.net/xyh_adolph/article/details/sizeof计算数据(包括数组、变量、类型、结构体等)所占内...
他的最新文章
他的热门文章
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)如何查看java虚拟机堆内存的参数值_百度知道
如何查看java虚拟机堆内存的参数值
我有更好的答案
1,另外JVM最大内存首先取决于实际的物理内存和操作系统。所以说设置VM参数导致程序无法启动主要有以下几种原因,默认是物理内存的1&#47.XXMaxPermSize256m-vmargs-Xms40m-Xmx256m其中–launcher.XXMaxPermSize(注意最前面是两个连接线)跟-XX,eclipse报出如下错误.OutOfMemoryError: Java heap space ”google了一下原来是图片太大了。可以设置jvm堆的最大值来解决。 首先, 打开Eclipse软件:参数形如“项 值”这种形式。JVM内存限制(最大值) 首先JVM内存限制于实际的最大物理内存(废话?参数中-vmargs的意思是设置JVM参数,因为有一部分被硬件占用了。3. 为何将上面的参数写入到eclipse.ini文件Eclipse没有执行对应的设置?那为什么同样的参数在快捷方式或者命令行中有效而在eclipse.ini文件中是无效的呢?这是因为我们没有遵守eclipse.ini文件的设置规则。 以下详细的介绍下jvm的几个参数;jre1.6.0\bin\javaw.exe参数设置虚拟机,选择菜单栏run,在二级菜单中选择 Debug Configurations,然后,中间有空格的需要换行书写,如果值中有空格的需要用双引号包括起来:\Java&#92:MaxPermSize都设置为512M之后Eclipse可以启动,而有些机器无法启动?3. 为何将上面的参数写入到eclipse.ini文件Eclipse没有执行对应的设置?下面我们一一进行回答1. 各个参数的含义什么。非堆内存分配 JVM使用-XX:MaxPermSize=128M这里有几个问题。可以看出JVM主要管理两种类型的内存:堆和非堆今天在加载一幅图片时.ini文件内容是这样的,Eclipse压缩包中自带的eclipse、字段和方法数据)以及方法和构造方法的代码都在非堆内存中:MaxPermSize参数的含义基本是一样的,我觉得唯一的区别就是前者是eclipse.”意思是说当前只有小于5%的非堆内存是空闲的。所以我们只要将这个值设置大一些就可以了。提示中给出了设置的参数:-vmargs -Xms128M -Xmx512M -XX:PermSize=64M -XX:-showsplashorg.eclipse.platform--launcher:PermSize设置非堆内存初始值:1) 参数中-Xms的值大于-Xmx,或者-XX:PermSize的值大于-XX:MaxPermSize;2) -Xmx的值和-XX:MaxPermSize的总和超过了JVM内存的最大限制,比如当前操作系统最大内存限制,VM arguments中输入所需要的内存最大占用量,比如输入-Xmx800m即可:MaxPermSize都设置为512M之后Eclipse可以启动,而有些机器无法启动?通过上面对JVM内存管理的介绍我们已经了解到JVM内存包含两种:堆内存和非堆内存。堆内存分配 JVM初始分配的内存由-Xms指定,然后再解释每个参数代表的含义。堆(Heap)和非堆(Non-heap)内存 按照官方的说法,JVM内存的最大值跟操作系统有很大的关系。简单的说就32位处理器虽然可控内存空间有4GB,但是具体的操作系统会给一个限制,这个限制一般是2GB-3GB(一般来说Windows系统下为1.5G-2G,Linux系统下为2G-3G),而64bit以上的处理器就不会有限制了。2. 为什么有的机器我将-Xmx和-XX。简单来说堆就是Java代码可及的内存,是留给开发人员使用的、每个类结构(如运行时常数池、JVM内部处理或优化所需的内存(如JIT编译后的代码缓存).exe启动的时候设置的参数,或者实际的物理内存等等:“MyEclipse has detected that less than 5% of the 64MB of Perm Gen (Non-heap memory)4!呵呵),假设物理内存无限大的话,在eclipse.ini文件中要写成这样:-vmC,最后参数在eclipse.ini中可以写成这个样子;jre1.6.0\bin\javaw.exe按照上面所说的,所以方法区;非堆就是JVM留给自己用的。”“在JVM中堆之外的内存称为非堆内存(Non-heap memory)”,JVM会减少堆直到-Xms的最小限制。因此服务器一般设置-Xms、-Xmx相等以避免在每次GC 后调整堆的大小。说到实际物理内存这里需要说明一点的是,如果你的内存是1024MB,但实际系统中用到的并不可能是1024MB:“Java 虚拟机具有一个堆,堆是运行时数据区域,所有类实例和数组的内存均从此处分配。堆是在 Java 虚拟机启动时创建的:在弹出的窗口中选择(x)=arguments选项卡,所以后面的其实都是JVM的参数了,我们首先了解一下JVM内存管理的机制:\Java&#92:-vmargs-Xms128M-Xmx512M-XX:PermSize=64M-XX:MaxPermSize=128M实际运行的结果可以通过Eclipse中“Help”-“About Eclipse SDK”窗口里面的“Configuration Details”按钮进行查看。另外需要说明的是,默认是物理内存的1&#47,默认是物理内存的1&#47. 各个参数的含义什么?2. 为什么有的机器我将-Xmx和-XX;64;由XX:MaxPermSize设置最大非堆内存的大小;64;JVM最大分配的内存由-Xmx指定,默认是物理内存的1/4。默认空余堆内存小于40%时,JVM就会增大堆直到-Xmx的最大限制;空余堆内存大于70% 时。比如我们使用-vm C,而后者是eclipse所使用的JVM中的参数。其实二者设置一个就可以了:“Exception in thread &main& java.lang
为您推荐:
其他类似问题
java虚拟机的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。相关文章推荐
JVM的分代GC法非常适合处理小而短命的对象,这类对象可以很快的在minor GC后清除;
但是日常开发中经常需要缓存一些对象,这些对象在经过几次MinorGC后最终会进入老年代;
原文地址:/a/3272
本文深入分析并验证了不同Java对象占用内存空间大小的情况。对于不同的jvm实现,Java对象占...
前一篇介绍了线上应用故障排查之一:高CPU占用,这篇主要分析高内存占用故障的排查。
搞Java开发的,经常会碰到下面两种异常:
1、java.lang.OutOfMemoryError: ...
很多人的理解是,Java进程占用的内存就是堆内存占用,再进一步就是Perm/元数据区的占用。
Java面试宝典里的,大多点到这为止,其实真实情况远远不是这样的。
如果持有以上观点,那么服务器上出现OO...
到目前为止,还没有做明确的优化工作。只是做了初始化选择工作,比如说:JVM部署模型、JVM运行环境、收集哪些垃圾回收器的信息以及需要遵守垃圾回收原则。这一步将介绍如何评估应用需要的内存大小以及Java...
Java通过jvm自己管理内存,同时Java提供了一些命令行工具,用于查看内存使用情况。
这里主要介绍一下jstat、jmap命令以及相关工具。...
首先看一下一个java进程的jmap输出:
[lex@chou ~]$ jmap -heap 837
Attaching to process ID 837, please wait...
一、使用JAVA类库。
首先看一下一个java进程的jmap输出:
[lex@chou ~]$ jmap -heap 837
Attaching to proces...
原文出自【雪的痕迹】
原文地址:/cwbwebhome/article/article8/852.html
java做的系统给人的印象是什么?占内存!...
他的最新文章
他的热门文章
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)相关文章推荐
Java本身提供了多种丰富的方法和工具来帮助开发人员查看和分析GC及JVM内存的状况,同时开源界和商业界也有一些工具可用于查看、分析GC及JVM内存的状况。通过这些分析,可以排查程序中内存泄露的问题及...
JVM 内存分析
核心提示:原因有很多种,比如: 1.数据量过于庞大;死循环 ;静态变量和静态方法过多;递归;无法确定是否被引用的对象; 2.虚拟机不回收内存(内存泄漏); 说白了就...
JVM监控方法和监控工具网上介绍的很多,大家关心的大部分内容可能是“内存去哪儿了”,以下是个人的总结和心得。
分析方式:
事后时候堆快照、线程栈分析
事后多个堆快照对比分析
飞行记录,...
性能分析工具之--
Eclipse Memory Analyzer tool(MAT)(一)
性能分析工具之-- Eclipse Memory Analyzer
tool(MAT)(一...
java 语言, 开发者不能直接控制程序运行内存, 对象的创建都是由类加载器一步步解析, 执行与生成与内存区域中的; 并且jvm有自己的垃圾回收器对内存区域管理, 回收; 但是我们已经可以通过一些工具...
JDK本身提供了很多方便的JVM性能调优监控工具,除了集成式的VisualVM和jConsole外,还有jps、jstack、jmap、jhat、jstat等小巧的工具,本博客希望能起抛砖引玉之用,让...
转自/blog/759586
JVM内存异常例子
java.lang.OutOfMemoryError: PermGen space
jinfo:可以输出并修改运行时的java 进程的opts。
jps:与unix上的ps类似,用来显示本地的java进程,可以查看本地运行着几个java程序,并显示他们的进程号。
一、安装JProfiler
从http://www./下载5.1.2并申请试用序列号
二、主要功能简介
1.内存剖析 Memory pr...
他的最新文章
他的热门文章
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)博客分类:
功能:打印出某个java进程(使用pid)内存内的,所有‘对象’的情况(如:产生那些对象,及其数量)
-dump:[live,]format=b,file=&filename& 使用hprof二进制形式,输出jvm的heap内容到文件=. live子选项是可选的,假如指定live选项,那么只输出活的对象到文件.
-finalizerinfo 打印正等候回收的对象的信息.
-heap 打印heap的概要信息,GC使用的算法,heap的配置及wise heap的使用情况.
-histo[:live] 打印每个class的实例数目,内存占用,类全名信息. VM的内部类名字开头会加上前缀”*”. 如果live子参数加上后,只统计活的对象数量.
-permstat 打印classload和jvm heap长久层的信息. 包含每个classloader的名字,活泼性,地址,父classloader和加载的class数量. 另外,内部String的数量和占用内存数也会打印出来.
打印当前heap的概要信息:heap的总量,年轻代,老年代,Perm Generation的量
GC使用的算法
heap的配置:总量
当前heap的使用情况:占用量,总量,百分比
.
sudo jmap -heap 27409
输出:
Attaching to process ID 27409, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 24.45-b08
using thread-local object allocation.
Parallel GC with 4 thread(s)
Heap Configuration:
MinHeapFreeRatio = 40
MaxHeapFreeRatio = 70
MaxHeapSize
(2048.0MB)
MaxNewSize
= .1875MB)
SurvivorRatio
MaxPermSize
G1HeapRegionSize = 0 (0.0MB)
Heap Usage:
PS Young Generation
Eden Space:
capacity =
60.406% used
From Space:
capacity = .5MB)
= .6875MB)
= .3125MB)
75.31% used
capacity = .5MB)
= 0 (0.0MB)
PS Old Generation
capacity =
(1365.5MB)
40.536% used
PS Perm Generation
capacity =
(187.75MB)
26.004% used
31742 interned Strings occupying 3432376 bytes.
2、-histo[:live] 打印每个class的实例数目,内存占用,类全名信息. VM的内部类名字开头会加上前缀”*”. 如果live子参数加上后,只统计活的对象数量.
sudo jmap -histo 27409&a.log
Object Histogram:
#instances
Class description
--------------------------------------------------------------------------
java.util.concurrent.ConcurrentSkipListMap$Node
java.lang.Double
java.util.concurrent.ConcurrentSkipListMap$Index
* ConstMethodKlass
java.lang.Long
* MethodKlass
java.util.HashMap$Entry
* ConstantPoolKlass
java.lang.String
8346592 * InstanceKlassKlass
11712 com.mysql.jdbc.ConnectionPropertiesImpl$BooleanConnectionProperty
7374880 * ConstantPoolCacheKlass
另外继续分析日志,每个对象存在的数量以及占用内存的大小:
grep "qunar" data.txt |grep "afare"
输出:
4051728 com.gym.afare.dubbo.model.AfareBlackList
com.gym.afare.dubbo.model.AfareBlackListPlus
com.gym.flight.afare.model.RefreshCmRequest
com.gym.flight.afare.model.ErrorEnum
com.gym.afare.dubbo.model.request.AfareResultRequest
com.gym.flight.afare.model.RefreshTask
com.gym.flight.afare.model.RefreshPriceRequest
com.gym.flight.afare.model.ApiResponse
com.gym.afare.dubbo.model.AfareBlackList$FlightType[]
com.gym.afare.dubbo.model.AfareBlackList$UnLockTypeEnum
com.gym.afare.dubbo.model.AfareBlackList$UnLockTypeEnum[]
com.gym.afare.dubbo.model.AfareBlackList$FlightType
com.gym.afare.dubbo.model.AfareBlackList$LockTypeEnum[]
com.gym.afare.dubbo.model.AfareBlackList$LockTypeEnum
com.gym.afare.dubbo.model.AfareBlackList$LockStatusEnum[]
com.gym.flight.afare.model.ErrorEnum[]
com.gym.afare.dubbo.model.AfareBlackList$LockStatusEnum
com.gym.flight.afare.task.DeleteUnlockBlackListTask
com.gym.flight.afare.dubbo.provider.AfareBlackListServiceImpl
com.gym.flight.afare.dao.impl.AfareBlackListDAOImpl
com.gym.flight.afare.service.impl.RefreshPriceServiceImpl
com.gym.flight.afare.service.impl.RefreshPriceServiceImpl$RefreshThreadFactory
com.gym.flight.afare.dao.impl.AfareBlackListPlusDAOImpl
com.gym.flight.afare.dubbo.provider.AfareResultQueryServiceImpl
com.gym.flight.afare.dao.CacheManager
com.gym.flight.afare.dao.impl.AfareResultDaoImpl
com.gym.flight.afare.dubbo.provider.AfareResultUpdateServiceImpl
com.gym.flight.afare.service.Qc
com.gym.flight.afare.web.RefreshPriceController
com.gym.flight.afare.model.TaskListener
com.gym.flight.afare.task.ReloadBlacklistCacheTask
com.gym.flight.afare.task.ArchiveAfareResultTask
com.gym.flight.afare.dao.CacheManager$1
com.gym.flight.afare.web.BackController
com.gym.flight.afare.web.interceptor.TraceInterceptor
com.gym.flight.afare.util.SpringUtil
从中不难看出,SpringUtil 等类都是单例的,所以只有一个对象,而AfareBlackList 是系统内的对象,数量存在较多
3、-dump:[live,]format=b,file=&filename& 使用hprof二进制形式,输出jvm的heap内容到文件=. live子选项是可选的,假如指定live选项,那么只输出活的对象到文件.
sudo jmap -F -dump:live,format=b,file=heap.bin 27409
输出到heap.bin文件里
eg
byte b = 100;
List&C[]& d = new ArrayList&C[]&();
public B() {
for (int i = 0; i & 100000; i++) {
d.add(new C[i]);
List&B& bList = new ArrayList&B&();
public A() {
for (int i = 0; i & 1000; i++) {
bList.add(new B());
public class Test {
public static void main(String[] args) throws Exception {
A a = new A();
new Thread() {}.start();
a.toString();
运行参数:
-server -Xms1024m -Xmx1024m -Xmn512m -XX:+UseParallelOldGC -XX:+PrintGCApplicationStoppedTime -XX:+PrintGCDateStamps -XX:+PrintGCDetails
-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=c:/heap.bin
其他:
-permstat 打印classload和jvm heap长久层的信息. 包含每个classloader的名字,活泼性,地址,父classloader和加载的class数量. 另外,内部String的数量和占用内存数也会打印出来.
-dump:[live,]format=b,file=&filename& 使用hprof二进制形式,输出jvm的heap内容到文件=. live子选项是可选的,假如指定live选项,那么只输出活的对象到文件.&
参考资料:
/articles/VzYziu
浏览: 141740 次
来自: 北京
小侠有点帅哦 写道此流怎么关闭新春这个实现 可以不关闭的,哈哈 ...
此流怎么关闭新春
写的很好为什么初始化参数,年轻代-Xmn10M def new ...
应该是跟共享域名思路差不多,根据cookie的key作判断
ClientPNames.COOKIE_POLICY, Coo ...
(window.slotbydup=window.slotbydup || []).push({
id: '4773203',
container: s,
size: '200,200',
display: 'inlay-fix'}

我要回帖

更多关于 对象占用内存 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信