日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

假笨说-谨防JDK8重复类定义造成的内存泄漏

發(fā)布時(shí)間:2024/4/11 编程问答 54 豆豆
生活随笔 收集整理的這篇文章主要介紹了 假笨说-谨防JDK8重复类定义造成的内存泄漏 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

概述

如今JDK8成了主流,大家都緊鑼密鼓地進(jìn)行著升級(jí),享受著JDK8帶來(lái)的各種便利,然而有時(shí)候升級(jí)并沒(méi)有那么順利?比如說(shuō)今天要說(shuō)的這個(gè)問(wèn)題。我們都知道JDK8在內(nèi)存模型上最大的改變是,放棄了Perm,迎來(lái)了Metaspace的時(shí)代。如果你對(duì)Metaspace還不熟,之前我寫(xiě)過(guò)一篇介紹Metaspace的文章,大家有興趣的可以看看我前面的那篇文章。

我們之前一般在系統(tǒng)的JVM參數(shù)上都加了類(lèi)似-XX:PermSize=256M -XX:MaxPermSize=256M的參數(shù),升級(jí)到JDK8之后,因?yàn)镻erm已經(jīng)沒(méi)了,如果還有這些參數(shù)JVM會(huì)拋出一些警告信息,于是我們會(huì)將參數(shù)進(jìn)行升級(jí),比如直接將PermSize改成MetaspaceSize,MaxPermSize改成MaxMetaspaceSize,但是我們后面會(huì)發(fā)現(xiàn)一個(gè)問(wèn)題,經(jīng)常會(huì)看到Metaspace的OutOfMemory異常或者GC日志里提示Metaspace導(dǎo)致的Full GC,此時(shí)我們不得不將MaxMetaspaceSize以及MetaspaceSize調(diào)大到512M或者更大,幸運(yùn)的話,發(fā)現(xiàn)問(wèn)題解決了,后面沒(méi)再出現(xiàn)OOM,但是有時(shí)候也會(huì)很不幸,仍然會(huì)出現(xiàn)OOM。此時(shí)大家是不是非常疑惑了,代碼完全沒(méi)有變化,但是加載類(lèi)貌似需要更多的內(nèi)存?

之前我其實(shí)并沒(méi)有仔細(xì)去想這個(gè)問(wèn)題,碰到這類(lèi)OOM的問(wèn)題,都覺(jué)得主要是Metaspace內(nèi)存碎片的問(wèn)題,因?yàn)橹皫腿私鉀Q過(guò)類(lèi)似的問(wèn)題,他們構(gòu)建了成千上萬(wàn)個(gè)類(lèi)加載器,確實(shí)也是因?yàn)镸etsapce碎片的問(wèn)題導(dǎo)致的,因?yàn)镸etaspace并不會(huì)做壓縮,解決的方案主要是調(diào)大MetaspaceSize和MaxMetaspaceSize,并將它們?cè)O(shè)置相等。然后這次碰到的問(wèn)題并不是這樣,類(lèi)加載個(gè)數(shù)并不多,然而卻拋出了Metaspace的OutOfMemory異常,并且Full GC一直持續(xù)著,而且從jstat來(lái)看,Metaspace的GC前后使用情況基本不變,也就是GC前后基本沒(méi)有回收什么內(nèi)存。

通過(guò)我們的內(nèi)存分析工具看到的現(xiàn)象是同一個(gè)類(lèi)加載器居然加載了同一個(gè)類(lèi)多遍,內(nèi)存里有多份類(lèi)實(shí)例,這個(gè)我們可以通過(guò)加上-verbose:class的參數(shù)也能得到驗(yàn)證,要輸出如下日志,那只有在不斷定義某個(gè)類(lèi)才會(huì)輸出,于是想構(gòu)建出這種場(chǎng)景來(lái),于是簡(jiǎn)單地寫(xiě)了個(gè)demo來(lái)驗(yàn)證

[Loaded ResponseVO$JaxbAccessorM_getDescription_setDescription_java_lang_String from __JVM_DefineClass__] [Loaded ResponseVO$JaxbAccessorM_getDescription_setDescription_java_lang_String from __JVM_DefineClass__] [Loaded ResponseVO$JaxbAccessorM_getDescription_setDescription_java_lang_String from __JVM_DefineClass__]

Demo

import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.lang.reflect.Method;/*** Created by nijiaben on 2017/3/7.*/ public class B {public static void main(String args[]) throws Throwable {Method defineClass = ClassLoader.class.getDeclaredMethod("defineClass",new Class[]{String.class, byte[].class, int.class, int.class});defineClass.setAccessible(true);File file = new File("/Users/nijiaben/BBBB.class");byte[] bcs = new byte[(int) file.length()];FileInputStream in = null;try {in = new FileInputStream(file);while ((in.read(bcs)) != -1) {}} catch (Exception e) {} finally {if (in != null) {try {in.close();} catch (IOException e) {}}}while (true) {try {defineClass.invoke(B.class.getClassLoader(), new Object[]{"BBBB", bcs, 0, bcs.length});} catch (Throwable e) {}}} }

代碼很簡(jiǎn)單,就是通過(guò)反射直接調(diào)用ClassLoader的defineClass方法來(lái)對(duì)某個(gè)類(lèi)做重復(fù)的定義。

其中在JDK7下跑的JVM參數(shù)設(shè)置的是:

-Xmx100M -Xms100M -verbose:class -XX:+PrintGCDetails -XX:MaxPermSize=50M -XX:PermSize=50M -XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled

在JDK8下跑的JVM參數(shù)是:

-Xmx100M -Xms100M -verbose:class -XX:+PrintGCDetails -XX:MaxMetaspaceSize=50M -XX:MetaspaceSize=50M -XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled

二者區(qū)別就在于一個(gè)是PermSize,一個(gè)是MetaspaceSize

大家可以通過(guò)jstat -gcutil 1000看看JDK7和JDK8下有什么不一樣,結(jié)果你會(huì)發(fā)現(xiàn)JDK7下Perm的使用率隨著FGC的進(jìn)行GC前后不斷發(fā)生著變化,而Metsapce的使用率到一定階段之后GC前后卻一直沒(méi)有變化

