1. gzyueqian
      13352868059

      Java培訓(xùn):Java中垃圾收集的最佳做法

      更新時(shí)間: 2022-11-02 12:01:32來(lái)源: 粵嵌教育瀏覽量:8485

        垃圾收集使Java內(nèi)存變得高效,因?yàn)樗鼜亩褍?nèi)存中移除未引用的對(duì)象,并為新對(duì)象騰出空間。那么在垃圾收集的過(guò)程中,我們應(yīng)該怎么做才能更系統(tǒng)更高效的運(yùn)行呢?想學(xué)習(xí)Java中垃圾收集的技巧和方法,不妨報(bào)名參加java培訓(xùn),在專(zhuān)業(yè)老師和系統(tǒng)課程的指導(dǎo)教學(xué)下,可以快速提升自己。

        避免手動(dòng)觸發(fā)

        除了垃圾收集的基本機(jī)制之外,要了解Java中垃圾收集的最重要的一點(diǎn)是它是不確定性的。這意味著無(wú)法預(yù)測(cè)垃圾收集在運(yùn)行時(shí)何時(shí)發(fā)生。

        可以在代碼中包含一個(gè)提示,用System.gc()或者Runtime.gc()方法,但它們不能保證垃圾收集器實(shí)際運(yùn)行。

        使用工具進(jìn)行分析

        如果你沒(méi)有足夠的內(nèi)存來(lái)運(yùn)行你的應(yīng)用程序,你將會(huì)遇到速度變慢、長(zhǎng)時(shí)間的垃圾收集、“stop the world”事件,并最終出現(xiàn)內(nèi)存不足的錯(cuò)誤。這可能表明你的堆太小,但也可能意味著你的應(yīng)用程序中存在內(nèi)存泄漏。

        你可以從監(jiān)控工具中獲得幫助,如jstat或者Java飛行記錄器查看堆使用量是否無(wú)限增長(zhǎng),這可能表明你的代碼中存在錯(cuò)誤。如果你也對(duì)垃圾回收感興趣,不妨報(bào)個(gè)java培訓(xùn)班,有專(zhuān)業(yè)講師面授指導(dǎo)教學(xué),還有更加系統(tǒng)全面的課程,讓學(xué)習(xí)更科學(xué),更有效。

        默認(rèn)設(shè)置是好的

        如果你正在運(yùn)行一個(gè)小型的獨(dú)立Java應(yīng)用程序,你很可能不需要任何類(lèi)型的垃圾收集調(diào)優(yōu)。默認(rèn)設(shè)置應(yīng)該就可以了。

        使用JVM標(biāo)志進(jìn)行調(diào)優(yōu)

        調(diào)優(yōu)Java垃圾收集的最佳方法是在JVM上設(shè)置標(biāo)志。標(biāo)志可以調(diào)整要使用的垃圾收集器(例如串行、G1等等)、堆的初始和最大大小、堆段的大小(例如年輕代、老代)等等。

        選擇正確的收集器

        被調(diào)優(yōu)的應(yīng)用程序的性質(zhì)是設(shè)置的良好初始指南。例如,并行垃圾收集器是高效的,但會(huì)頻繁地導(dǎo)致“停止世界”事件,這使它更適合后端處理,在后端處理中,長(zhǎng)時(shí)間的垃圾收集暫停是可以接受的。

        另一方面,CMS垃圾收集器旨在最大限度地減少暫停,使其成為基于web的應(yīng)用程序的理想選擇,在這些應(yīng)用程序中,響應(yīng)性是非常重要的。在java培訓(xùn)學(xué)習(xí)中,既有理論知識(shí)課程,又有實(shí)訓(xùn)項(xiàng)目操作課程,讓你學(xué)以致用,真正掌握有用的技能。

        

        如何選擇正確的垃圾收集器

        如果你的應(yīng)用程序沒(méi)有嚴(yán)格的暫停時(shí)間要求,你應(yīng)該運(yùn)行你的應(yīng)用程序并允許JVM選擇正確的收集器。

        大多數(shù)時(shí)候,默認(rèn)設(shè)置應(yīng)該就可以了。如有必要,你可以調(diào)整堆大小以提高性能。如果性能仍然不能滿(mǎn)足你的目標(biāo),你可以根據(jù)你的應(yīng)用要求修改收集器:

        l 串行—如果應(yīng)用程序具有較小的數(shù)據(jù)集(最多約100 MB)和/或?qū)⒃跓o(wú)暫停時(shí)間要求的單個(gè)處理器上運(yùn)行

        l 并行—如果應(yīng)用程序性能達(dá)到峰值,并且沒(méi)有暫停時(shí)間要求或暫停一秒或更長(zhǎng)時(shí)間是可以接受的

        l CMS/G1—如果響應(yīng)時(shí)間比總吞吐量更重要,垃圾收集暫停時(shí)間必須保持在大約1秒以?xún)?nèi)

        l ZGC—如果響應(yīng)時(shí)間是高優(yōu)先級(jí)的,和/或你使用的是非常大的堆

        結(jié)論

        對(duì)于許多簡(jiǎn)單的應(yīng)用程序來(lái)說(shuō),Java垃圾收集不是程序員需要有意識(shí)地考慮的事情。然而,對(duì)于想要提高Java技能的程序員來(lái)說(shuō),參加java培訓(xùn)理解Java垃圾收集是如何工作的非常重要。

      免費(fèi)預(yù)約試聽(tīng)課

      亚洲另类欧美综合久久图片区_亚洲中文字幕日产无码2020_欧美日本一区二区三区桃色视频_亚洲AⅤ天堂一区二区三区

      
      

      1. 色综合一区二区在线观看 | 亚洲Av片久久综合网 | 亚洲第一情网站久久网 | 亚洲日韩精品一区二区 | 亚洲v欧美v日韩ⅴ国产v | 精品在线视频一区 |