![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
RainManSu
这个作者很懒,什么都没留下…
展开
-
JVM调优总结(二)-一些概念
Java对象的大小 基本数据的类型的大小是固定的,这里就不多说了。对于非基本类型的Java对象,其大小就值得商榷。 在Java中,一个空Object对象的大小是8byte,这个大小只是保存堆中一个没有任何属性的对象的大小。看下面语句:Object ob = new Object(); 这样在程序中完成了一个Java对象的生命,但是它所占的空间为:4byte转载 2012-09-18 00:16:51 · 454 阅读 · 0 评论 -
Tomcat源码分析(二)------ 一次完整请求的里里外外
前几天分析了一下Tomcat的架构和启动过程,今天开始研究它的运转机制。Tomcat最本质就是个能运行JSP/Servlet的Web服务器 ,因此最典型的应用就是用户通过浏览器访问服务器,Tomcat接收到请求后转发给Servlet,由Servlet处理完后,把结果返回给客户端。今天就专门解析一下这么一个完整的请求的内部机理。通过DEBUG,一路跟下来,发现Tomcat处理请求的核心过程是以下转载 2012-11-03 23:55:53 · 540 阅读 · 0 评论 -
Tomcat 系统架构与设计模式,第 2 部分: 设计模式分析
门面设计模式门面设计模式在 Tomcat 中有多处使用,在 Request 和 Response 对象封装中、Standard Wrapper 到 ServletConfig 封装中、ApplicationContext 到 ServletContext 封装中等都用到了这种设计模式。门面设计模式的原理这么多场合都用到了这种设计模式,那这种设计模式究竟能有什么作用呢?顾名思义,就是将一原创 2012-11-03 23:19:33 · 495 阅读 · 0 评论 -
Tomcat集群配置笔记
一.环境说明1. 服务器3 台,一台安装apache 服务,两台安装tomcat2. 使用到的各个组件及下载地址:apache_2.2.11-win32-x86-no_ssl.msihttp://httpd.apache.org/download.cgitomcat 6压缩版http://tomcat.apache.org/download-60.c转载 2012-11-03 23:32:07 · 753 阅读 · 0 评论 -
Tomcat源码导入Eclipse
由于现在项目相对比较轻松,而且项目是研究SOA和Web Service的,因此这里我要对一些相关的开源技术做一些研究。接下来我要写的文章是Tomcat源码系列的文章,文章(一)是关于Tomcat源码编译和如何将Tomcat工程导入Eclips的,这里分享一下编译经验。 大家都知道Java的开源项目很强大,正是这些开源项目促进大量优秀的程序员进步和推动软件的快速发展。了解和看过开源项目的程序员原创 2012-11-03 23:53:46 · 690 阅读 · 0 评论 -
Java 内存泄露监控工具-- JVM监控工具介绍jstack, jconsole, jinfo, jmap, jdb, jstat
jstack -- 如果java程序崩溃生成core文件,jstack工具可以用来获得core文件的java stack和native stack的信息,从而可以轻松地知道java程序是如何崩溃和在程序何处发生问题。另外,jstack工具还可以附属到正在运行的java程序中,看到 当时运行的java程序的java stack和native stack的信息, 如果现在运行的java程序呈现hung转载 2012-12-02 00:16:52 · 1202 阅读 · 0 评论 -
linux java 分析工具jstact- java stack
我们使用jdk自带的jstack来分析。当linux出现cpu被java程序消耗过高时,以下过程说不定可以帮上你的忙: 1.top查找出哪个进程消耗的cpu高 21125 co_ad2 18 0 1817m 776m 9712 S 3.3 4.9 12:03.24 java转载 2012-12-02 00:41:19 · 2894 阅读 · 0 评论 -
JVM调优总结
堆大小设置JVM 中最大堆大小有三方面限制:相关操作系统的数据模型(32-bt还是64-bit)限制;系统的可用虚拟内存限制;系统的可用物理内存限制。32位系统下,一般限制在1.5G~2G;64为操作系统对内存无限制。我在Windows Server 2003 系统,3.5G物理内存,JDK5.0下测试,最大可设置为1478m。典型设置:java -Xmx3550m -Xms355转载 2012-12-02 23:44:10 · 637 阅读 · 0 评论 -
Java GC 日志图解
Java GC日志可以通过 +PrintGCDetails开启YoungGC日志: FullGC日志: 原文:http://www.chinasb.org/archives/2012/09/4921.shtml转载 2012-12-03 00:04:20 · 974 阅读 · 0 评论 -
Tomcat源码分析(一)------ 架构
废话少说,拉代码,导入eclipse开干,具体步骤可以参考http://blog.csdn.net/rainmansu/article/details/8144955下面谈谈我对Tomcat架构的理解总体架构:面向组件架构基于JMX事件侦听1)面向组件架构tomcat代码看似很庞大,但从结构上看却很清晰和简单,它主要由一堆组件组成,如Server、Service、Conne转载 2012-11-03 23:55:48 · 525 阅读 · 0 评论 -
Tomcat 系统架构与设计模式,第 1 部分: 工作原理
本文以 Tomcat 5 为基础,也兼顾最新的 Tomcat 6 和 Tomcat 4。Tomcat 的基本设计思路和架构是具有一定连续性的。Tomcat 总体结构Tomcat 的结构很复杂,但是 Tomcat 也非常的模块化,找到了 Tomcat 最核心的模块,您就抓住了 Tomcat 的“七寸”。下面是 Tomcat 的总体结构图:图 1.Tomcat 的总体结构从原创 2012-11-03 23:17:34 · 463 阅读 · 0 评论 -
JVM调优总结(六)-分代垃圾回收详述2
分代垃圾回收流程示意 选择合适的垃圾收集算法串行收集器 用单线程处理所有垃圾回收工作,因为无需多线程交互,所以效率比较高。但是,也无法使用多处理器的优势,所以此收集器适合单处理器机器。当然,此收集器也可以用在小数据量(100M左右)情况下的多处理器机器上。可以使用-XX:+UseSerialGC打开。 并行收集器转载 2012-09-18 00:22:02 · 1270 阅读 · 0 评论 -
JVM调优总结(三)-基本垃圾回收算法
标记-清除(Mark-Sweep): 此算法执行分两阶段。第一阶段从引用根节点开始标记所有被引用的对象,第二阶段遍历整个堆,把未标记的对象清除。此算法需要暂停整个应用,同时,会产生内存碎片。 复制(Copying): 此算法把内存空间划为两个相等的区域,每次只使用其中一个区域。垃圾回收时,遍历当前使用区域,把正在使用中的对象复制到另外一个区域中。次算转载 2012-09-18 00:02:13 · 709 阅读 · 0 评论 -
JVM调优总结(一)-- 一些概念
数据类型 Java虚拟机中,数据类型可以分为两类:基本类型和引用类型。基本类型的变量保存原始值,即:他代表的值就是数值本身;而引用类型的变量保存引用值。“引用值”代表了某个对象的引用,而不是对象本身,对象本身存放在这个引用值所表示的地址的位置。基本类型包括:byte,short,int,long,char,float,double,Boolean,returnAddress引用类转载 2012-09-18 00:14:47 · 483 阅读 · 0 评论 -
JVM调优总结(四)-垃圾回收面临的问题
如何区分垃圾 上面说到的“引用计数”法,通过统计控制生成对象和删除对象时的引用数来判断。垃圾回收程序收集计数为0的对象即可。但是这种方法无法解决循环引用。所以,后来实现的垃圾判断算法中,都是从程序运行的根节点出发,遍历整个对象引用,查找存活的对象。那么在这种方式的实现中,垃圾回收从哪儿开始的呢?即,从哪儿开始查找哪些对象是正在被当前系统使用的。上面分析的堆和栈的区别,其中栈是真正进转载 2012-09-18 00:19:00 · 761 阅读 · 0 评论 -
JVM调优总结(五)-分代垃圾回收详述1
为什么要分代 分代的垃圾回收策略,是基于这样一个事实:不同的对象的生命周期是不一样的。因此,不同生命周期的对象可以采取不同的收集方式,以便提高回收效率。 在Java程序运行的过程中,会产生大量的对象,其中有些对象是与业务信息相关,比如Http请求中的Session对象、线程、Socket连接,这类对象跟业务直接挂钩,因此生命周期比较长。但是还有一些对象,主要是程序运行过程转载 2012-09-18 00:20:35 · 714 阅读 · 0 评论 -
Java SE 6 HotSpot[tm] Virtual Machine Garbage Collection Tuning
Java SE 6 HotSpot[tm] Virtual Machine Garbage Collection Tuning Table of ContentsIntroductionErgonomicsGenerationsPerformance Co转载 2012-09-17 23:57:15 · 1015 阅读 · 0 评论 -
揭开IBM Java JVM GC实现的神秘内幕
今天,我把以前做Java Optimize的时候IBM送给我的一个光盘从新看了一下。发了一篇 对IBM java 1.3.0 for as400的JVM 的详细介绍。这里为大家揭开IBM Java Jvm GC实现的神秘内幕。AD:51CTO云计算架构师峰会 抢票进行中!按照Sam Borman的说法IBM java 1.3.0的GC是HotSpot的2倍,如果在多对称架构中性能更转载 2012-09-17 23:47:44 · 704 阅读 · 0 评论 -
Java 6 JVM参数选项大全(中文版)
Java 6 JVM参数选项大全(中文版) 作者:Ken WuEmail:ken.wug@gmail.com转载本文档请注明原文链接 http://kenwublog.com/docs/java6-jvm-options-chinese-edition.htm! 本文是基于最新的SUN官方文档Java SE 6 Hotspot VMOptions 编写的译文。主要介绍J转载 2012-09-17 23:51:14 · 505 阅读 · 0 评论 -
探究JVM和GC
1. Java堆中各代分布:图1:Java堆中各代分布Young:主要是用来存放新生的对象。 Old:主要存放应用程序中生命周期长的内存对象。 Permanent:是指内存的永久保存区域,主要存放Class和Meta的信息,Class在被 Load的时候被放入PermGen space区域. 它和和存放Instance的Heap区域不同,GC(Garbage Collectio转载 2012-09-18 00:00:11 · 459 阅读 · 0 评论 -
JVM内存模型以及垃圾回收
内存由 Perm 和 Heap 组成. 其中Heap = {Old + NEW = { Eden , from, to } }JVM内存模型中分两大块,一块是 NEW Generation,另一块是Old Generation.在New Generation中,有一个叫Eden的空间,主要是用来存放新生的对象,还有两个Survivor Spaces(from,to), 它们用来转载 2012-12-02 23:50:40 · 556 阅读 · 0 评论