14.VisualVM使用详解、15.VisualVM堆查看器使用的内存不足、19.class文件--文件结构--魔数、20.文件结构--常量池、21.文件结构访问标志(2个字节)、22.类加载机制概
14.VisualVM使用詳解
15.VisualVM堆查看器使用的內(nèi)存不足
16.性能調(diào)優(yōu)概述
17.性能調(diào)優(yōu)–案例1
18.性能調(diào)優(yōu)—案例三
19.class文件–文件結(jié)構(gòu)–魔數(shù)
20.文件結(jié)構(gòu)–常量池
21.文件結(jié)構(gòu)訪問(wèn)標(biāo)志(2個(gè)字節(jié))
22.類(lèi)加載機(jī)制概述
23.類(lèi)加載過(guò)程
14.VisualVM使用詳解
15.VisualVM堆查看器使用的內(nèi)存不足
在使用visualvm分析大的dump文件時(shí),常會(huì)遇到堆查看器使用的內(nèi)存不足。
解決辦法:
修改:JAVA_HOME/lib/visualvm/etc/visualvm.conf文件中visualvm_default_options="-J-client -J-Xms24 -J-Xmx256m",把256改為1024,然后重啟jvisualVM即可
16.性能調(diào)優(yōu)概述
17.性能調(diào)優(yōu)–案例1
經(jīng)常發(fā)現(xiàn)Full GC,并且每次發(fā)生Full GC的時(shí)間相當(dāng)長(zhǎng)
為什么會(huì)發(fā)生這么長(zhǎng)的Full GC呢?
思路:
對(duì)象優(yōu)先放到Eden
大對(duì)象和長(zhǎng)時(shí)間存活的會(huì)到老年到
當(dāng)老年代不夠用的時(shí)候會(huì)觸發(fā)Full GC
當(dāng)對(duì)內(nèi)存很大的時(shí)候,老年代很大,所以需要長(zhǎng)時(shí)間Full GC
經(jīng)驗(yàn):使用單集的tomcat集群。對(duì)內(nèi)存減少。
18.性能調(diào)優(yōu)—案例三
智能家居項(xiàng)目:
問(wèn)題:jvm崩潰
原因:Connect Reset問(wèn)題。
原因:大量任務(wù)來(lái)了之后,處理不好。
解決辦法:
總結(jié):在處理不對(duì)等數(shù)據(jù)的時(shí)候,加上一個(gè)消息隊(duì)列。
19.class文件–文件結(jié)構(gòu)–魔數(shù)
比如上面的34表示52,即下面的JDK1.8
20.文件結(jié)構(gòu)–常量池
tag : 常量池類(lèi)型,18種
21.文件結(jié)構(gòu)訪問(wèn)標(biāo)志(2個(gè)字節(jié))
javap的用途百度查一下
22.類(lèi)加載機(jī)制概述
懶加載機(jī)制。(即:用的時(shí)候才加載。第一次用的時(shí)候要等待一下才可以加載)
Java中的加載其實(shí)就是懶加載策略。
Hotspot就是懶加載方式。
23.類(lèi)加載過(guò)程
Java類(lèi)的聲明周期
連接:當(dāng)類(lèi)在加載過(guò)程
案例(通過(guò)子類(lèi)引用父類(lèi)的靜態(tài)字段):
這是可以看到只會(huì)加載父類(lèi)。子類(lèi)并沒(méi)有被初始化。
案例2(通過(guò)數(shù)組類(lèi)引用類(lèi)不會(huì)被加載)
案例3(調(diào)用類(lèi)的常量):
結(jié)果只有20
總結(jié)
以上是生活随笔為你收集整理的14.VisualVM使用详解、15.VisualVM堆查看器使用的内存不足、19.class文件--文件结构--魔数、20.文件结构--常量池、21.文件结构访问标志(2个字节)、22.类加载机制概的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 校园安全的日常监督和视察需要做到哪些方面
- 下一篇: 部队骗子用薪起程吗