- 浏览: 639749 次
- 性别:
- 来自: 成都
最新评论
-
zhima:
楼主还在升级开发吗?还是地址变动了
开源WebSocket服务器项目宝贝鱼CshBBrain V4.0.1 和 V2.0.2发布 -
linxingliang:
你好,我有一个iteye账号也被锁定了,你是通过什么方式联系管 ...
今天由于iteye账号被锁定所有博文不能访问,已解锁 -
独自空楼茉莉为谁而开:
解决啦,仿照你的广播发送写的代码 嘿嘿
开源WebSocket服务器项目 宝贝鱼(CshBBrain)版本发布 -
独自空楼茉莉为谁而开:
小弟有一个问题 我在本地开启两个页面访问后台,后台稍微修改下代 ...
开源WebSocket服务器项目 宝贝鱼(CshBBrain)版本发布 -
spqin:
...
百度地图API详解之地图标注
作者:Jason S.H.Chen
上篇(http://cshbbrain.iteye.com/blog/526356)给大家介绍了SUN JVM的内存管理机制。本篇主要讲解与性能相关的JVM参数,怎样使用工具监控JVM的内存分配使用情况和怎样调整JVM参数让系统在特定硬件配置下达到最优化的性能。
通过上篇SUN JVM内存管理机制的介绍,大家都知道了SUN JVM内存分为永久存储区,伊甸园,幸存者0区,幸存者1区和养老区等几个区域。他们的作用以及垃圾回收处理过程在上篇也做了详细介绍。下面我们就来看看和这些内存分区相关的JVM参数。
JVM相关参数:
参数名 参数说明
-server 启用能够执行优化的编译器, 显著提高服务器的性能,但使用能够执行优化的编译器时,服务器的预备时间将会较长。生产环境的服务器强烈推荐设置此参数。
-Xss 单个线程堆栈大小值;JDK5.0以后每个线程堆栈大小为1M,以前每个线程堆栈大小为256K。在相同物理内存下,减小这个值能生成更多的线程。但是操作系统对一个进程内的线程数还是有限制的,不能无限生成,经验值在3000~5000左右。
-XX:+UseParNewGC 可用来设置年轻代为并发收集【多CPU】,如果你的服务器有多个CPU,你可以开启此参数;开启此参数,多个CPU可并发进行垃圾回收,可提高垃圾回收的速度。此参数和+UseParallelGC,-XX:ParallelGCThreads搭配使用。
+UseParallelGC 选择垃圾收集器为并行收集器。此配置仅对年轻代有效。即上述配置下,年轻代使用并发收集,而年老代仍旧使用串行收集 。可提高系统的吞吐量。
-XX:ParallelGCThreads 年轻代并行垃圾收集的前提下(对并发也有效果)的线程数,增加并行度,即:同时多少个线程一起进行垃圾回收。此值最好配置与处理器数目相等。
永久存储区相关参数:
参数名 参数说明
-Xnoclassgc 每次永久存储区满了后一般GC算法在做扩展分配内存前都会触发一次FULL GC,除非设置了-Xnoclassgc.
-XX:PermSize 应用服务器启动时,永久存储区的初始内存大
-XX:MaxPermSize 应用运行中,永久存储区的极限值。为了不消耗扩大JVM永久存储区分配的开销,将此参数和-XX:PermSize这个两个值设为相等。
堆空间相关参数
参数名 参数说明
-Xms 启动应用时,JVM堆空间的初始大小值。
-Xmx 应用运行中,JVM堆空间的极限值。为了不消耗扩大JVM堆控件分配的开销,将此参数和-Xms这个两个值设为相等,考虑到需要开线程,讲此值设置为总内存的80%.
-Xmn 此参数硬性规定堆空间的新生代空间大小,推荐设为堆空间大小的1/4。
上面所列的JVM参数关系到系统的性能,而其中-XX:PermSize,-XX:MaxPermSize,-Xms,-Xmx和-Xmn这5个参数更是直接关系到系统的性能,系统是否会出现内存溢出。
-XX:PermSize和-XX:MaxPermSize分别设置应用服务器启动时,永久存储区的初始大小和极限大小;在生成环境中强烈推荐将这个两个值设置为相同的值,以避免分配永久存储区的开销,具体的值可取系统“疲劳测试”获取到的永久存储区的极限值;如果不进行设置-XX:MaxPermSize默认值为64M,一般来说系统的类定义文件大小都会超过这个默认值。
-Xms和-Xmx分别是服务器启动时,堆空间的初始大小和极限值。-Xms的默认值是物理内存的1/64但小于1G,-Xmx的默认值是物理内存的1/4但小于1G.在生产环境中这些默认值是肯定不能满足我们的需要的。也就是你的服务器有8g的内存,不对JVM参数进行设置优化,应用服务器启动时还是按默认值来分配和约束JVM对内存资源的使用,不会充分的利用所有的内存资源。
到此我们就不难理解上文提到的“我的服务器有8g内存,系统也就100M左右,居然出现内存溢出”这个“怪现象”了。在上文我曾提到“永久存储区溢出(java.lang.OutOfMemoryError: Java Permanent Space)”和“JVM堆空间溢出(java.lang.OutOfMemoryError: Java heap space)”这两种溢出错误。现在大家都知道答案了:“永久存储区溢出(java.lang.OutOfMemoryError: Java Permanent Space)”乃是永久存储区设置太小,不能满足系统需要的大小,此时只需要调整-XX:PermSize和-XX:MaxPermSize这两个参数即可。“JVM堆空间溢出(java.lang.OutOfMemoryError: Java heap space)”错误是JVM堆空间不足,此时只需要调整-Xms和-Xmx这两个参数即可。
到此我们知道了,当系统出现内存溢出时,是哪些参数设置不合理需要调整。但我们怎么知道服务器启动时,到底JVM内存相关参数的值是多少呢。在实践中,经常遇到对JVM参数进行设置了,并且自己心里觉得应该不会出现内存溢出了;但不幸的是内存溢出还是发生了。很多人百思不得其解,那我可以肯定地告诉你,你设置的JVM参数并没有起作用(本文咱不探讨没有起作用的原因)。不信我们就去看看,下面介绍如何使用SUN公司的内存使用监控工具jvmstat.
本文只介绍如何使用jvmstat查看内存使用,不介绍其安装配置。有兴趣的读者,可到SUN公司的官方网站下载一个,他本身已经带有非常详细的安装配置文档了。这里假设你已经在你的应用服务器上配置好了jvmstat了。那我们就开始使用他来看看我们的服务器到底是有没有按照我们设置的参数启动。
首先启动服务器,等服务器启动完。开启DOS窗口(此例子是在windows下完成,linux下同样),在dos窗口中输入jps这个命令。如下图
窗口中会显示所有JAVA应用进程列表,列表的第一列为应用的进程ID,第二列为应用的名字。在列表中找到你的应用服务器的进程ID,比如我这里的应用服务器进程ID为1856.在命令行输入visualgc 1856回车。进入jvmstat的主界面,如下图:
上图分别标注了伊甸园,幸存者0区,幸存者1区,养老区和永久存储区。图上直观的反应出各存储区的大小,已经使用的大小,剩下的空间大小,并用数字标出了各区的大小;如果你这上面的数字和你设置的JVM参数相同的话,那么恭喜你,你设置的参数已经起作用,如果和你设置的不一致的话,那么你设置的参数没有起作用(可能是服务器的启动方式没有载入你的JVM参数设置。)
在优化服务器的时候,这个工具很有用,他占用资源少。可以随应用服务器一直保持开启状态,如果系统发生内粗溢出,可以一眼就看出是那个区发生了溢出。根据观察结果进行进一步优化。
首先谢谢 凤舞凰扬,此文却为本人原创;此篇和(http://cshbbrain.iteye.com/blog/526356)为姊妹篇。有兴趣可到我的博客去看上篇。上篇本人发表在公司内刊之后,公司的人约我写下篇。由于本人此段时间较忙,匆匆写完,有些细节的地方还不曾仔细推敲。
这个参数的描述不正确。
上篇(http://cshbbrain.iteye.com/blog/526356)给大家介绍了SUN JVM的内存管理机制。本篇主要讲解与性能相关的JVM参数,怎样使用工具监控JVM的内存分配使用情况和怎样调整JVM参数让系统在特定硬件配置下达到最优化的性能。
通过上篇SUN JVM内存管理机制的介绍,大家都知道了SUN JVM内存分为永久存储区,伊甸园,幸存者0区,幸存者1区和养老区等几个区域。他们的作用以及垃圾回收处理过程在上篇也做了详细介绍。下面我们就来看看和这些内存分区相关的JVM参数。
JVM相关参数:
参数名 参数说明
-server 启用能够执行优化的编译器, 显著提高服务器的性能,但使用能够执行优化的编译器时,服务器的预备时间将会较长。生产环境的服务器强烈推荐设置此参数。
-Xss 单个线程堆栈大小值;JDK5.0以后每个线程堆栈大小为1M,以前每个线程堆栈大小为256K。在相同物理内存下,减小这个值能生成更多的线程。但是操作系统对一个进程内的线程数还是有限制的,不能无限生成,经验值在3000~5000左右。
-XX:+UseParNewGC 可用来设置年轻代为并发收集【多CPU】,如果你的服务器有多个CPU,你可以开启此参数;开启此参数,多个CPU可并发进行垃圾回收,可提高垃圾回收的速度。此参数和+UseParallelGC,-XX:ParallelGCThreads搭配使用。
+UseParallelGC 选择垃圾收集器为并行收集器。此配置仅对年轻代有效。即上述配置下,年轻代使用并发收集,而年老代仍旧使用串行收集 。可提高系统的吞吐量。
-XX:ParallelGCThreads 年轻代并行垃圾收集的前提下(对并发也有效果)的线程数,增加并行度,即:同时多少个线程一起进行垃圾回收。此值最好配置与处理器数目相等。
永久存储区相关参数:
参数名 参数说明
-Xnoclassgc 每次永久存储区满了后一般GC算法在做扩展分配内存前都会触发一次FULL GC,除非设置了-Xnoclassgc.
-XX:PermSize 应用服务器启动时,永久存储区的初始内存大
-XX:MaxPermSize 应用运行中,永久存储区的极限值。为了不消耗扩大JVM永久存储区分配的开销,将此参数和-XX:PermSize这个两个值设为相等。
堆空间相关参数
参数名 参数说明
-Xms 启动应用时,JVM堆空间的初始大小值。
-Xmx 应用运行中,JVM堆空间的极限值。为了不消耗扩大JVM堆控件分配的开销,将此参数和-Xms这个两个值设为相等,考虑到需要开线程,讲此值设置为总内存的80%.
-Xmn 此参数硬性规定堆空间的新生代空间大小,推荐设为堆空间大小的1/4。
上面所列的JVM参数关系到系统的性能,而其中-XX:PermSize,-XX:MaxPermSize,-Xms,-Xmx和-Xmn这5个参数更是直接关系到系统的性能,系统是否会出现内存溢出。
-XX:PermSize和-XX:MaxPermSize分别设置应用服务器启动时,永久存储区的初始大小和极限大小;在生成环境中强烈推荐将这个两个值设置为相同的值,以避免分配永久存储区的开销,具体的值可取系统“疲劳测试”获取到的永久存储区的极限值;如果不进行设置-XX:MaxPermSize默认值为64M,一般来说系统的类定义文件大小都会超过这个默认值。
-Xms和-Xmx分别是服务器启动时,堆空间的初始大小和极限值。-Xms的默认值是物理内存的1/64但小于1G,-Xmx的默认值是物理内存的1/4但小于1G.在生产环境中这些默认值是肯定不能满足我们的需要的。也就是你的服务器有8g的内存,不对JVM参数进行设置优化,应用服务器启动时还是按默认值来分配和约束JVM对内存资源的使用,不会充分的利用所有的内存资源。
到此我们就不难理解上文提到的“我的服务器有8g内存,系统也就100M左右,居然出现内存溢出”这个“怪现象”了。在上文我曾提到“永久存储区溢出(java.lang.OutOfMemoryError: Java Permanent Space)”和“JVM堆空间溢出(java.lang.OutOfMemoryError: Java heap space)”这两种溢出错误。现在大家都知道答案了:“永久存储区溢出(java.lang.OutOfMemoryError: Java Permanent Space)”乃是永久存储区设置太小,不能满足系统需要的大小,此时只需要调整-XX:PermSize和-XX:MaxPermSize这两个参数即可。“JVM堆空间溢出(java.lang.OutOfMemoryError: Java heap space)”错误是JVM堆空间不足,此时只需要调整-Xms和-Xmx这两个参数即可。
到此我们知道了,当系统出现内存溢出时,是哪些参数设置不合理需要调整。但我们怎么知道服务器启动时,到底JVM内存相关参数的值是多少呢。在实践中,经常遇到对JVM参数进行设置了,并且自己心里觉得应该不会出现内存溢出了;但不幸的是内存溢出还是发生了。很多人百思不得其解,那我可以肯定地告诉你,你设置的JVM参数并没有起作用(本文咱不探讨没有起作用的原因)。不信我们就去看看,下面介绍如何使用SUN公司的内存使用监控工具jvmstat.
本文只介绍如何使用jvmstat查看内存使用,不介绍其安装配置。有兴趣的读者,可到SUN公司的官方网站下载一个,他本身已经带有非常详细的安装配置文档了。这里假设你已经在你的应用服务器上配置好了jvmstat了。那我们就开始使用他来看看我们的服务器到底是有没有按照我们设置的参数启动。
首先启动服务器,等服务器启动完。开启DOS窗口(此例子是在windows下完成,linux下同样),在dos窗口中输入jps这个命令。如下图
窗口中会显示所有JAVA应用进程列表,列表的第一列为应用的进程ID,第二列为应用的名字。在列表中找到你的应用服务器的进程ID,比如我这里的应用服务器进程ID为1856.在命令行输入visualgc 1856回车。进入jvmstat的主界面,如下图:
上图分别标注了伊甸园,幸存者0区,幸存者1区,养老区和永久存储区。图上直观的反应出各存储区的大小,已经使用的大小,剩下的空间大小,并用数字标出了各区的大小;如果你这上面的数字和你设置的JVM参数相同的话,那么恭喜你,你设置的参数已经起作用,如果和你设置的不一致的话,那么你设置的参数没有起作用(可能是服务器的启动方式没有载入你的JVM参数设置。)
在优化服务器的时候,这个工具很有用,他占用资源少。可以随应用服务器一直保持开启状态,如果系统发生内粗溢出,可以一眼就看出是那个区发生了溢出。根据观察结果进行进一步优化。
评论
13 楼
maliang.scut
2010-03-13
对于永久储存区溢出的情况,除了在系统参数上发力,那么在代码实现上,是否也又要注意的呢?
12 楼
mwmw
2009-12-23
NIO所对应的native的问题,也是要考虑的,所以不能把heap设置的太大。
11 楼
CshBBrain
2009-12-23
"楼主 写道
-Xnoclassgc 每次永久存储区满了后一般GC算法在做扩展分配内存前都会触发一次FULL GC,除非设置了-Xnoclassgc.
这个和fullgc应该也没有关系吧,fullgc是指yong和old都执行的gc,执行fullgc的使用jvm会产生停顿,这个参数只是控制是否开启perm区的gc,原来我发现这个值默认是关闭,但是jdk1.6里这个功能默认是开启了"
这里的确有问题,应该是“-Xnoclassgc 每次永久存储区满了后一般GC算法在做扩展分配永久存储区前都会触发一次对永久存储区的垃圾回收,除非设置了-Xnoclassgc.”
-Xnoclassgc 每次永久存储区满了后一般GC算法在做扩展分配内存前都会触发一次FULL GC,除非设置了-Xnoclassgc.
这个和fullgc应该也没有关系吧,fullgc是指yong和old都执行的gc,执行fullgc的使用jvm会产生停顿,这个参数只是控制是否开启perm区的gc,原来我发现这个值默认是关闭,但是jdk1.6里这个功能默认是开启了"
这里的确有问题,应该是“-Xnoclassgc 每次永久存储区满了后一般GC算法在做扩展分配永久存储区前都会触发一次对永久存储区的垃圾回收,除非设置了-Xnoclassgc.”
10 楼
CshBBrain
2009-12-23
看了下你的ppt,对jvm讲得挺全面的。很期待你的文章。
9 楼
凤舞凰扬
2009-12-22
看楼主既然在写关于JVM文章,就提供一个附件给楼主参考,也算交流吧。附件是我给部门做JVM的介绍的PPT,其中有一些内容也可以说明楼主文中一些相对不完善的地方,包括对于OutOfMemoryError的解释。
另外楼主推荐的jvmstat只是一个对于JVM信息状态反馈的工具,对于JVM的优化起不了太多作用。另外,这种工具只适合于非生产环境,在生产环境一般是不会允许执行的。
对于如何进行应用程序在application和JVM级别的调优,改天我写点东东...
另外楼主推荐的jvmstat只是一个对于JVM信息状态反馈的工具,对于JVM的优化起不了太多作用。另外,这种工具只适合于非生产环境,在生产环境一般是不会允许执行的。
对于如何进行应用程序在application和JVM级别的调优,改天我写点东东...
8 楼
凤舞凰扬
2009-12-22
呵呵,其实写写挺不错的,也是经验的总结。可以多交流下
7 楼
CshBBrain
2009-12-21
凤舞凰扬 写道
楼主是转帖的帖子吧。这篇文章基本都对,不过还是存在一些问题的。列出来给大家参考下:
1. -Xss 单个线程堆栈大小值;JDK5.0以后每个线程堆栈大小为1M,以前每个线程堆栈大小为256K。在相同物理内存下,减小这个值能生成更多的线程。但是操作系统对一个进程内的线程数还是有限制的,不能无限生成,经验值在3000~5000左右。
很少有建议去减小这个值,只有在运行的java程序处理及大量低代销的任务线程时(如消息引擎的分发),否则 如果该值过小,它是会容易抛出StackOverFlowException的,实际情况是一般是限制最大值(比如linux系统建议为2M)。另外,线程堆栈的内存需求是独立在heap外的,如果所谓经验值在3000-5000,这种线程处理的内存需求就和文章下面建议heap为80%是相矛盾的。至于3000-5000在没有说明硬件环境和操作系统环境,也不考虑线程具体做什么事时,有点瞎蒙的意味。
2. -Xmx 应用运行中,JVM堆空间的极限值。为了不消耗扩大JVM堆控件分配的开销,将此参数和-Xms这个两个值设为相等,考虑到需要开线程,讲此值设置为总内存的80%. 总内存是多少啊?在拥有十多G内存的服务器上依然如此?32位的JVM能访问的内存不过2G多(与操作系统以及JVM实现有关)。
其他的还没写完,下班了,回家补充点。
1. -Xss 单个线程堆栈大小值;JDK5.0以后每个线程堆栈大小为1M,以前每个线程堆栈大小为256K。在相同物理内存下,减小这个值能生成更多的线程。但是操作系统对一个进程内的线程数还是有限制的,不能无限生成,经验值在3000~5000左右。
很少有建议去减小这个值,只有在运行的java程序处理及大量低代销的任务线程时(如消息引擎的分发),否则 如果该值过小,它是会容易抛出StackOverFlowException的,实际情况是一般是限制最大值(比如linux系统建议为2M)。另外,线程堆栈的内存需求是独立在heap外的,如果所谓经验值在3000-5000,这种线程处理的内存需求就和文章下面建议heap为80%是相矛盾的。至于3000-5000在没有说明硬件环境和操作系统环境,也不考虑线程具体做什么事时,有点瞎蒙的意味。
2. -Xmx 应用运行中,JVM堆空间的极限值。为了不消耗扩大JVM堆控件分配的开销,将此参数和-Xms这个两个值设为相等,考虑到需要开线程,讲此值设置为总内存的80%. 总内存是多少啊?在拥有十多G内存的服务器上依然如此?32位的JVM能访问的内存不过2G多(与操作系统以及JVM实现有关)。
其他的还没写完,下班了,回家补充点。
首先谢谢 凤舞凰扬,此文却为本人原创;此篇和(http://cshbbrain.iteye.com/blog/526356)为姊妹篇。有兴趣可到我的博客去看上篇。上篇本人发表在公司内刊之后,公司的人约我写下篇。由于本人此段时间较忙,匆匆写完,有些细节的地方还不曾仔细推敲。
6 楼
火星来客
2009-12-21
楼主 写道
-XX:+UseParNewGC 可用来设置年轻代为并发收集【多CPU】,如果你的服务器有多个CPU,你可以开启此参数;开启此参数,多个CPU可并发进行垃圾回收,可提高垃圾回收的速度。此参数和+UseParallelGC,-XX:ParallelGCThreads搭配使用。
这个参数的描述不正确。
引用
This flag turns on parallel garbage collection in the young generation. It can be enabled together with the CMS collector in the old generation.
楼主 写道
-Xnoclassgc 每次永久存储区满了后一般GC算法在做扩展分配内存前都会触发一次FULL GC,除非设置了-Xnoclassgc.
这个和fullgc应该也没有关系吧,fullgc是指yong和old都执行的gc,执行fullgc的使用jvm会产生停顿,这个参数只是控制是否开启perm区的gc,原来我发现这个值默认是关闭,但是jdk1.6里这个功能默认是开启了
5 楼
凤舞凰扬
2009-12-21
楼主是转帖的帖子吧。这篇文章基本都对,不过还是存在一些问题的。列出来给大家参考下:
1. -Xss 单个线程堆栈大小值;JDK5.0以后每个线程堆栈大小为1M,以前每个线程堆栈大小为256K。在相同物理内存下,减小这个值能生成更多的线程。但是操作系统对一个进程内的线程数还是有限制的,不能无限生成,经验值在3000~5000左右。
很少有建议去减小这个值,只有在运行的java程序处理及大量低代销的任务线程时(如消息引擎的分发),否则 如果该值过小,它是会容易抛出StackOverFlowException的,实际情况是一般是限制最大值(比如linux系统建议为2M)。另外,线程堆栈的内存需求是独立在heap外的,如果所谓经验值在3000-5000,这种线程处理的内存需求就和文章下面建议heap为80%是相矛盾的。至于3000-5000在没有说明硬件环境和操作系统环境,也不考虑线程具体做什么事时,有点瞎蒙的意味。
2. -Xmx 应用运行中,JVM堆空间的极限值。为了不消耗扩大JVM堆控件分配的开销,将此参数和-Xms这个两个值设为相等,考虑到需要开线程,讲此值设置为总内存的80%. 总内存是多少啊?在拥有十多G内存的服务器上依然如此?32位的JVM能访问的内存不过2G多(与操作系统以及JVM实现有关)。
其他的还没写完,下班了,回家补充点。
1. -Xss 单个线程堆栈大小值;JDK5.0以后每个线程堆栈大小为1M,以前每个线程堆栈大小为256K。在相同物理内存下,减小这个值能生成更多的线程。但是操作系统对一个进程内的线程数还是有限制的,不能无限生成,经验值在3000~5000左右。
很少有建议去减小这个值,只有在运行的java程序处理及大量低代销的任务线程时(如消息引擎的分发),否则 如果该值过小,它是会容易抛出StackOverFlowException的,实际情况是一般是限制最大值(比如linux系统建议为2M)。另外,线程堆栈的内存需求是独立在heap外的,如果所谓经验值在3000-5000,这种线程处理的内存需求就和文章下面建议heap为80%是相矛盾的。至于3000-5000在没有说明硬件环境和操作系统环境,也不考虑线程具体做什么事时,有点瞎蒙的意味。
2. -Xmx 应用运行中,JVM堆空间的极限值。为了不消耗扩大JVM堆控件分配的开销,将此参数和-Xms这个两个值设为相等,考虑到需要开线程,讲此值设置为总内存的80%. 总内存是多少啊?在拥有十多G内存的服务器上依然如此?32位的JVM能访问的内存不过2G多(与操作系统以及JVM实现有关)。
其他的还没写完,下班了,回家补充点。
4 楼
wslfh2008
2009-12-21
正要了解,学习一下
3 楼
CshBBrain
2009-12-20
稍微调整了格式。
2 楼
飞雪无情
2009-12-19
整理一下,这看着太费劲
1 楼
CshBBrain
2009-12-18
发到这个上面格式全没啦,郁闷。
发表评论
-
基于宝贝鱼(CshBBrain)开发聊天类应用 群发消息的问题
2013-01-12 09:30 2365最近有网友 基于宝贝鱼(CshBBrain)开发聊天类应用 遇 ... -
JS字符串函数
2012-12-15 16:03 1308JS自带函数concat将两个或多个字符的文本组合起来,返回一 ... -
开源WebSocket服务器项目 宝贝鱼(CshBBrain)版本V4.0.2 和 V2.0.3发布
2012-12-04 10:23 2026宝贝鱼 CshBBrain V4.0.2 和 CshBB ... -
开源WebSocket服务器项目 宝贝鱼(CshBBrain) 前台js 框架CshBBrainJS V1.0.0发布(有图有真相)
2012-12-04 09:48 2905为了更好的支持开发基于Websocket的应用,开源Web ... -
基于开源WebSocket服务器宝贝鱼(CshBBrain)的应用横空出世
2012-12-04 10:24 2761开源WebSocket服务器 宝贝鱼(CshBBrain) ... -
开源WebSocket服务器项目宝贝鱼CshBBrain发布新版本,修复重大广播消息缺陷
2012-11-13 10:16 2696开源WebSocket服务器项目 ... -
开源WebSocket服务器项目宝贝鱼CshBBrain V4.0.1 和 V2.0.2发布
2012-11-13 09:57 2014开源WebSocket服务器项目宝贝鱼CshBBrain ... -
JAVA AIO扫盲和入门
2012-11-05 13:33 9682开源WebSocket服务器 宝贝鱼(CshBBrain) ... -
国内首款基于AIO(异步IO)支持集群的高性能开源WebSocket服务器 宝贝鱼 CshBBrain V4.0 发布
2012-11-05 11:29 3581国内首款基于AIO的开源WebSocket服务器 宝贝鱼 ... -
开源WebSocket服务器项目CshBBrain 中文名:宝贝鱼
2012-11-03 14:38 1678有人叫我给 开源WebSocket服务器项目CshBBrain ... -
开源WebSocket服务器项目CshBBrain V2.0.1发布
2012-11-02 21:22 1581CshBBrain V2.0.1: ... -
高性能I/O设计模式Reactor和Proactor
2012-10-26 17:41 2322转自:http://hi.baidu.com/qhpgb ... -
Proactor和Reactor模式_继续并发系统设计的扫盲
2012-10-26 17:40 3820转自:http://www.cppblog.com/kevin ... -
reactor和proactor模式的比较
2012-10-26 17:38 1624转自:http://blog.163.com/zongyuan ... -
CshBBrain集群设计与开发计划
2012-10-23 14:19 17801.服务器集群交互使用的协议: 1.1 握手协议,定义 ... -
CshBBrain V2.0.0版发布,添加服务器集群功能,以满足大并发量高容量的分布式系统开发需求
2012-10-23 13:37 1480开源WebSocket服务器CshBBrain V2.0 ... -
欢迎iteye网友peacherdiy 和 文库虫 加入开源Websocket服务器CshBBrain开源项目团队
2012-10-16 15:58 12332012年10月15日开源WebSocket服务器Csh ... -
开源WebSocket服务器项目CshBBrain中NIO Buffer的使用策略
2012-10-15 10:26 2768NIO Buffer带给我们的好处是在进行I/O数据读写时 ... -
Direct Buffer vs. Heap Buffer
2012-10-15 09:33 1660下面的内容有些从网上搜罗的,有些属于自己总结的,总之就是 ... -
开源WebSocket服务器项目CshBBrain客户端超时检查机制剖析
2012-10-14 22:01 1WebSocket要求服务器与客户端之间要保持连接状 ...
相关推荐
Sun JVM原理与内存管理
JVM内存模型深度剖析与优化
主要是JVM内存分配及简单的JVM性能调优
JVM 内存管理之道 JVM垃圾回收机制 JVM GC组合 JVM 内存监控工具
sun公司出版的jvm运行机制管理丛书,需要深入jvm的同学可以下载来看看
jvm优化;
详细介绍了JVM 内存管理相关知识 内存空间( VM运行时数据区域) ◦ 内存结构 ◦ 内存空间 内存分配 内存回收(GC) 内存分析工具
JVM 深入学习教程深入分析JVM教程!jvm 内存原型,优化等等
关于java的内存分配问题,jvm的运行原理相关资料总结
个人整理 jvm相关知识 包括内存分配机制 垃圾回收机制 垃圾收集器相关 及 垃圾收集算法
数据库简单优化、jvm内存数据库简单优化、jvm内存数据库简单优化、jvm内存数据库简单优化、jvm内存
(二)MATJVM 内存分析工具.MAT JVM 内存分析工具.MAT JVM 内存分析工具.(二)MATJVM 内存分析工具.MAT JVM 内存分析工具.MAT JVM 内存分析工具.
对于深入掌握的java的人士,对于内存管理是不得不看的东西
1.jvm内存结构及功能概述 2.Jvm Heap 内存结构 3.Jvm 的内存分配
认识JVM内存优化, 避免最大的误区:认为JVM内存越大越好。看到一个线程 blocked就认为阻塞了。
JVM内存调优,java内存管理总结。包含新生代、老年代等详解。还有垃圾回收收集器详解。
JVM内存管理和垃圾回收 JVM内存管理和垃圾回收 JVM内存管理和垃圾回收
jvm内存反洗工具:
jvm 内存监控
idea插件JVM内存工具JProfiler11,下载完,即可导入idea,可idea快捷打开使用。