Java基础与开源框架
cui_gurong
这个作者很懒,什么都没留下…
展开
-
内存交换区大小很重要
在sun的内存模型中,一般会有这么几个区:eden区满了之后,会触发一次Young GC,Young GC会将eden区,S0(或S1)释放不掉的对象,放入另外一个空闲的交换区S1(或S0)。即触发一次S0与S1的交换。如果一次Young GC后空闲的交换区不足以放下全部的活的对象,剩余的会被直接丢进old区,所以关注每次Young GC后old区内存的增长,以及交换区的使用率至关重要。交换区设置的过小,或者虚拟机动态调整导致交换区长时间过小,都会造成old 区内存的持续增长,直至频繁的Full GC。su原创 2010-07-15 09:50:00 · 2147 阅读 · 0 评论 -
内存分析
(1)查看目前虚拟机内各个区的内存占用情况,可以使用如下的命令/opt/jdk/java/bin/jstat -gcutil -h3 $JAVA_PID 250 60 具体打印出的各个参数的意义可以google一下。 (2)查看某一天完整的内存随时间的变化情况,最好的办法是在jvm启动时里加上下面几个参数:-verbose:gc -Xloggc:/home/admin/lo原创 2010-05-29 11:10:00 · 276 阅读 · 0 评论 -
finalizer类
最近项目内存比较紧张,dump内存分析时发现java.lang.ref.finalizer类比较多,finalizer类可能有人没听说过,但是finalize方法估计搞java的就没几个人不知道了,对,正如你所估计的,finalizer的作用就是虚拟机用来存储重写了finalize方法的实例。 finalizer内部实现是一个带有next和prev指针的链表,本身还维护了一个Re原创 2010-05-29 10:58:00 · 688 阅读 · 0 评论 -
hadoop安装
首先介绍单机模式的搭建过程:(1)下载hadoop 0.19.1版本,并解压缩到 /home/admin/hadoop目录下,修改报名为hadoop[root@localhost admin]# wget http://archive.apache.org/dist/hadoop/core/hadoop-0.19.1/hadoop-0.19.1.tar.gz[root@localhos原创 2010-05-29 11:15:00 · 524 阅读 · 0 评论 -
dirty list机制分析
对文件一边读一边写的应该场景中,我们一般采用dirty list来提高写的速度,dirty list在一些数据库的设计实现里(oracle),是作为Least Recently Used Write(LRUW)来使用的,即将用户新写入的值临时保存在内存中,提交时将dirty list中的数据一次性写入文件或db中。内存中的dirty list在未写入文件或db时,对于用户的读取操作也是可见原创 2010-05-29 11:04:00 · 873 阅读 · 0 评论 -
定位应用的CPU杀手
如果一段代码写的比较差,如多次无谓的循环,或者由于bug产生了死循环,我们可以借助linux和java的命令把它揪出来,许多应用如果经常按照下面的 方法定期进行自检,对于提高系统的处理能力大有好处。 第1步:查看目前cpu时间占用较高的线程: 首先根据top -H命令查看当前的线程信息(注意,不是进程),然后按大写的 O 键,可以选择你期望的排序字段。如可以按照cpu原创 2010-05-29 11:07:00 · 471 阅读 · 0 评论