??xml version="1.0" encoding="utf-8" standalone="yes"?>精品视频在线免费看,在线观看精品自拍私拍,中文字幕精品一区http://www.aygfsteel.com/yuyee/category/46758.htmlzh-cnMon, 13 Dec 2010 23:36:42 GMTMon, 13 Dec 2010 23:36:42 GMT60JAVA GChttp://www.aygfsteel.com/yuyee/archive/2010/10/26/336136.htmlMon, 25 Oct 2010 16:56:00 GMThttp://www.aygfsteel.com/yuyee/archive/2010/10/26/336136.html比如当很多时对象时Q复制算法比较好Q因为周期短Q复制的可以点Q如果许多长寿对象,反复复制׃乐观了,q个时候标?整理比较好?/div>
目前SUN JAVA的GC用的是分代垃圑֛收?/div>
分ؓq轻代,老年代,持久?/div>
q轻代存攄命周期很短的对象Q这部分对象在GC的时候,很多已经是非zd对象Q因此采用复制算法,只需要将量的存货对象copy到to spaceQ存货越,效率高?/div>
q轻代的GC叫minor gcQ经q多ơ复Ӟ依旧存活的对象将Udq轻代,Udq老代?/div>
q轻代分为:
eden:每当对象创徏的时候,L被分配到q个区域
survivor1:复制法中的from space
survivor2:复制法中的to space
q老代Q?/div>
生命周期长,l过多次minor gc,依旧存活的对?/div>
老年代的GC 叫major gc,通常也叫full gc
采用标记-整理法。老年区域比较大,需要时间长
minor gc可能引发full gc。当eden+from spaceI间大于老年代剩余空间时Q就会fucc gc,悲观法
持久代:存放class信息和方法信息的地方Q可通过-XX:MaxPermSize来调整最大?/div>
-XX:NewRatio来设|年M与年老代比?/div>
-XX:SurvivorRatio讄eden与survivor区的比?/div>
-XX:MaxTenuringThreshold讄垃圾的年龄,如果=0Q则表示不经qsurvivor区,直接q入q老代
-XXQParallelGCThreads配置q行攉的线E数Q最好与CPU数相?/div>
-XX:+UseParallelGC 选择使用q行攉?/div>

