成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

如何進行classLoader卸載與JVM熱部署

本篇文章為大家展示了如何進行classLoader卸載與JVM熱部署,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

專注于為中小企業(yè)提供網(wǎng)站制作、成都網(wǎng)站制作服務,電腦端+手機端+微信端的三站合一,更高效的管理,為中小企業(yè)陵水黎族免費做網(wǎng)站提供優(yōu)質的服務。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動了近1000家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設實現(xiàn)規(guī)模擴充和轉變。

classLoader的卸載機制

jvm中沒有提供class及classloader的unload方法.那熱部署及osgi中是通過什么機制來實現(xiàn)的呢?實現(xiàn)思路主要是通過更換classLoader進行重新加載.之前的classloader及加載的class類在沒有實例引用的情況下,在perm區(qū)gc的情況下會被回收掉。

perm區(qū)gc時回收掉沒有引用的class是一個怎樣的過程呢?

◆ perm區(qū)達到回收條件后,對class進行引用計算,對于沒有引用的class進行回收。

◆ classLoader實例什么時候被回收呢?(很有可能會進入old gen).perm區(qū)回收一般情況下觸發(fā)full gc是否目的就是清除沒有實例引用此classloader?

內存問題

◆ 如果有實例類有對classloader的引用,perm區(qū)class將無法卸載,導致perm區(qū)內存一直增加,進而導致perm space error

public static Map pool = new HashMap(); public static void main(String[] args) throws ClassNotFoundException, InstantiationException, IllegalAccessException{ for (int i=0;i<10000000;i++){ test(args); } }  public static void test(String[] args) throws ClassNotFoundException, InstantiationException, IllegalAccessException { ClassLoader cl = new MyLoader(Main.class.getClassLoader()); String className = "RealPerson";  @SuppressWarnings("unchecked") Class<Person> clazz = (Class<Person>) cl.loadClass(className); Person p = clazz.newInstance(); p.setName("qiang"); pool.put(System.nanoTime(), p); cl = p.getClass().getClassLoader(); }

推測:

osgi的bundle進行熱部署時有個條件:export class 必須是兼容的.否則需要重啟整個應用才會生效,為什么呢?

osgi的export class是被bundle的parent classloader加載的,bundle內部其他類是bundle的classloader加載的,bundle更換后,重新創(chuàng)建classloader,并對bundle進行加載,之前的加載靠jmv gc回收掉。

那osgi 中explort class如果有實例引用的話,是否會導致class無法被gc掉?

如果osgi中沒有做過處理,應該會出現(xiàn)此問題.具體osgi的實現(xiàn)還需要深入研究下,
也許osgi中關于此部分的實現(xiàn)使用了jvm內部的JMTI的相關接口,來對內存的引用關系進行了修改。

上述內容就是如何進行classLoader卸載與JVM熱部署,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

當前題目:如何進行classLoader卸載與JVM熱部署
本文URL:http://jinyejixie.com/article32/iihdpc.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供響應式網(wǎng)站、網(wǎng)站制作定制開發(fā)、品牌網(wǎng)站建設域名注冊

廣告

聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

外貿網(wǎng)站建設
晋中市| 垫江县| 准格尔旗| 景宁| 上饶县| 陕西省| 曲靖市| 清原| 盐山县| 溧水县| 农安县| 城口县| 邻水| 济宁市| 广东省| 肇东市| 化隆| 公安县| 澎湖县| 万年县| 大渡口区| 仪征市| 江北区| 新巴尔虎左旗| 沙湾县| 扬州市| 宿松县| 云南省| 图片| 大连市| 乌拉特后旗| 文山县| 蒲城县| 永靖县| 禄丰县| 东兰县| 汕尾市| 洛宁县| 松溪县| 东台市| 元朗区|