国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種Java實(shí)例池優(yōu)化方法、設(shè)備及介質(zhì)與流程

      文檔序號(hào):40389587發(fā)布日期:2024-12-20 12:12閱讀:8來(lái)源:國(guó)知局
      一種Java實(shí)例池優(yōu)化方法、設(shè)備及介質(zhì)與流程

      本技術(shù)涉及java,尤其涉及一種java實(shí)例池優(yōu)化方法、設(shè)備及介質(zhì)。


      背景技術(shù):

      1、在當(dāng)今復(fù)雜多變的軟件開發(fā)環(huán)境中,高并發(fā)系統(tǒng)已成為支撐互聯(lián)網(wǎng)服務(wù)、大數(shù)據(jù)處理、云計(jì)算平臺(tái)等核心應(yīng)用不可或缺的基礎(chǔ)設(shè)施。這類系統(tǒng)往往需要處理數(shù)以百萬(wàn)計(jì)甚至更高量級(jí)的并發(fā)請(qǐng)求,對(duì)資源的管理與利用效率提出了極高的要求。在java這一廣泛應(yīng)用的服務(wù)器端編程語(yǔ)言中,實(shí)例池作為一種資源復(fù)用技術(shù),旨在減少對(duì)象創(chuàng)建與銷毀的開銷,提高系統(tǒng)性能。然而,隨著系統(tǒng)規(guī)模的擴(kuò)大和并發(fā)量的激增,傳統(tǒng)java實(shí)例池的運(yùn)作機(jī)制逐漸暴露出其在高并發(fā)環(huán)境下的局限性,成為影響系統(tǒng)整體性能的關(guān)鍵因素之一。

      2、隨著實(shí)例的不斷創(chuàng)建與銷毀,尤其是在頻繁使用小型對(duì)象時(shí),java堆內(nèi)存逐漸碎片化,不僅降低了內(nèi)存的利用率,還可能迫使jvm(java?virtual?machine,java虛擬機(jī))更早地觸發(fā)gc(garbage?collection,垃圾回收)。高并發(fā)下,大量對(duì)象的快速創(chuàng)建與銷毀直接加劇了垃圾回收的負(fù)擔(dān),在極端情況下,頻繁的gc容易導(dǎo)致系統(tǒng)停頓,對(duì)實(shí)時(shí)性要求高的應(yīng)用造成嚴(yán)重影響。


      技術(shù)實(shí)現(xiàn)思路

      1、本技術(shù)實(shí)施例提供了一種java實(shí)例池優(yōu)化方法、設(shè)備及介質(zhì),用于解決如下技術(shù)問(wèn)題:高并發(fā)下,大量對(duì)象的快速創(chuàng)建與銷毀直接加劇了垃圾回收的負(fù)擔(dān),在極端情況下,頻繁的gc容易導(dǎo)致系統(tǒng)停頓,對(duì)實(shí)時(shí)性要求高的應(yīng)用造成嚴(yán)重影響。

      2、本技術(shù)實(shí)施例采用下述技術(shù)方案:

      3、本技術(shù)實(shí)施例提供一種java實(shí)例池優(yōu)化方法,包括,根據(jù)java實(shí)例類型,將java實(shí)例池劃分為多個(gè)區(qū)塊;其中,多個(gè)區(qū)塊分別設(shè)置唯一標(biāo)識(shí),唯一標(biāo)識(shí)用于對(duì)多個(gè)區(qū)塊進(jìn)行多線程訪問(wèn);確定出多個(gè)區(qū)塊內(nèi)的java實(shí)例分別對(duì)應(yīng)的使用頻率與生命周期,基于使用頻率與生命周期,將各區(qū)塊內(nèi)的java實(shí)例分別劃分為長(zhǎng)期java實(shí)例集合與短期java實(shí)例集合。獲取多個(gè)區(qū)塊分別對(duì)應(yīng)的資源使用率,基于資源使用率確定出回收時(shí)長(zhǎng)?;诨厥諘r(shí)長(zhǎng),對(duì)多個(gè)區(qū)塊內(nèi)分別對(duì)應(yīng)的長(zhǎng)期java實(shí)例集合與短期java實(shí)例集合中的待回收java實(shí)例進(jìn)行回收,以完成java實(shí)例池優(yōu)化。

      4、本技術(shù)實(shí)施例通過(guò)區(qū)塊劃分,限制每個(gè)區(qū)塊內(nèi)的實(shí)例數(shù)量,減少鎖的競(jìng)爭(zhēng),提高多線程并發(fā)訪問(wèn)的效率,通過(guò)使用頻率和生命周期確定出哪些實(shí)例被頻繁創(chuàng)建和銷毀,哪些實(shí)例可以長(zhǎng)時(shí)間駐留,從而優(yōu)化內(nèi)存分配策略。其次,本技術(shù)實(shí)施例通過(guò)將長(zhǎng)期和短期實(shí)例分開管理,減少垃圾回收器的掃描范圍,降低垃圾回收的頻繁度和停頓時(shí)間。根據(jù)資源使用率動(dòng)態(tài)調(diào)整回收時(shí)長(zhǎng),在保證應(yīng)用性能的同時(shí),最大化資源利用率。

      5、在本技術(shù)的一種實(shí)現(xiàn)方式中,根據(jù)java實(shí)例類型,將java實(shí)例池劃分為多個(gè)區(qū)塊,具體包括:基于java實(shí)例池中的多個(gè)java實(shí)例,構(gòu)建劃分隊(duì)列;獲取待劃分java實(shí)例對(duì)應(yīng)的元數(shù)據(jù)字段,基于元數(shù)據(jù)字段確定出待劃分java實(shí)例對(duì)應(yīng)的類型;基于劃分隊(duì)列順序,將類型相同的待劃分java實(shí)例劃分至同一區(qū)塊;獲取多個(gè)區(qū)塊分別對(duì)應(yīng)的java實(shí)例活躍度,基于java實(shí)例活躍度對(duì)多個(gè)區(qū)塊進(jìn)行動(dòng)態(tài)調(diào)整;其中,java實(shí)例活躍度至少包括內(nèi)存占用率、java實(shí)例創(chuàng)建速率以及java實(shí)例銷毀速率中的一項(xiàng)。

      6、在本技術(shù)的一種實(shí)現(xiàn)方式中,獲取多個(gè)區(qū)塊分別對(duì)應(yīng)的java實(shí)例活躍度,基于java實(shí)例活躍度對(duì)多個(gè)區(qū)塊進(jìn)行動(dòng)態(tài)調(diào)整,具體包括:在預(yù)設(shè)時(shí)間段內(nèi),獲取多個(gè)區(qū)塊分別對(duì)應(yīng)的java實(shí)例創(chuàng)建率與java實(shí)例銷毀率;將java實(shí)例創(chuàng)建率與java實(shí)例銷毀率進(jìn)行比對(duì),確定出多個(gè)區(qū)塊分別對(duì)應(yīng)的java實(shí)例活躍率;基于多個(gè)區(qū)塊分別對(duì)應(yīng)的java實(shí)例活躍率與多個(gè)區(qū)塊分別對(duì)應(yīng)的內(nèi)存占用率,得到多個(gè)區(qū)塊分別對(duì)應(yīng)的區(qū)塊調(diào)整動(dòng)態(tài)值,以對(duì)多個(gè)區(qū)塊進(jìn)行動(dòng)態(tài)調(diào)整。

      7、在本技術(shù)的一種實(shí)現(xiàn)方式中,基于使用頻率與生命周期,將各區(qū)塊內(nèi)的java實(shí)例分別劃分為長(zhǎng)期java實(shí)例集合與短期java實(shí)例集合,具體包括:獲取各區(qū)塊內(nèi)的java實(shí)例分別對(duì)應(yīng)的使用頻率,將使用頻率與預(yù)置頻率閾值進(jìn)行比對(duì),基于比對(duì)結(jié)果,將各區(qū)塊內(nèi)的java實(shí)例劃分為第一實(shí)例集合與第二實(shí)例集合;獲取各區(qū)塊內(nèi)的java實(shí)例分別對(duì)應(yīng)的生命周期,將生命周期與預(yù)置周期閾值進(jìn)行比對(duì),基于比對(duì)結(jié)果,將各區(qū)塊內(nèi)的java實(shí)例劃分為第三實(shí)例與第四實(shí)例集合;基于第一實(shí)例集合、第二實(shí)例集合、第三實(shí)例集合以及第四實(shí)例集合之間的交集,將各區(qū)塊內(nèi)的java實(shí)例分別劃分為長(zhǎng)期java實(shí)例集合與短期java實(shí)例集合。

      8、在本技術(shù)的一種實(shí)現(xiàn)方式中,基于第一實(shí)例集合、第二實(shí)例集合、第三實(shí)例集合以及第四實(shí)例集合之間的交集,將各區(qū)塊內(nèi)的java實(shí)例分別劃分為長(zhǎng)期java實(shí)例集合與短期java實(shí)例集合,具體包括:將第一實(shí)例集合與第三實(shí)例集合進(jìn)行交集處理,并將交集處理結(jié)果作為長(zhǎng)期java實(shí)例集合;以及將第一實(shí)例集合與第四實(shí)例集合進(jìn)行交集處理,并將交集處理結(jié)果作為短期java實(shí)例集合;以及將第二實(shí)例集合與第三實(shí)例集合進(jìn)行交集處理,并將交集處理結(jié)果作為長(zhǎng)期java實(shí)例集合;以及將于第二實(shí)例集合與第四實(shí)例集合進(jìn)行交集處理,并將交集處理結(jié)果作為短期java實(shí)例集合。

      9、在本技術(shù)的一種實(shí)現(xiàn)方式中,獲取多個(gè)區(qū)塊分別對(duì)應(yīng)的資源使用率,基于資源使用率確定出回收時(shí)長(zhǎng),具體包括:基于預(yù)置間隔時(shí)間段,獲取多個(gè)區(qū)塊分別對(duì)應(yīng)的區(qū)塊總內(nèi)存與各區(qū)塊分別對(duì)應(yīng)的已占用內(nèi)存;基于各區(qū)塊對(duì)應(yīng)的已占用內(nèi)存與區(qū)塊總內(nèi)存之間的比值,得到各區(qū)塊分別對(duì)應(yīng)的資源使用率;將資源使用率與預(yù)置資源閾值進(jìn)行比對(duì),得到第一差值;以及將相鄰兩個(gè)間隔時(shí)間段對(duì)應(yīng)的資源使用率進(jìn)行差值計(jì)算,得到第二差值;基于第一差值與第二差值確定出回收時(shí)長(zhǎng)。

      10、在本技術(shù)的一種實(shí)現(xiàn)方式中,基于第一差值與第二差值確定出回收時(shí)長(zhǎng),具體包括:將第一差值與第一預(yù)置權(quán)重分配表進(jìn)行比對(duì),確定出第一差值對(duì)應(yīng)的第一權(quán)重值;基于連續(xù)間隔時(shí)間段分別對(duì)應(yīng)的第二差值,構(gòu)建差值表,以通過(guò)差值表確定出使用率變化情況;將使用率變化情況與第二預(yù)置權(quán)重分配表進(jìn)行比對(duì),確定出各間隔時(shí)間段分別對(duì)應(yīng)的第二權(quán)重;基于第一權(quán)重與第二權(quán)重,確定出各間隔時(shí)間段分別對(duì)應(yīng)的回收時(shí)長(zhǎng)。

      11、在本技術(shù)的一種實(shí)現(xiàn)方式中,基于回收時(shí)長(zhǎng),對(duì)多個(gè)區(qū)塊內(nèi)分別對(duì)應(yīng)的長(zhǎng)期java實(shí)例集合與短期java實(shí)例集合中的待回收java實(shí)例進(jìn)行回收,具體包括:在多個(gè)區(qū)塊的長(zhǎng)期java實(shí)例集中確定出需要回收的長(zhǎng)期實(shí)例,以及在多個(gè)區(qū)塊的各短期java實(shí)例集中確定出需要回收的短期實(shí)例;到達(dá)回收時(shí)長(zhǎng)后,將各區(qū)塊內(nèi)需要回收的長(zhǎng)期實(shí)例依次進(jìn)行回收;將各區(qū)塊內(nèi)需要回收的短期實(shí)例進(jìn)行實(shí)時(shí)回收。

      12、本技術(shù)實(shí)施例提供一種java實(shí)例池優(yōu)化設(shè)備,包括:至少一個(gè)處理器;以及,與至少一個(gè)處理器通信連接的存儲(chǔ)器;其中,存儲(chǔ)器存儲(chǔ)有可被至少一個(gè)處理器執(zhí)行的指令,指令被至少一個(gè)處理器執(zhí)行,以使至少一個(gè)處理器能夠:根據(jù)java實(shí)例類型,將java實(shí)例池劃分為多個(gè)區(qū)塊;其中,多個(gè)區(qū)塊分別設(shè)置唯一標(biāo)識(shí),唯一標(biāo)識(shí)用于對(duì)多個(gè)區(qū)塊進(jìn)行多線程訪問(wèn)。確定出多個(gè)區(qū)塊內(nèi)的java實(shí)例分別對(duì)應(yīng)的使用頻率與生命周期,基于使用頻率與生命周期,將各區(qū)塊內(nèi)的java實(shí)例分別劃分為長(zhǎng)期java實(shí)例集合與短期java實(shí)例集合。獲取多個(gè)區(qū)塊分別對(duì)應(yīng)的資源使用率,基于資源使用率確定出回收時(shí)長(zhǎng)。基于回收時(shí)長(zhǎng),對(duì)多個(gè)區(qū)塊內(nèi)分別對(duì)應(yīng)的長(zhǎng)期java實(shí)例集合與短期java實(shí)例集合中的待回收java實(shí)例進(jìn)行回收,以完成java實(shí)例池優(yōu)化。

      13、本技術(shù)實(shí)施例提供的一種非易失性計(jì)算機(jī)存儲(chǔ)介質(zhì),存儲(chǔ)有計(jì)算機(jī)可執(zhí)行指令,計(jì)算機(jī)可執(zhí)行指令設(shè)置為:根據(jù)java實(shí)例類型,將java實(shí)例池劃分為多個(gè)區(qū)塊;其中,多個(gè)區(qū)塊分別設(shè)置唯一標(biāo)識(shí),唯一標(biāo)識(shí)用于對(duì)多個(gè)區(qū)塊進(jìn)行多線程訪問(wèn)。確定出多個(gè)區(qū)塊內(nèi)的java實(shí)例分別對(duì)應(yīng)的使用頻率與生命周期,基于使用頻率與生命周期,將各區(qū)塊內(nèi)的java實(shí)例分別劃分為長(zhǎng)期java實(shí)例集合與短期java實(shí)例集合。獲取多個(gè)區(qū)塊分別對(duì)應(yīng)的資源使用率,基于資源使用率確定出回收時(shí)長(zhǎng)。基于回收時(shí)長(zhǎng),對(duì)多個(gè)區(qū)塊內(nèi)分別對(duì)應(yīng)的長(zhǎng)期java實(shí)例集合與短期java實(shí)例集合中的待回收java實(shí)例進(jìn)行回收,以完成java實(shí)例池優(yōu)化。

      14、本技術(shù)實(shí)施例采用的上述至少一個(gè)技術(shù)方案能夠達(dá)到以下有益效果:本技術(shù)實(shí)施例通過(guò)區(qū)塊劃分,限制每個(gè)區(qū)塊內(nèi)的實(shí)例數(shù)量,減少鎖的競(jìng)爭(zhēng),提高多線程并發(fā)訪問(wèn)的效率,通過(guò)使用頻率和生命周期確定出哪些實(shí)例被頻繁創(chuàng)建和銷毀,哪些實(shí)例可以長(zhǎng)時(shí)間駐留,從而優(yōu)化內(nèi)存分配策略。其次,本技術(shù)實(shí)施例通過(guò)將長(zhǎng)期和短期實(shí)例分開管理,減少垃圾回收器的掃描范圍,降低垃圾回收的頻繁度和停頓時(shí)間。根據(jù)資源使用率動(dòng)態(tài)調(diào)整回收時(shí)長(zhǎng),在保證應(yīng)用性能的同時(shí),最大化資源利用率。

      當(dāng)前第1頁(yè)1 2 
      網(wǎng)友詢問(wèn)留言 已有0條留言
      • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1