<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          代碼實(shí)現(xiàn)java8元空間溢出

          共 1493字,需瀏覽 3分鐘

           ·

          2021-04-22 22:39

          最近組內(nèi)項(xiàng)目報(bào)了一個(gè)錯(cuò),大概原因就是元空間的問題。雖然問題解決了,但是對(duì)于作者來說感覺還是一頭霧水,為啥一頭霧水?因?yàn)槲覀冎涝臻g在java8中替代的是java7中的永久代,永久代就是存儲(chǔ)類信息,我們用到的類都要存放到這塊空間。但是在java8中元空間在堆外。那么元空間的出錯(cuò)就成了容量太小裝不下項(xiàng)目運(yùn)行所需要的類?那么又是何種原因?qū)е马?xiàng)目會(huì)不斷生成新的類?我們知道java的動(dòng)態(tài)代理會(huì)生成代理類,代理類的特點(diǎn)就是類名后邊很多莫名其妙的字符。所以我們的元空間導(dǎo)致的問題很大原因上還是使用了動(dòng)態(tài)代理。而且這些動(dòng)態(tài)代理類被無限的生成了并且沒有來得及被卸載,或者被卸載了但是其生成的對(duì)象還在。
          那么咋實(shí)現(xiàn)一下如何讓元空間溢出吧。
          編寫一段代碼:
          @RestController@RequestMapping("/v")public class UserController {    Logger logger= LoggerFactory.getLogger(UserController.class);

          @Autowired private ThreadService threadService;

          @GetMapping(value = "/test") public String TEST(){ Enhancer enhancer = new Enhancer(); enhancer.setSuperclass(User.class); enhancer.setUseCache(false); enhancer.setCallback(new MethodInterceptor() { @Override public Object intercept(Object obj, Method method, Object[] args, MethodProxy proxy) throws Throwable { return proxy.invoke(obj, args); } }); Object o=enhancer.create(); System.out.println(o.toString()); User user=threadService.getUser(); logger.info(user.toString()); user.setUserName("1"); return "success"; }}
          設(shè)置元空間大小100M
          使用jmeter發(fā)送接口,設(shè)置100個(gè)線程,每秒100次請(qǐng)求,輪詢10000次。
          使用java visualVm進(jìn)行載入類數(shù)量和元空間變化情況。
          查看報(bào)錯(cuò)日志:
          切斷jmeter連接中斷報(bào)錯(cuò)。
          小結(jié):通過上述代碼,我們可以得出的結(jié)論就是我們編寫對(duì)訪問量有要求的系統(tǒng)的時(shí)候要主要避免采用動(dòng)態(tài)代理。至于我們組項(xiàng)目線上的報(bào)錯(cuò)本人還沒研究透徹,雖然解決了問題。但是也匪夷所思,就到這里吧,等研究透了再寫文章,OK晚安。
          瀏覽 60
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  国产精品123区在线观看 | 人妻体体内射精一区二区 | 先锋av资源在线 先锋影音成人在线 | 色老板在线观看 | 插逼喷水视频 |