成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

聊聊幽靈Class

Ilikewhite / 1090人閱讀

摘要:有鎖的地方就會有鎖競爭,并且也是一個耗時的過程,所以同一個如果并發(fā)出現(xiàn)在日志堆棧中勢必會導(dǎo)致一部分線程會,這對于線上系統(tǒng)中簡直就是災(zāi)難改進(jìn)在最近的版本中并沒有發(fā)現(xiàn)對的類做特殊處理,并且正如官方說的所以只要的版本大于,這個配置默認(rèn)都是關(guān)閉的

起因

偶然一次路過同事電腦,看著黑底藍(lán)色滿屏的堆棧信息,過去笑著拍了拍他的肩膀說道「小哥,又在寫B(tài)UG呢」湊過去仔細(xì)看了一眼異常堆棧詳情,「虎軀一震」喲,高端的,這堆棧后面的還有類的包路徑信息呢呢,以前看堆棧的時候咋沒有特別注意

坐下打開電腦翻看了下一下Logback的代碼核心計(jì)算邏輯ch.qos.logback.classic.spi.PackagingDataCalculator


獲取Package下的MANIFEST.MF文件里面Implementation-Version信息


和獲取類所在的jar包路徑
可以看到所有的信息都在類對應(yīng)的Class對象上

深入思考

很多時候?yàn)榱私鉀QMaven扁平化依賴臃腫和依賴沖突問題,我們往往會用上類隔離框架,比如說支付寶開源的sofa-ark,其基本原理就是使用多帶帶的ClassLoader加載,并且將一部門類EXPORT,假設(shè)如果遇到?jīng)]有被EXPORT出來的類(幽靈Class),會發(fā)生什么情況呢?

分析

因?yàn)槭菍儆跊]有被EXPORT出來的類所以最終會委托給應(yīng)用類加載器加載


為了防止重復(fù)加載,所以應(yīng)用類加載器在加載類的時候會根據(jù)加載的className加鎖,因?yàn)轭愐膊皇菓?yīng)用類加載器加載的所以會進(jìn)行雙親委派加載,最后拋出ClassNotFoundException,再結(jié)合PackagingDataCalculator對異常的處理
程序不會終止,所以我們可以得出結(jié)論只要碰到「幽靈Class」logback都會重新把類按照雙親委派的方式加載一遍。
有鎖的地方就會有鎖競爭,并且Class.load也是一個耗時的過程,所以同一個ClassName如果并發(fā)出現(xiàn)在日志堆棧中勢必會導(dǎo)致一部分線程會block,這對于線上系統(tǒng)中簡直就是災(zāi)難.

改進(jìn)

在最近的logback版本中并沒有發(fā)現(xiàn)對ClassNotFoundException的類做特殊處理,并且正如logback官方說的

While useful, packaging data is expensive to compute, especially in applications with frequent exceptions.

所以只要logback的版本大于1.1.3,packageDate這個配置默認(rèn)都是關(guān)閉的
https://logback.qos.ch/manual...

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://m.hztianpu.com/yun/73897.html

相關(guān)文章

  • 幽靈菜單介紹;

    摘要:以往我們都是鼠標(biāo)懸停才出現(xiàn)的幽靈菜單今天給大家介紹一個滾動的幽靈菜單滾動的幽靈菜單隨便設(shè)置代碼如下表格請輸入你需要的產(chǎn)品部分 以往我們都是鼠標(biāo)懸停才出現(xiàn)的幽靈菜單;今天給大家介紹一個滾動的幽靈菜單 滾動的幽靈菜單 1.html 隨便設(shè)置代碼如下:表格*{margin:0;padding: 0;}body{ height: 2000px; }.shou{ width: 100%;...

    Ali_ 評論0 收藏0
  • 幽靈菜單介紹;

    摘要:以往我們都是鼠標(biāo)懸停才出現(xiàn)的幽靈菜單今天給大家介紹一個滾動的幽靈菜單滾動的幽靈菜單隨便設(shè)置代碼如下表格請輸入你需要的產(chǎn)品部分 以往我們都是鼠標(biāo)懸停才出現(xiàn)的幽靈菜單;今天給大家介紹一個滾動的幽靈菜單 滾動的幽靈菜單 1.html 隨便設(shè)置代碼如下:表格*{margin:0;padding: 0;}body{ height: 2000px; }.shou{ width: 100%;...

    TalkingData 評論0 收藏0
  • 幽靈菜單介紹;

    摘要:以往我們都是鼠標(biāo)懸停才出現(xiàn)的幽靈菜單今天給大家介紹一個滾動的幽靈菜單滾動的幽靈菜單隨便設(shè)置代碼如下表格請輸入你需要的產(chǎn)品部分 以往我們都是鼠標(biāo)懸停才出現(xiàn)的幽靈菜單;今天給大家介紹一個滾動的幽靈菜單 滾動的幽靈菜單 1.html 隨便設(shè)置代碼如下:表格*{margin:0;padding: 0;}body{ height: 2000px; }.shou{ width: 100%;...

    libxd 評論0 收藏0

發(fā)表評論

0條評論

閱讀需要支付1元查看
<