2010-10-26 00:56 发表评论
]]>JVM内存l构记http://www.aygfsteel.com/yuyee/archive/2010/10/25/336128.htmlMon, 25 Oct 2010 14:48:00 GMThttp://www.aygfsteel.com/yuyee/archive/2010/10/25/336128.html    JVM内存l构主要包括两个子系l和两个lg?/span>
两个子系l分别是Classloader子系l和Executionengine(执行引擎)子系l;两个lg分别是Runtimedataarea(q行时数据区?lg和Nativeinterface(本地接口)lg?/span>
Classloader子系l?装蝲class信息到运行时数据?/span>
Executionengine(执行引擎)子系l:执行Class的地?/span>
Runtimedataarea(q行时数据区?lg:l常说的JVM内存Q分?个区?/span>
Q?Qheap(?Q存放new 出来的对象和数组Q由GC理内存Q每个JVM实例一个堆
Q?Qjavastack(?:每个U程一个javastackQ只有压栈和出栈2个动作,以桢为单?/span>
(3)methodarea(Ҏ?Q每个JVM实例一个,存储cM息,静态的变量
(4)ProgramCounterQ每个线E都有一个PC寄存器,记录U程执行的下个地址
(5)nativemethodstackQ保存本地方法进d域的地址
q里heap?/span>methodarea是所有线E共享,而其?个则是以U程为粒度隔ȝ?/span>
Nativeinterface(本地接口)lgQ与本地lib交互Q是与其他语a交互的接口,当调用nativeҎӞ不受JVM限制Q可能会?/span>nativeheapOutOfMemory
栈是JVM的内存指令区QJAVA基本cdQJAVA指o代码Q常量都保存在stack中,存取速度快,数据可以׃nQ缺Ҏ栈中的数据大和生命周期是确定的Q不灉|
堆是JVM的内存数据区Q对象实例包括他的属性都作ؓ数据存储在heap中,对象实例在heap中分配好后,需要在stack中保?个字节的heap内存地址Q用来定位该对象在heap的位|,扑ֈ该实例,可以动态的分配内存大小Q生存期不需要告诉编译器Q但是存取慢?/div>
例子Q对象的Ҏ和属性保存在哪里Q?/div>
Ҏ信息在方法区中,属性在heap?/div>
另外Q对象的静态属性在ҎZ?/div>
非静态方法和静态方法:
实例Ҏ有一个隐含的传入参数Q该参数是this,也就是当前对象实例在stack中的地址指针Q因用非静态方法时Q都要先new出来?/div>
静态方法无此隐含参敎ͼ不需要new 对象Q只要class文g被ClassLoader加蝲到JVM的stack中,静态方法就能被调用Q当Ӟ静态方法取不到heap中的对象属性,因ؓq没对象呢。。?/div>



2010-10-25 22:48 发表评论
]]>JMM记http://www.aygfsteel.com/yuyee/archive/2010/10/25/336090.htmlMon, 25 Oct 2010 07:04:00 GMThttp://www.aygfsteel.com/yuyee/archive/2010/10/25/336090.htmlJVMpȝ中都有个一dQJAVA中所有变量都是存储在d中,Ҏ有线E都是共享的?/div>
而每条线E都有自q工作内存Q工作内存中保存的是d中某些变量的|U程Ҏ有变量的修改都是在工作内存中q行Q线E之间无法直接互相访问,变量的传递都是通过d完成?/div>
可见性:JMM中ƈ发线E修改变量,必须工作内存中的变量同步到d后,其他U程才能讉K?/div>
有箋性:通过JAVA提供的同步机制或者volatile关键?来保证内存的有序?/div>
JAVA中保证多核系lJMM~存一致性原则:happens-before ordering(先行发生排序Q?/span>
JAVA提供?/span>
1.synchronized关键?/span>
2.volatile关键?/span>
3.final关键?/span>
4.同步包中的locks
5.同步包中的原子类


2010-10-25 15:04 发表评论
]]>一些JDK自带的分析工?/title><link>http://www.aygfsteel.com/yuyee/archive/2010/09/26/332925.html</link><dc:creator>羊</dc:creator><author>羊</author><pubDate>Sun, 26 Sep 2010 03:29:00 GMT</pubDate><guid>http://www.aygfsteel.com/yuyee/archive/2010/09/26/332925.html</guid><description><![CDATA[<span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; ">jps:查看JAVAU程ID</span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; "> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; "><br /> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; ">jinof:</span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; "> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; "><br /> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; ">jinfo -flag MaxPermSize <PID></span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; ">  查看VM参数信息</span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; "><br /> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; ">jstat;</span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; "> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; "><br /> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; ">jstat -opt <PID> 一般常?gcutil查看垃圾攉信息Q后面还可加一个间隔时?/span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; "> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; "><br /> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; ">jmap:</span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; "> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; "><br /> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; ">dump的生成工P生成堆{储文件后可用MAT分析 jmap -dump:format=b,file=XX <pid></span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; "> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; "><br /> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; ">也可用jmap -histo <PID>信息输出到控制?/span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; "> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; "><br /> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; ">jconsole:</span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; "> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; "><br /> </span><span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; ">jconsol是jdk自带的一个内存分析工P它提供了囑Ş界面。可以查看到被监控的jvm的内存信息,U程信息Q类加蝲信息QMBean信息</span> <div>jdk1.6提供了java visualVMQ功能很全,cMJprofiler</div> <div> <div>-XX:+HeapDumpOnOutOfMemoryError:q个参数指定在OOM时生DUMP</div> <div>-XX:HeapDumpPath q个是要保存?dump文g的\径,后缀?hprof</div> </div> <div>例子Q?XX:HeapDumpPath=C:\Documents and Settings\aoxianglin\Application Data\.visualvm\6u18\var\log\heapdump.hprof</div> <img src ="http://www.aygfsteel.com/yuyee/aggbug/332925.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/yuyee/" target="_blank">羊</a> 2010-09-26 11:29 <a href="http://www.aygfsteel.com/yuyee/archive/2010/09/26/332925.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <a href="http://www.aygfsteel.com/" title="狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频">狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频</a> </div> </footer> վ֩ģ壺 <a href="http://" target="_blank">DZ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">Ϫ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ɽ</a>| <a href="http://" target="_blank">ƽ˳</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ӻ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ϲ</a>| <a href="http://" target="_blank">Ҷ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ݳ</a>| <a href="http://" target="_blank">ʯ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ͷ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ƽ</a>| <a href="http://" target="_blank">ʯׯ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">IJ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ˮ</a>| <a href="http://" target="_blank">麣</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">Ͼ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ͭϿ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">۶</a>| <a href="http://" target="_blank">ɫ</a>| <a href="http://" target="_blank">ͨμ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">Ȫ</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>