JDK7下的結(jié)果:

[Full GC[CMS: 0K->346K(68288K), 0.0267620 secs] 12607K->346K(99008K), [CMS Perm : 51199K->3122K(51200K)], 0.0269490 secs] [Times: user=0.03 sys=0.00, real=0.03 secs]

JDK8下的結(jié)果:

[Full GC (Metadata GC Threshold) [CMS: 5308K->5308K(68288K), 0.0397720 secs] 5844K->5308K(99008K), [Metaspace: 49585K->49585K(1081344K)], 0.0398189 secs] [Times: user=0.04 sys=0.00, real=0.04 secs] [Full GC (Last ditch collection) [CMS: 5308K->5308K(68288K), 0.0343949 secs] 5308K->5308K(99008K), [Metaspace: 49585K->49585K(1081344K)], 0.0344473 secs] [Times: user=0.03 sys=0

重復(fù)類(lèi)定義

重復(fù)類(lèi)定義,從上面的Demo里已經(jīng)得到了證明,當(dāng)我們多次調(diào)用ClassLoader的defineClass方法的時(shí)候哪怕是同一個(gè)類(lèi)加載器加載同一個(gè)類(lèi)文件,在JVM里也會(huì)在對(duì)應(yīng)的Perm或者M(jìn)etaspace里創(chuàng)建多份Klass結(jié)構(gòu),當(dāng)然一般情況下我們不會(huì)直接這么調(diào)用,但是反射提供了這么強(qiáng)大的能力,有些人還是會(huì)利用這種寫(xiě)法,其實(shí)我想直接這么用的人對(duì)類(lèi)加載的實(shí)現(xiàn)機(jī)制真的沒(méi)有全弄明白,包括這次問(wèn)題發(fā)生的場(chǎng)景其實(shí)還是吸納進(jìn)JDK里的jaxp/jaxws,比如它就存在這樣的代碼實(shí)現(xiàn)com.sun.xml.bind.v2.runtime.reflect.opt.Injector里的inject方法就存在直接調(diào)用的情況:

private synchronized Class inject(String className, byte[] image){if (!this.loadable) {return null;}Class c = (Class)this.classes.get(className);if (c == null){try{c = (Class)defineClass.invoke(this.parent, new Object[] { className.replace('/', '.'), image, Integer.valueOf(0), Integer.valueOf(image.length) });resolveClass.invoke(this.parent, new Object[] { c });}catch (IllegalAccessException e){logger.log(Level.FINE, "Unable to inject " + className, e);return null;}catch (InvocationTargetException e){logger.log(Level.FINE, "Unable to inject " + className, e);return null;}catch (SecurityException e){logger.log(Level.FINE, "Unable to inject " + className, e);return null;}catch (LinkageError e){logger.log(Level.FINE, "Unable to inject " + className, e);return null;}this.classes.put(className, c);}return c;}

不過(guò)從2.2.2這個(gè)版本開(kāi)始這種實(shí)現(xiàn)就改變了

private Class inject(String className, byte[] image){...c = (Class)findLoadedClass.invoke(this.parent, new Object[] { className.replace('/', '.') });...if (c == null){c = (Class)defineClass.invoke(this.parent, new Object[] { className.replace('/', '.'), image, Integer.valueOf(0), Integer.valueOf(image.length) });resolveClass.invoke(this.parent, new Object[] { c })...}}

所以大家如果還是使用jaxb-impl-2.2.2以下版本的請(qǐng)注意啦,升級(jí)到JDK8可能會(huì)存在本文說(shuō)的問(wèn)題。

重復(fù)類(lèi)定義帶來(lái)的影響

那重復(fù)類(lèi)定義會(huì)帶來(lái)什么危害呢?正常的類(lèi)加載都會(huì)先走一遍緩存查找,看是否已經(jīng)有了對(duì)應(yīng)的類(lèi),如果有了就直接返回,如果沒(méi)有就進(jìn)行定義,如果直接調(diào)用類(lèi)定義的方法,在JVM里會(huì)創(chuàng)建多份臨時(shí)的類(lèi)結(jié)構(gòu)實(shí)例,這些相關(guān)的結(jié)構(gòu)是存在Perm或者M(jìn)etaspace里的,也就是說(shuō)會(huì)消耗Perm或Metaspace的內(nèi)存,但是這些類(lèi)在定義出來(lái)之后,最終會(huì)做一次約束檢查,如果發(fā)現(xiàn)已經(jīng)定義了,那就直接拋出LinkageError的異常

void SystemDictionary::check_constraints(int d_index, unsigned int d_hash,instanceKlassHandle k,Handle class_loader, bool defining,TRAPS) {const char *linkage_error = NULL;{Symbol* name = k->name();ClassLoaderData *loader_data = class_loader_data(class_loader);MutexLocker mu(SystemDictionary_lock, THREAD);Klass* check = find_class(d_index, d_hash, name, loader_data);if (check != (Klass*)NULL) {// if different InstanceKlass - duplicate class definition,// else - ok, class loaded by a different thread in parallel,// we should only have found it if it was done loading and ok to use// system dictionary only holds instance classes, placeholders// also holds array classesassert(check->oop_is_instance(), "noninstance in systemdictionary");if ((defining == true) || (k() != check)) {linkage_error = "loader (instance of %s): attempted duplicate class ""definition for name: \"%s\"";} else {return;}}...}

這樣這些臨時(shí)創(chuàng)建的結(jié)構(gòu),只能等待GC的時(shí)候去回收掉了,因?yàn)樗鼈儾豢蛇_(dá),所以在GC的時(shí)候會(huì)被回收,那問(wèn)題來(lái)了,為什么在Perm下能正常回收,但是在Metaspace里不能正常回收呢?

Perm和Metaspace在類(lèi)卸載上的差異

這里我主要拿我們目前最常用的GC算法CMS GC舉例。

在JDK7 CMS下,Perm的結(jié)構(gòu)其實(shí)和Old的內(nèi)存結(jié)構(gòu)是一樣的,如果Perm不夠的時(shí)候我們會(huì)做一次Full GC,這個(gè)Full GC默認(rèn)情況下是會(huì)對(duì)各個(gè)分代做壓縮的,包括Perm,這樣一來(lái)根據(jù)對(duì)象的可達(dá)性,任何一個(gè)類(lèi)都只會(huì)和一個(gè)活著的類(lèi)加載器綁定,在標(biāo)記階段將這些類(lèi)標(biāo)記成活的,并將他們進(jìn)行新地址的計(jì)算及移動(dòng)壓縮,而之前因?yàn)橹貜?fù)定義生成的類(lèi)結(jié)構(gòu)等,因?yàn)闆](méi)有將它們和任何一個(gè)活著的類(lèi)加載器關(guān)聯(lián)(有個(gè)叫做SystemDictionary的Hashtable結(jié)構(gòu)來(lái)記錄這種關(guān)聯(lián)),從而在壓縮過(guò)程中會(huì)被回收掉。

