成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

聊聊幽靈Class

Ilikewhite / 1032人閱讀

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

起因

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

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


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


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

深入思考

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

分析

因為是屬于沒有被EXPORT出來的類所以最終會委托給應用類加載器加載


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

改進

在最近的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這個配置默認都是關閉的
https://logback.qos.ch/manual...

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

轉載請注明本文地址:http://systransis.cn/yun/73897.html

相關文章

  • 幽靈菜單介紹;

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

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

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

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

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

    libxd 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<