第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

如何使 Byte Buddy 將許多類型加載到同一包裝器類加載器中

如何使 Byte Buddy 將許多類型加載到同一包裝器類加載器中

米琪卡哇伊 2022-09-22 16:10:04
我正在使用Byte Buddy,在這種情況下,我可能需要用它創(chuàng)建幾十萬(wàn)個(gè)類。這些是實(shí)現(xiàn)接口的獨(dú)立類,而不是代理?,F(xiàn)在,我通過(guò)包裝應(yīng)用程序的一個(gè)類加載器將我的實(shí)例加載到類加載器中:DynamicType.Unloaded<?>final Class<?> myClass =    unloadedType        .load(someAppClassLoader, ClassLoadingStrategy.Default.WRAPPER)        .getLoaded();這種包裝策略適合我,但我遇到的問(wèn)題是,每次我執(zhí)行上面的代碼時(shí),都會(huì)創(chuàng)建一個(gè)僅包含新類的新密封。我知道我可以“包括”輔助類型...但這些不是輔助類型,而是完全獨(dú)立的類。ClassLoader由于我必須創(chuàng)建數(shù)千個(gè)類加載器,因此我留下了大量我并不真正需要的類加載器,因?yàn)槲蚁雽ytebuddy創(chuàng)建的類與其余類隔離開來(lái),但不是一個(gè)類,也不需要為每個(gè)類加載器創(chuàng)建一個(gè)新的類加載器。我的分析顯示,大量類加載器(在本例中相當(dāng)重)帶來(lái)了相當(dāng)大的內(nèi)存開銷。從我的測(cè)試中,我似乎可以對(duì)第一個(gè)使用包裝策略:final Class<?> myClass =    type        .load(someAppClassLoader, ClassLoadingStrategy.Default.WRAPPER)        .getLoaded();...然后檢索新的類裝入器:final ClassLoader bbClassLoader = myClass.getClassLoader();...然后在后續(xù)創(chuàng)建中使用此類裝入器,方法是將策略切換到注入:final Class<?> myOtherClass =    otherUnloadedType        .load(bbClassLoader, ClassLoadingStrategy.Default.INJECTION)        .getLoaded();但這對(duì)我來(lái)說(shuō)看起來(lái)不是一個(gè)干凈的策略,因?yàn)樗坪跏峭ㄟ^(guò)內(nèi)省注入的,以規(guī)避類加載器被密封的事實(shí)。所以我想知道是否有更好的機(jī)制在Byte Buddy中做到這一點(diǎn)。請(qǐng)注意,為了有一個(gè)正確密封的類裝入器,我可以一次將我所有的數(shù)千個(gè)對(duì)象變成一個(gè)類裝入器實(shí)例(并密封它)。我可以在應(yīng)用程序引導(dǎo)時(shí)批量初始化我的所有類,然后不用進(jìn)一步動(dòng)態(tài)創(chuàng)建類加載器。DynamicType.UnloadedClass<?>對(duì)于像我這樣的場(chǎng)景,正確的策略是什么?
查看完整描述

1 回答

?
猛跑小豬

TA貢獻(xiàn)1858條經(jīng)驗(yàn) 獲得超8個(gè)贊

使用策略時(shí)創(chuàng)建的類裝入器允許在類裝入器生命周期的稍后階段裝入類。出于安全原因,需要通過(guò)調(diào)用策略來(lái)啟用此功能。WRAPPERopened()

然后,您可以將第一個(gè)類加載器強(qiáng)制轉(zhuǎn)換為該加載器,以便在沒(méi)有任何不安全的 API 的情況下注入其他類的位置使用。InjectionClassLoaderInjectionClassLoader.Strategy.INSTANCE

您還可以通過(guò)調(diào)用來(lái)組合多個(gè)實(shí)例,然后在一次清洗中使用加載所有類。DynamicTypeincludeWRAPPER


查看完整回答
反對(duì) 回復(fù) 2022-09-22
  • 1 回答
  • 0 關(guān)注
  • 169 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)