void GenMarkSweep::mark_sweep_phase4() {// All pointers are now adjusted, move objects accordingly// It is imperative that we traverse perm_gen first in phase4. All// classes must be allocated earlier than their instances, and traversing// perm_gen first makes sure that all klassOops have moved to their new// location before any instance does a dispatch through it's klass!// The ValidateMarkSweep live oops tracking expects us to traverse spaces// in the same order in phase2, phase3 and phase4. We don't quite do that// here (perm_gen first rather than last), so we tell the validate code// to use a higher index (saved from phase2) when verifying perm_gen.GenCollectedHeap* gch = GenCollectedHeap::heap();Generation* pg = gch->perm_gen();GCTraceTime tm("phase 4", PrintGC && Verbose, true, _gc_timer);trace("4");VALIDATE_MARK_SWEEP_ONLY(reset_live_oop_tracking(true));pg->compact();VALIDATE_MARK_SWEEP_ONLY(reset_live_oop_tracking(false));GenCompactClosure blk;gch->generation_iterate(&blk, true);VALIDATE_MARK_SWEEP_ONLY(compaction_complete());pg->post_compact(); // Shared spaces verification. }

在JDK8下,Metaspace是完全獨(dú)立分散的內(nèi)存結(jié)構(gòu),由非連續(xù)的內(nèi)存組合起來(lái),在Metaspace達(dá)到了觸發(fā)GC的閾值的時(shí)候(和MaxMetaspaceSize及MetaspaceSize有關(guān)),就會(huì)做一次Full GC,但是這次Full GC,并不會(huì)對(duì)Metaspace做壓縮,唯一卸載類(lèi)的情況是,對(duì)應(yīng)的類(lèi)加載器必須是死的,如果類(lèi)加載器都是活的,那肯定不會(huì)做卸載的事情了

void GenMarkSweep::mark_sweep_phase4() {// All pointers are now adjusted, move objects accordingly// It is imperative that we traverse perm_gen first in phase4. All// classes must be allocated earlier than their instances, and traversing// perm_gen first makes sure that all Klass*s have moved to their new// location before any instance does a dispatch through it's klass!// The ValidateMarkSweep live oops tracking expects us to traverse spaces// in the same order in phase2, phase3 and phase4. We don't quite do that// here (perm_gen first rather than last), so we tell the validate code// to use a higher index (saved from phase2) when verifying perm_gen.GenCollectedHeap* gch = GenCollectedHeap::heap();GCTraceTime tm("phase 4", PrintGC && (Verbose || LogCMSParallelFullGC),true, _gc_timer, _gc_tracer->gc_id());trace("4");GenCompactClosure blk;gch->generation_iterate(&blk, true); }

從上面貼的代碼我們也能看出來(lái),JDK7里會(huì)對(duì)Perm做壓縮,然后JDK8里并不會(huì)對(duì)Metaspace做壓縮,從而只要和那些重復(fù)定義的類(lèi)相關(guān)的類(lèi)加載一直存活,那將一直不會(huì)被回收,但是如果類(lèi)加載死了,那就會(huì)被回收,這是因?yàn)槟切┲貜?fù)類(lèi)都是在和這個(gè)類(lèi)加載器關(guān)聯(lián)的內(nèi)存塊里分配的,如果這個(gè)類(lèi)加載器死了,那整塊內(nèi)存會(huì)被清理并被下次重用。

如何證明壓縮能回收Perm里的重復(fù)類(lèi)

在沒(méi)看GC源碼的情況下,有什么辦法來(lái)證明Perm在FGC下的回收是因?yàn)閴嚎s而導(dǎo)致那些重復(fù)類(lèi)被回收呢?大家可以改改上面的測(cè)試用例,將最后那個(gè)死循環(huán)改一下:

int i = 0;while (i++ < 1000) {try {defineClass.invoke(B.class.getClassLoader(), new Object[]{"BBBB", bcs, 0, bcs.length});} catch (Throwable e) {}}System.gc();

在System.gc那里設(shè)置個(gè)斷點(diǎn),然后再通過(guò)jstat -gcutil 1000來(lái)看Perm的使用率是否發(fā)生變化,另外你再加上-XX:+ ExplicitGCInvokesConcurrent再重復(fù)上面的動(dòng)作,你看看輸出是怎樣的,為什么這個(gè)可以證明,大家可以想一想,哈哈

轉(zhuǎn)載自: 微信公眾號(hào)你假笨
原文鏈接:https://zhuanlan.zhihu.com/p/25634935

超強(qiáng)干貨來(lái)襲 云風(fēng)專(zhuān)訪:近40年碼齡,通宵達(dá)旦的技術(shù)人生

總結(jié)

以上是生活随笔為你收集整理的假笨说-谨防JDK8重复类定义造成的内存泄漏的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

