AV大片,日韩伦理一区,国产在线a,开心播播网婷婷在线

無錫東方博宜教育培訓(xùn)

[辦公應(yīng)用]
獵學(xué)網(wǎng)訂閱號
獵學(xué)網(wǎng)官方企業(yè)微信
位置: 獵學(xué)網(wǎng) > 學(xué)校機(jī)構(gòu) > 無錫東方博宜教育培訓(xùn) > 學(xué)習(xí)資訊> 學(xué)JAVA軟件開發(fā)技巧-無錫東方博宜

學(xué)JAVA軟件開發(fā)技巧-無錫東方博宜

96 2017-05-03

5個優(yōu)化Java堆的技巧

對于有過Java認(rèn)證經(jīng)歷的人來說,都知道很多性能問題都是由Java堆容量不足和調(diào)優(yōu)引起的,今天無錫東方博宜學(xué)校就和大家一起分享5個Java堆優(yōu)化的技巧:

學(xué)校地址:無錫市興源北路北創(chuàng)無錫市興源北路401號一期5樓550

咨詢 

1、JVM:對難以理解的東西產(chǎn)生恐懼感

千萬不要以為,通過配置,調(diào)優(yōu),就可以排除那些你所不明白的問題。有些人認(rèn)為Java程序員不需要知道內(nèi)部JVM內(nèi)存管理。毫無疑問,這種觀點明顯是錯誤的,如果想拓寬知識面和提升排除故障能力,你就必須要了解和學(xué)習(xí)一下JVM內(nèi)存管理。

對于Java或者是JavaEE新手來說,JavaHeap調(diào)優(yōu)和故障排除是一項非常有挑戰(zhàn)的工作。下面會提供一些典型的案例場景:

客戶端環(huán)境面臨著有規(guī)律的OutOfMemoryError錯誤并且對業(yè)務(wù)造成了很大的影響。

你的開發(fā)團(tuán)隊要在如此大的壓力下去解決這個問題,通常會怎么做?

1)用谷歌搜索引擎找到類似的問題并且你會相信(或假設(shè))你也面臨同樣的問題。

2)你會抓住JVM-Xms和存在OutOfMemoryError異常這幾個關(guān)鍵字的例子,然后希望通過這樣的案例來快速解決客戶端問題。

3)最后你會在你環(huán)境中使用相同的調(diào)優(yōu)方法。兩天后,問題仍然發(fā)生(甚至更糟或者稍微好點)……

到底是哪里錯了呢?

首先,沒有摸清問題根源所在?對開發(fā)環(huán)境沒有正確地進(jìn)行深層面(規(guī)格、負(fù)載情況等)理解。網(wǎng)絡(luò)搜索是一個非常優(yōu)秀的學(xué)習(xí)方法和知識分享工具,但是你必須結(jié)合自己的實際項目,從根本上進(jìn)行分析解決。

可能缺乏基本的JVM和JVM內(nèi)存管理技能,阻止你把所有的點給連接起來。

今天講的第一條技巧是幫助你理解基本的JVM原則及其與眾不同的內(nèi)存空間。這些知識都是相當(dāng)重要的,它可以幫助你做出有效的調(diào)優(yōu)策略、更加正確合理的預(yù)測將來會產(chǎn)生的影響、提前知道未來需要做哪些調(diào)優(yōu)工作。下面來看一下JVM參考指南:

JVM內(nèi)存分為3個內(nèi)存空間

●JavaHeap:適用于所有的JVM廠商,通常用來拆分YoungGen(幼苗)和OldGen(終身享用)空間。

●PermGen(永久代):適用于SunHotSpotVM((PermGen空間在Java7或者Java8更新中將會被刪除)

●NativeHeap(C-Heap):適用于所有的JVM廠商。

正如你所看到的,JVM內(nèi)存管理比使用Xmx設(shè)置最大值更為復(fù)雜。你需要查看每個角度,包括本地和PermGen需求以及從主機(jī)上查看物理內(nèi)存可用性(CPUcore)。

在較大的JavaHeap和較小的本地Heap比賽中,32位虛擬機(jī)可能會變得相當(dāng)棘手。試圖在一個32位VM如2.5GB+上設(shè)置一個大型堆,根據(jù)應(yīng)用程序占用和線程數(shù)量等因素會增加OutOfMemoryError這個異常拋出。64位JVM可以解決這個問題,但物理資源可用性和垃圾回收成本仍然是有限制的(成本主要集中在GC大小收集上)。最大并不表示是最好的,所以請不要假設(shè)在一個16GB的64位虛擬機(jī)上可以運行20個JavaEE應(yīng)用程序。

2、數(shù)據(jù)和應(yīng)用程序為王:回顧靜態(tài)占用需求

應(yīng)用程序以及相關(guān)數(shù)據(jù)將決定Java堆空間占用需求。通過靜態(tài)內(nèi)存,可"預(yù)測"下面的內(nèi)存需求:

●確定將會有多少不同的應(yīng)用程序部署到預(yù)先計劃的一個單獨的JVM進(jìn)程上,例如有多少個ear文件、war文件、jar文件等。在一個JVM上部署的應(yīng)用程序越多,對本機(jī)堆的需求就越多。

●確定有多少個類需要在運行時加載:包括第三方API.越多的類加載器和類在運行時被加載,在HotSpotVMPermGen空間和內(nèi)部JIT相關(guān)優(yōu)化對象上的需求就越高。

●確定數(shù)據(jù)緩存占用,如應(yīng)用程序加載內(nèi)部緩存數(shù)據(jù)結(jié)構(gòu)(和第三方API),例如數(shù)據(jù)庫中的數(shù)據(jù)緩存,從文件中讀取數(shù)據(jù)等。數(shù)據(jù)緩存使用越多,JavaHeapOldGen空間需求就越高。

●確定允許建立的中間件線程數(shù)量。這是非常重要的,因為Java線程需要足夠的本機(jī)內(nèi)存,否則會拋OutOfMemoryError異常。

溫馨提示: 專業(yè)老師1對1為您解答    馬上填寫,¥1000 元豪禮免費領(lǐng)!

掃一掃
獲取更多福利

×
獵學(xué)網(wǎng)
日木无码| 久久综合九色综合欧美| 丁香五月婷婷国产剧情| 亚洲综合伊人久久综合| 日本亚洲色图欧美在线| 亚洲AV无码成人精品区一区| 成人性爰影视| 人人澡人人澡人人澡澡| 亚洲无码大全网站| 无码少妇一区二区三区免费| 妓片a免费| 国产精品视频一区二区三区| 久久 国产 欧美| 中文字幕乱码无码人妻系列| 你懂的246jb| 日本在线不卡| 大尺度污视频观看| 牲欧美| 欧美,日韩,中文| 超碰性愛| 亚洲无码久久免费电影| 日韩毛片在线播放| 一级毛a视屏| 黄色国产A久久| 日韩国产欧美性爱| 在线四虎www| 欧美久久久久久久久| 激情熟女视频| 在线视频精品| 婷婷色姑娘色图| 亚洲综合视频在线| 欧美潮喷xxxxx| 国内精品久久久久久久久电影网| 国产在线 欧美色图| 亚洲人成网站在线播放小说| 日韩性爱A级毛片网| 亚洲av色噜噜男人的天堂| 日日射日日肏| 邻居少妇张开双腿让我爽一夜| 性感丝袜美女亚洲二区| 彭州市|