java 虚拟机
sky425509
这个作者很懒,什么都没留下…
展开
-
jvm内存模型
1、类装载子系统:装载 连接 初始化2、方法区。被所有线程共享。垃圾收集也会清理方法区中的无用类型对象。 a. 类型信息。类加载器加载类时,从类文件中提取出来:类的完整有效名、父类的完整有效名(interface and java.lang.Object 除外,因为无父类)、类型的修饰、类型直接接口列表 b. 常量池。存储了一个类型所使...原创 2014-02-11 10:57:15 · 64 阅读 · 0 评论 -
java 进程CPU 占用率过高优化方法
1、使用 jps -l 命令找到药诊断的 Java 应用的 pid(-l 参数是用来显示 Java 应用的完整包名的)。或者使用 top 命令根据 CPU 使用率查找 pid。2、使用 top -H -p 显示此进程中每个线程的相关信息。找到 CPU 占用率过高的线程,获取该线程的 id,并将其 id 的值转换为十六进制。3、使用 jstack 或 VisualVM 抓取 ...原创 2014-03-14 21:35:10 · 589 阅读 · 0 评论 -
visualvm监控tomcat配置方法
一、JMX方式修改catalina.sh,添加下面一行:CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote=true -Djava.rmi.server.hostname=192.168.1.106 -Dcom.sun.management.jmxremote.port=8086 -Dcom.sun.manageme...原创 2014-03-14 21:44:30 · 252 阅读 · 0 评论 -
java web应用服务器CPU过高原因及解决思路
1、方法中存在读写文件流的操作,高并发时每个请求产生一个文件流,导致系统CPU急增 解决思路:a、使用http://sky425509.iteye.com/admin/blogs/2031391 提到的方法,找出CPU高的java线程b、从线程栈日志信息中,找出导致CPU高的线程方法c、读写文件流操作移出方法中,避免每次请求都产生一个文件流 2、方法中使用了多...2014-04-10 16:16:17 · 1209 阅读 · 0 评论 -
jvm内存模型
1、程序计数器 每个java线程有自己独立的程序计数器,用于存储下一条要执行的指令。 2、java堆 用于存储对像和数组。分为新生代和老年代。新生代又分为初生代、幸存代。 java堆的调优参数: -Xms:最小堆内存 -Xmx:最大堆内存 -Xmn:新生代内存 -XX:NewSize:新生代初始内存 -XX:MaxNewSize:新生代最大内存 ...2015-11-17 17:46:53 · 83 阅读 · 0 评论 -
JVM垃圾回收总结
一、垃圾回收的算法 1、引用记数法 记录对像的引用数量 2、标记-清除算法 会产生空间碎片 3、复制算法 需要使用两块大小相同的内存,应用于新生代 4、标记压缩算法 将所有存活对像压缩到内存的一端,再清理边界外所有空间,应用于老年代 二、垃圾回收的类型 1、新生代串行收集器 特点:独占、单线程、串行,复制算法 2、老年代串行收集器 特点:独占、单线程、串行...2015-11-18 14:22:13 · 95 阅读 · 0 评论 -
openfire学习总结之插件
一、 类加载器 要深入理解openfire插件机制的内部原理,必须要深入了解一下java的类加载器。类加载器作用是加载 Java 类到 Java 虚拟机中。 加载过程如下:Java 源程序编译后转换成 Java 字节码(.class),类加载器负责读取 字节码,并转换成java.lang.Class类的一个实例。 系统提供的类加载器有: ...2015-11-18 15:50:36 · 249 阅读 · 0 评论