日韩精品欧美视频 | 午夜视频免费 | 96精品高清视频在线观看软件特色 | 国产精品手机在线观看 | 黄色三级免费片 | 国产亚洲成av人片在线观看桃 | 欧美韩日在线 | 在线观看成年人 | 国产色在线,com | 亚洲婷婷在线视频 | 欧美日韩一区二区三区在线观看视频 | 婷婷激情在线观看 | 国产日韩欧美视频在线观看 | 黄色毛片在线观看 | 手机看片国产日韩 | 免费看片色| 国产原创av片 | 日韩高清不卡在线 | 国产精品入口久久 | 亚洲黑丝少妇 | 国产一级精品视频 | 日韩在线网 | jizzjizzjizz亚洲| 亚洲国产精品女人久久久 | 免费在线看v | av在线专区 | 久久久不卡影院 | 日日夜夜网| 日韩视频一 | 婷婷播播网 | 日韩一级电影在线观看 | 日韩成人黄色 | 91麻豆精品国产 | 中文字幕影片免费在线观看 | av片中文 | 狠狠久久 | 99久久99久久精品国产片 | 日韩91精品| 国产亚洲精品久久久久久网站 | 色视频在线观看免费 | 国产精品久久二区 | 欧美性视频网站 | 91少妇精拍在线播放 | 特级毛片在线免费观看 | www色综合 | 久久久精品国产一区二区电影四季 | 国产日韩精品欧美 | 美女在线观看网站 | 中文字幕资源在线观看 | 亚洲3级 | 一级久久精品 | 午夜电影一区 | 9797在线看片亚洲精品 | 国产精品video爽爽爽爽 | 国产精品一区免费在线观看 | 性色av香蕉一区二区 | 中文字幕在线免费97 | 国产精品午夜8888 | 18国产精品白浆在线观看免费 | 一本一道波多野毛片中文在线 | 91精品国产综合久久福利不卡 | 欧美成人精品欧美一级乱 | 亚洲精品国产品国语在线 | 青青视频一区 | 午夜影院先 | 国产99久久九九精品免费 | 国产精品嫩草影院123 | 99国产精品 | 在线免费黄色av | 久草免费在线观看 | 精品视频123区在线观看 | 在线免费视频你懂的 | 欧美极品一区二区三区 | av在线不卡观看 | 久久久综合 | 亚洲人成人99网站 | 91在线资源| 丁香婷婷射 | 九九精品视频在线观看 | 手机色站| 国产精品一区电影 | 91天天视频| 久久免费试看 | 欧美在线一| 香蕉视频国产在线观看 | 亚洲五月综合 | 久久国产精品网站 | 在线视频黄| 色婷婷啪啪免费在线电影观看 | 超碰人人乐 | 国产男女免费完整视频 | 四虎永久免费在线观看 | 在线免费中文字幕 | 片黄色毛片黄色毛片 | 不卡电影一区二区三区 | 福利片视频区 | 91成人观看 | 99国产一区二区三精品乱码 | www.色午夜.com | 久久99免费视频 | 黄色一级免费网站 | 国产精品高清在线观看 | av不卡中文 | 91探花国产综合在线精品 | 在线视频黄 | 毛片网在线 | 欧美片网站yy | 青春草免费在线视频 | 九色在线| 干 操 插 | 欧美一区二区伦理片 | 国产麻豆果冻传媒在线观看 | 视频二区在线 | 97超碰人| 高潮久久久久久 | 国产专区一 | 久爱综合 | 日韩黄色在线电影 | 久久精美视频 | 国产视频美女 | 在线观看的a站 | 天天天天天天天操 | 国产一区免费在线观看 | 丁香久久综合 | 精品1区二区 | 国产高清在线免费观看 | 国产免费一区二区三区最新6 | 国产福利91精品 | 国产黄网站在线观看 | 天天爱综合 | 免费久久久久久 | 久久99国产综合精品 | 亚洲dvd| 中文字幕在线观看一区二区三区 | 在线观看国产日韩 | 国产精品视频不卡 | 日本成人黄色片 | 五月婷婷av | 国产成人久久av | 一级α片 | 免费黄色网址大全 | av中文在线 | 国产精品久久久精品 | 亚州国产精品 | 欧美a免费| 91精选在线 | 欧美aaa大片| 成人一级片免费看 | 综合色亚洲 | 欧美天天射 | 久久国产成人午夜av影院宅 | 5月丁香婷婷综合 | 久久久影院一区二区三区 | 久草干| 69精品视频在线观看 | 亚洲精品www久久久 www国产精品com | 国产视频手机在线 | 91在线免费公开视频 | 国产资源免费在线观看 | 激情偷乱人伦小说视频在线观看 | 808电影 | 6080yy午夜一二三区久久 | 国产999在线 | 夜夜干天天操 | 伊人久久av | 亚洲爱视频 | 视频一区二区在线观看 | 国产伦精品一区二区三区在线 | 国产精品日韩 | 西西人体www444| 午夜精品一区二区三区可下载 | 在线免费看黄网站 | 精品国产观看 | 欧美国产三区 | 欧美日韩另类在线观看 | 免费av网站在线看 | 国产精品精品视频 | 国产成人精品av | 五月天综合激情网 | 毛片精品免费在线观看 | av在线精品| 中文字幕你懂的 | 欧美一级黄色网 | 亚洲专区中文字幕 | 欧美精品一区二区蜜臀亚洲 | 在线观看免费av网 | 成人资源在线 | 国产最新福利 | www.色五月.com | 日韩一区二区久久 | 黄色中文字幕 | 999抗病毒口服液 | 在线免费精品视频 | 久久视频在线免费观看 | 免费成人短视频 | a级国产乱理伦片在线观看 亚洲3级 | 91探花系列在线播放 | 国产破处在线视频 | 色瓜| 成人性生交大片免费看中文网站 | 婷婷国产精品 | 日本免费久久高清视频 | 在线观看国产日韩欧美 | av电影一区二区三区 | 伊人影院av | 国产精品福利在线观看 | 日韩视频免费观看高清 | 国产精品毛片一区 | 欧美最猛性xxxxx免费 | 玖玖色在线观看 | 国产精品久久久久久久婷婷 | 欧日韩在线视频 | 五月天伊人网 | www.狠狠插.com| 日韩不卡高清 | 国内精品久久久久久久久久清纯 | 在线观看小视频 | 欧美9999 | 亚洲成人网在线 | 国产黄色a| 日操干| 黄色免费高清视频 | 久久久久久黄色 | 久草在线这里只有精品 | 婷婷四房综合激情五月 | 国产五月天婷婷 | 狠狠躁日日躁夜夜躁av | 亚洲精品高清在线观看 | 亚洲国产三级 | 国产精品黄 | 亚洲三级网站 | 成人在线一区二区三区 | 91av亚洲 | 久久久久久久久久电影 | 国产a国产 | 国产在线一线 | 91综合久久一区二区 | 免费亚洲精品视频 | 中文字幕中文字幕在线中文字幕三区 | 欧美精品二| 国产一二区视频 | 精品久久久久久一区二区里番 | 伊人成人久久 | 青青草在久久免费久久免费 | 久色小说 | 在线免费性生活片 | av高清一区二区三区 | 天天添夜夜操 | 91中文字幕| 色综合中文字幕 | 美女免费视频观看网站 | 91免费网| 国产资源在线播放 | 精品在线观 | 日韩精品视频久久 | 精品在线视频一区二区三区 | 色姑娘综合 | 日韩精品无码一区二区三区 | 丝袜美女在线 | 69av在线视频| 亚洲视频2 | www.午夜视频| 中文字幕日韩一区二区三区不卡 | 免费黄色av电影 | 欧美坐爱视频 | 天天做日日做天天爽视频免费 | 久久婷婷国产 | 日本视频网 | 天堂av高清 | 日韩有码在线播放 | 欧美日韩中字 | 亚洲a成人v | 日韩激情网 | 一本到视频在线观看 | 亚洲午夜小视频 | 99精品一区 | 亚洲精品国产麻豆 | 九九九国产 | 美女视频黄网站 | 国产美女精品视频免费观看 | 日日夜夜精品免费视频 | 在线观看黄网 | 国产精品毛片一区二区在线 | 99这里只有精品视频 | 久久伦理| 日韩成片 | 国产色视频一区二区三区qq号 | 四虎成人在线 | 特级西西444www大精品视频免费看 | 最近中文字幕mv免费高清在线 | 欧洲av不卡 | 亚洲精品视频免费 | 国产一区二区在线免费观看 | 久久精品99国产国产精 | 日本精品久久久久中文字幕5 | 93久久精品日日躁夜夜躁欧美 | 久操视频在线播放 | 欧美了一区在线观看 | 91九色精品女同系列 | 久久久久久久电影 | 色大片免费看 | 成人黄色在线视频 | 激情 婷婷 | 日韩系列 | 久草在线手机观看 | 久久久免费看视频 | 开心色停停 | 中文字幕国产 | 激情综合色综合久久综合 | 国产高清免费视频 | 日韩3区 | bbw av | 综合精品久久久 | 91激情视频在线观看 | 国产精品免费大片视频 | 深夜国产福利 | 久久av伊人| 日日干干夜夜 | a黄色一级片 | 亚洲精品一区二区精华 | 久久久麻豆精品一区二区 | 国产精品资源网 | 久久99在线视频 | 日韩精品高清不卡 | 免费激情网 | 国产中文字幕视频在线观看 | 国产欧美久久久精品影院 | 国产精品免费在线播放 | 欧美淫视频 | 青草视频在线播放 | 午夜成人免费影院 | 久久久天天操 | 欧美视频18 | 久久任你操 | 国产日韩精品一区二区在线观看播放 | 欧美a视频在线观看 | 欧美性成人| a在线观看免费视频 | 亚洲国产日韩精品 | 九色免费视频 | 欧美91精品久久久久国产性生爱 | 久久精品www人人爽人人 | 天天天天天天天操 | 色是在线视频 | 久久视讯| 国产精品免费看久久久8精臀av | 一区二区三区久久 | 久久精品这里都是精品 | 国产精品一区二区白浆 | 91av在线精品 | 日韩丝袜在线观看 | 日韩在线一二三区 | 欧美日韩在线免费观看 | 在线免费视频一区 | 亚洲伦理一区二区 | 久草精品视频在线观看 | 亚洲日本一区二区在线 | 麻豆一区在线观看 | 亚洲成人999 | 免费观看xxxx9999片 | 欧美日在线观看 | 婷婷日日| 最近中文字幕在线播放 | 美女免费视频观看网站 | 亚洲在线国产 | 日韩视频免费在线观看 | 天天操天天射天天舔 | 五月婷丁香网 | www.久草.com | 天天色天天操天天爽 | 亚洲欧美日韩国产一区二区 | 日本精品视频在线观看 | 麻豆久久久久久久 | 开心色插 | 亚洲成av人片在线观看www | 国产专区在线视频 | 欧美在线观看小视频 | 狠狠网站 | 国产精品青草综合久久久久99 | 国产成人一二片 | 国产午夜精品一区二区三区嫩草 | 国产男男gay做爰 | 久久精品一二三区 | 91精品国产乱码久久桃 | 国产福利一区二区三区在线观看 | 色99视频| 国产视频中文字幕 | 色妞久久福利网 | 久久夜av| 国产视频丨精品|在线观看 国产精品久久久久久久久久久久午夜 | 最新免费av在线 | 天天天干天天射天天天操 | 色天堂在线视频 | 狠狠gao | 国产精品久久电影网 | 国产视频精品久久 | 国产精品久久久久久妇 | 国产一区二区在线免费观看 | 国产精品麻豆99久久久久久 | 日韩在线中文字幕视频 | 日韩在线观看视频在线 | 国产伦精品一区二区三区四区视频 | 午夜精品一二三区 | 日韩午夜av | 日韩网站一区二区 | 亚洲国产精品99久久久久久久久 | 久久人人爽爽人人爽人人片av | 在线观看911视频 | 欧洲精品久久久久毛片完整版 | 999国内精品永久免费视频 | 精品九九久久 | 日韩精品免费 | 天天射天 | 亚洲欧美国产精品18p | 久久不卡日韩美女 | 亚洲综合色视频在线观看 | 国产精品门事件 | 国产精品毛片久久久久久久 | 精品成人a区在线观看 | 久久久久久久av | 超碰97免费 | 又黄又爽又色无遮挡免费 | 91精品视屏 | 丁香花在线视频观看免费 | 91av99| 最新不卡av| 日韩在线视频观看免费 | 99免费| 免费观看91视频 | 天天插日日插 | 成人免费观看电影 | 最近中文字幕大全 | 一区二区不卡在线观看 | 欧美精品在线一区二区 | 午夜av色| 日日爱视频 | 色综合天天干 | 国产中文字幕三区 | 狠狠操狠狠干天天操 | 国产69精品久久99不卡的观看体验 | 精品高清美女精品国产区 | 精品视频久久久久久 | 久久专区 | 91亚色视频 | 亚洲精品自拍视频在线观看 | 成人在线免费观看网站 | 亚州精品在线视频 | 国产精品一码二码三码在线 | 三级av免费观看 | 国产xvideos免费视频播放 | 日韩剧情| 国产精品久久久网站 | 国产一区二区精品在线 | 97av影院| 成人影视免费看 | 热九九精品 | 日本三级人妇 | 日韩电影一区二区三区在线观看 | 中文亚洲欧美日韩 | 欧美在线观看小视频 | 99视频一区| 免费福利片 | 中日韩男男gay无套 日韩精品一区二区三区高清免费 | 久久官网 | 日本三级不卡视频 | 友田真希x88av | 欧美精品一区二区免费 | 国产一区二区在线精品 | 久久蜜臀一区二区三区av | 欧美日韩国产二区 | 久久综合精品一区 | www.黄色网.com | 婷婷在线色 | 亚洲91在线| 久久这里只有精品9 | 在线观看视频你懂的 | av在线播放不卡 | 欧美精品视 | 国产精品一区二区精品视频免费看 | 四虎国产精品免费观看视频优播 | 久草观看视频 | 男女男视频 | 中文字幕在线一区二区三区 | 久久国产影视 | 又黄又刺激视频 | 99久久精品一区二区成人 | 久久久久成人精品亚洲国产 | av中文字幕在线播放 | 久久久免费观看 | 91视频3p | 国产一区二区午夜 | 91丨九色丨国产在线 | 久久国产区| 久草视频免费观 | 在线免费av观看 | 中国一 片免费观看 | 国产一区二区在线免费 | 国产精品免费一区二区三区在线观看 | 亚洲成人av影片 | 91亚洲视频在线观看 | 97色se| 免费日韩高清 | 天天射综合 | 在线中文字幕网站 | 99久久99久久精品国产片 | 国色天香在线观看 | 国产免费又黄又爽 | 久久久国产精品麻豆 | 国产精品v欧美精品v日韩 | 国产手机在线播放 | 最新av网站在线观看 | 在线免费高清一区二区三区 | 天天色草| 久久久精品视频成人 | 天天操夜夜摸 | 在线观看 国产 | 综合五月 | 亚洲人成人99网站 | 国产精品av免费在线观看 | 在线黄网站 | 欧美日韩一级久久久久久免费看 | 五月婷丁香 | 天天操天天爱天天爽 | 亚洲成aⅴ人在线观看 | 久久久国产一区二区三区 | 欧美日韩二区在线 | 欧美在线你懂的 | 狠狠狠色丁香婷婷综合久久88 | 成人国产精品久久久久久亚洲 | 99riav1国产精品视频 | av电影免费在线 | 狠狠伊人 | 色综合色综合色综合 | 青青草国产成人99久久 | 久久蜜桃av | 欧美成人中文字幕 | 麻豆视频在线播放 | 国产精品免费观看久久 | 91污污视频在线观看 | 激情婷婷色 | 波多野结衣在线观看一区 | 久久久久亚洲精品国产 | 精品毛片一区二区免费看 | 97国产精品 | 999国产 | 天天色 天天 | 香蕉国产91| 欧美精品一区二区三区四区在线 | 久久久久久美女 | 四虎影视成人 | 日韩久久久久久久 | 亚洲黄色成人av | 懂色av一区二区在线播放 | 日韩精品在线看 | www.综合网.com| 日韩黄色在线观看 | 在线视频亚洲 | 欧美精品首页 | 国产欧美精品一区aⅴ影院 99视频国产精品免费观看 | 久久婷婷国产色一区二区三区 | 在线观看亚洲视频 | 亚洲九九爱| 久久情网 | 成人精品影视 | 人人模人人爽 | 国产精品中文在线 | 国产福利精品视频 | 天天操天天操天天 | 日日干天天爽 | 欧美日韩免费在线视频 | 国产免费叼嘿网站免费 | 国产 在线观看 | 97人人艹| 免费观看完整版无人区 | 国产精品免费久久久久影院仙踪林 | 日日夜夜干 | 麻豆精品91 | 人人爽人人爽人人爽学生一级 | www.夜夜 | 8x成人免费视频 | 久久久电影 | 狠狠躁夜夜a产精品视频 | 日韩精品视频免费 | 久久艹久久 | 欧美日韩中文字幕在线视频 | 91成人免费看片 | 99久久激情视频 | 久久久高清免费视频 | 亚洲视频1区2区 | www.黄色片.com | 欧美成人基地 | 99视频精品 | 亚洲视频在线免费看 | 国产精品igao视频网入口 | 久久伊人八月婷婷综合激情 | 久久久久久久久久久影视 | 亚洲伊人av | 亚洲另类视频 | 久草视频免费在线播放 | 日本韩国在线不卡 | 欧美色综合久久 | 久草在线在线精品观看 | 国内外成人免费在线视频 | 91网址在线看 | 国产精品毛片一区二区 | 国产在线第三页 | 国产一卡在线 | 伊人热 | 97av影院| 国产无遮挡猛进猛出免费软件 | 综合激情久久 | 日韩视频区 | 欧美国产日韩在线视频 | 国产91粉嫩白浆在线观看 | 摸阴视频| 丁香五婷 | 久草在线最新免费 | 国产又粗又猛又黄又爽 | 又黄又爽又无遮挡的视频 | 韩国av一区二区三区 | 欧美成人a在线 | 在线观看国产日韩 | 91av网站在线观看 | 91在线视频免费观看 | 亚洲精品玖玖玖av在线看 | 色欧美综合 | 黄色一级在线视频 | 欧美五月婷婷 | 国产原创91 | 国产精品午夜在线 | 91中文在线视频 | 国产在线观看免 | 欧美韩国日本在线 | 人人澡人人添人人爽一区二区 | 亚洲一区黄色 | 青草视频在线播放 | 久久天天躁狠狠躁亚洲综合公司 | 亚州精品一二三区 | 免费精品人在线二线三线 | 国产精品美女久久久久久免费 | 一级黄毛片 | 91爱爱中文字幕 | 色视频网站免费观看 | 欧美成人一区二区 | 色综合久久久久综合99 | 亚洲在线激情 | 亚洲精品国产精品国自产在线 | 亚洲精品视频在线看 | 久久美女免费视频 | 日本爽妇网 | 91在线你懂的 | 超碰免费在线公开 | 国产不卡视频在线播放 | 黄色的网站在线 | 亚洲成人精品影院 | 97精产国品一二三产区在线 | 99国产一区 | 亚洲精品午夜国产va久久成人 | 激情伊人五月天久久综合 | 成年人视频在线免费 | 91在线视频观看免费 | 精选久久 | 中文字幕免费看 | 99在线视频网站 | 国产精品中文字幕在线播放 | 中文字幕中文字幕 | 激情偷乱人伦小说视频在线观看 | 美女网站在线播放 | 亚洲在线国产 | 少妇超碰在线 | 欧美最爽乱淫视频播放 | 天堂v中文 | 日韩在线视频播放 | 亚洲第一av在线播放 | 男女啪啪免费网站 | av在线中文 | 婷婷五天天在线视频 | 国产 色 | 一区二区精品 | 国产91在线观看 | 国产福利精品一区二区 | 久色伊人 | 精品伦理一区二区三区 | 久久精品播放 | 久草视频在线观 | 91在线porny国产在线看 | 日韩免费在线视频 | 麻豆免费视频 | 日韩电影在线一区 | 探花系列在线 | 亚洲精品国精品久久99热 | 亚洲精品黄色 | 探花视频免费观看高清视频 | 亚洲精品99久久久久中文字幕 | 日本三级大片 | 激情喷水 | 久草在线播放视频 | 蜜桃久久久 | 91一区二区三区在线观看 | 久久免费的视频 | 在线激情影院一区 | 99精品在线免费视频 | 欧美性极品xxxx做受 | 国产福利一区二区在线 | 午夜男人影院 | 亚洲毛片久久 | 操操日日 | 精品视频久久久久久 | 91免费看片黄 | 91高清在线 | 手机av电影在线 | 亚洲精品美女视频 | 天天操狠狠操网站 | 色99在线 | 久久久久北条麻妃免费看 | 国产亚洲视频在线免费观看 | 91亚洲国产 | 天天操天天射天天爽 | 精品国产伦一区二区三区观看说明 | 久久久久久久久久久免费av | 波多野结衣小视频 | 91日韩在线专区 | 久久久免费高清视频 | 超碰人人做| 五月导航 | 天天精品视频 | 亚洲丁香久久久 | 91视频 - 88av | 天天鲁天天干天天射 | 夜夜夜 | 国产二区视频在线 | 91精品啪在线观看国产 | 精品国产电影一区二区 | 亚洲va欧美| 免费特级黄毛片 | 国内成人精品视频 | 国产精品九九九九九九 | 成人黄色电影在线观看 | 国产视频精品久久 | 国产香蕉97碰碰久久人人 | 欧美日韩一区二区视频在线观看 | 久久综合五月天婷婷伊人 | 亚洲国产美女精品久久久久∴ | 久综合网 | 亚洲精品国产精品久久99 | 久久久久久久久久亚洲精品 | 在线视频欧美日韩 | av在线电影播放 | 日韩.com | 操综合| 在线免费国产视频 | 免费看在线看www777 | 国产91精品在线观看 | 国产一区成人在线 | 日本不卡一区二区三区在线观看 | 中文字幕麻豆 | 色综合天天综合网国产成人网 | 一本—道久久a久久精品蜜桃 | 国产视频亚洲 | 色婷婷激情 | 国产精品欧美久久 | 国产成人三级在线 | 日韩com| 最近中文字幕高清字幕在线视频 | 久久手机看片 | 日韩黄视频 | 午夜.dj高清免费观看视频 | 午夜视频在线网站 | 蜜桃av人人夜夜澡人人爽 | 成人av影视 | 国产精品久久久久久久久久不蜜月 | 91九色国产视频 | 日韩在线观看影院 | 91豆麻精品91久久久久久 | 最近中文字幕高清字幕在线视频 | 成人影片在线免费观看 | 国产激情小视频在线观看 | 精品福利视频在线观看 | 六月丁香婷 | 国产流白浆高潮在线观看 | 一区二区三区不卡在线 | 色婷婷久久| www.国产在线观看 | 国产婷婷精品 | 91丨九色丨蝌蚪丨老版 | 久久成年人网站 | 久久久久中文 | 人人澡人人爱 | 久久久久影视 | 国产欧美精品一区aⅴ影院 99视频国产精品免费观看 | 亚洲精品白浆高清久久久久久 | 久久电影日韩 | 麻豆一区在线观看 | 国产黄色片一级三级 | 色婷婷播放 | 一区二区三区精品在线 | 国产精品久久久久久吹潮天美传媒 | 色永久免费视频 | 日韩一区二区在线免费观看 | 国产人成看黄久久久久久久久 | 热久久精品在线 | 久久一区二区三区四区 | 最近日本字幕mv免费观看在线 | 99国产一区二区三精品乱码 | 国产精品久久久久久久久婷婷 | 欧美激情综合色 | 国产日韩在线一区 | 免费看wwwwwwwwwww的视频 久久久久久99精品 91中文字幕视频 | 久久久久免费看 | 99热国产在线 | 久久久精品成人 | 人人爽人人爽人人片 | 久久成年人视频 | 在线播放视频一区 | 婷婷国产在线 | 日本中文乱码卡一卡二新区 | 欧美日韩国产在线观看 | 中文理论片 | 婷婷久久亚洲 | 国产区在线视频 | 久久久久久久久久影视 | 香蕉在线视频观看 | 国产精品成人一区二区三区 | 精品麻豆入口免费 | 99国产情侣在线播放 | 婷婷丁香自拍 | 欧美男同视频网站 | 黄色免费网战 | 精品亚洲免费 | 成人免费在线电影 | 五月天久久综合网 | 一级黄色片在线播放 | 亚洲区精品 | 精品国产伦一区二区三区观看说明 | 天天操天天干天天操天天干 | 91夫妻自拍 | 国产69精品久久99的直播节目 | 国产精品专区在线观看 | 免费特级黄色片 | 精品美女久久久久久免费 | 91免费看黄色 | 婷婷播播网| 国产精品美女在线观看 | 国产精品一区二区免费在线观看 | 美女福利视频一区二区 | 国产精品一区二区果冻传媒 | 国产成人久久精品 | 亚洲成色777777在线观看影院 | 97天堂 | avove黑丝 | 草久在线观看视频 | 麻豆系列在线观看 | 超碰夜夜 | 国产一区二区三区免费观看视频 | 欧美va天堂在线电影 | 中文字幕中文字幕中文字幕 | 欧美巨大 | 欧美日韩视频 | 精品国产视频在线观看 | 国产视频1| 国产午夜精品久久久久久久久久 | 久久久久福利视频 | 中文在线字幕免费观 | 欧美成人猛片 | 日韩中文字幕网站 | 亚洲视频精选 | 99精品在线观看 | 中文字幕免费观看全部电影 | 久久成人在线视频 | 免费毛片一区二区三区久久久 | 伊人久在线 | 久久综合射 | 日韩电影中文字幕在线 | 色婷婷五| 麻豆综合网 | 日韩精品中文字幕在线播放 | 五月婷婷丁香在线观看 | 色婷婷成人 | 中文字幕影片免费在线观看 | av大片免费在线观看 | 超级碰99 | 欧美性猛片 | 久久99热精品这里久久精品 | 激情www| 欧美精品乱码久久久久 | av成年人电影 | 欧美九九视频 | 久久99精品国产99久久6尤 | 干天天| 91丨九色丨高潮 | 国产精品国产亚洲精品看不卡 | 激情网五月婷婷 | 黄色一级大片在线免费看国产一 | 国产一级特黄毛片在线毛片 | 久久网站最新地址 | 午夜黄色一级片 | 中文字幕免费成人 | 成人av一区二区在线观看 | 国产精品麻豆欧美日韩ww | av大全在线| 国产高h视频 | 91亚洲精品乱码久久久久久蜜桃 | 黄色亚洲在线 | 日韩av中文| av青草 | 91污污视频在线观看 | 黄色一级免费网站 | 婷婷精品国产一区二区三区日韩 | 欧美日韩国产精品爽爽 | 91av成人 | 在线色吧 | 日本中文字幕高清 | 国产精品久久久久三级 | 丁香六月婷婷开心婷婷网 | 欧美少妇的秘密 | 国产精品久久久久久久久久久不卡 | 久精品一区| 亚洲国产欧洲综合997久久, | 亚洲精品一区二区18漫画 | 欧美一级小视频 | 香蕉视频在线网站 | 92国产精品久久久久首页 | 日韩激情在线 | 九九99视频 | 成人亚洲网 | 国产 视频 高清 免费 | 国产精品岛国久久久久久久久红粉 | 五月婷婷在线视频观看 | 国产精品久久久久永久免费观看 | 四虎免费av| 三级动图| 天天爽夜夜爽人人爽曰av | 日本99久久| 午夜精品一区二区三区在线视频 | 国产精品久久久久永久免费看 | 网站免费黄色 | www免费网站在线观看 | 欧美黑人巨大xxxxx | 在线观看免费观看在线91 | 久草91视频| 亚洲一级黄色大片 | 欧美巨大荫蒂茸毛毛人妖 | 久久人人爽人人 | 欧美日本不卡视频 | 丁香五月亚洲综合在线 | 日韩伦理片一区二区三区 | 在线观看岛国 | 日日爽夜夜爽 | 麻豆视频免费看 | 天天操天天干天天综合网 | 久久九九精品 | av在线播放国产 | 91av视频 | 国产小视频在线免费观看视频 | 色综合久久66 | 中文字幕av免费 | 区一区二区三在线观看 | 98涩涩国产露脸精品国产网 | 国产亚洲精品久久久久久久久久久久 | 成人av免费在线 | 欧美日产一区 | 欧美精品亚洲精品日韩精品 | 在线观看国产福利片 | 久久久精品欧美 | 日韩美女av在线 | 欧美 日韩 性 | www黄| 日韩精品在线观看视频 | 国产黄色片一级 | 在线观看中文字幕2021 | 日韩欧美专区 | 波多野结衣在线观看一区 | 午夜精品久久久久久中宇69 | 久草在线在线视频 | 婷婷在线综合 | 国产二区视频在线观看 | 久久激情五月激情 | 亚洲深夜影院 | 亚洲精品乱码久久久久久蜜桃动漫 | 中文字幕网址 | 久久久精品二区 | 91九色porn在线资源 | 日本黄区免费视频观看 | 国产美女视频免费 | 天天色天天操天天爽 | av片在线看 | 激情久久综合网 | 久久超碰免费 | 人人网av| 成人a级黄色片 | 免费看污污视频的网站 | 日韩偷拍精品 | 午夜影视av | 色婷婷av一区 | 国语麻豆 | 欧美做受xxx | 六月丁香激情网 | 成人免费网视频 |