精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Java內(nèi)存與垃圾回收調(diào)優(yōu)

開(kāi)發(fā) 后端
要了解Java垃圾收集機(jī)制,先理解JVM內(nèi)存模式是非常重要的。今天我們將會(huì)了解JVM內(nèi)存的各個(gè)部分、如何監(jiān)控以及垃圾收集調(diào)優(yōu)。

要了解Java垃圾收集機(jī)制,先理解JVM內(nèi)存模式是非常重要的。今天我們將會(huì)了解JVM內(nèi)存的各個(gè)部分、如何監(jiān)控以及垃圾收集調(diào)優(yōu)。

Java(JVM)內(nèi)存模型

正如你從上面的圖片看到的,JVM內(nèi)存被分成多個(gè)獨(dú)立的部分。廣泛地說(shuō),JVM堆內(nèi)存被分為兩部分——年輕代(Young Generation)和老年代(Old Generation)。

年輕代

年輕代是所有新對(duì)象產(chǎn)生的地方。當(dāng)年輕代內(nèi)存空間被用完時(shí),就會(huì)觸發(fā)垃圾回收。這個(gè)垃圾回收叫做Minor GC。年輕代被分為3個(gè)部分——Enden區(qū)和兩個(gè)Survivor區(qū)。

年輕代空間的要點(diǎn):

  • 大多數(shù)新建的對(duì)象都位于Eden區(qū)。
  • 當(dāng)Eden區(qū)被對(duì)象填滿(mǎn)時(shí),就會(huì)執(zhí)行Minor GC。并把所有存活下來(lái)的對(duì)象轉(zhuǎn)移到其中一個(gè)survivor區(qū)。
  • Minor GC同樣會(huì)檢查存活下來(lái)的對(duì)象,并把它們轉(zhuǎn)移到另一個(gè)survivor區(qū)。這樣在一段時(shí)間內(nèi),總會(huì)有一個(gè)空的survivor區(qū)。
  • 經(jīng)過(guò)多次GC周期后,仍然存活下來(lái)的對(duì)象會(huì)被轉(zhuǎn)移到年老代內(nèi)存空間。通常這是在年輕代有資格提升到年老代前通過(guò)設(shè)定年齡閾值來(lái)完成的。

年老代

年老代內(nèi)存里包含了長(zhǎng)期存活的對(duì)象和經(jīng)過(guò)多次Minor GC后依然存活下來(lái)的對(duì)象。通常會(huì)在老年代內(nèi)存被占滿(mǎn)時(shí)進(jìn)行垃圾回收。老年代的垃圾收集叫做Major GC。Major GC會(huì)花費(fèi)更多的時(shí)間。

Stop the World事件

所有的垃圾收集都是“Stop the World”事件,因?yàn)樗械膽?yīng)用線程都會(huì)停下來(lái)直到操作完成(所以叫“Stop the World”)。

因?yàn)槟贻p代里的對(duì)象都是一些臨時(shí)(short-lived )對(duì)象,執(zhí)行Minor GC非??欤詰?yīng)用不會(huì)受到(“Stop the World”)影響。

由于Major GC會(huì)檢查所有存活的對(duì)象,因此會(huì)花費(fèi)更長(zhǎng)的時(shí)間。應(yīng)該盡量減少M(fèi)ajor GC。因?yàn)镸ajor GC會(huì)在垃圾回收期間讓你的應(yīng)用反應(yīng)遲鈍,所以如果你有一個(gè)需要快速響應(yīng)的應(yīng)用發(fā)生多次Major GC,你會(huì)看到超時(shí)錯(cuò)誤。

垃圾回收時(shí)間取決于垃圾回收策略。這就是為什么有必要去監(jiān)控垃圾收集和對(duì)垃圾收集進(jìn)行調(diào)優(yōu)。從而避免要求快速響應(yīng)的應(yīng)用出現(xiàn)超時(shí)錯(cuò)誤。

***代

***代或者“Perm Gen”包含了JVM需要的應(yīng)用元數(shù)據(jù),這些元數(shù)據(jù)描述了在應(yīng)用里使用的類(lèi)和方法。注意,***代不是Java堆內(nèi)存的一部分。

***代存放JVM運(yùn)行時(shí)使用的類(lèi)。***代同樣包含了Java SE庫(kù)的類(lèi)和方法。***代的對(duì)象在full GC時(shí)進(jìn)行垃圾收集。

方法區(qū)

方法區(qū)是***代空間的一部分,并用來(lái)存儲(chǔ)類(lèi)型信息(運(yùn)行時(shí)常量和靜態(tài)變量)和方法代碼和構(gòu)造函數(shù)代碼。

內(nèi)存池

如果JVM實(shí)現(xiàn)支持,JVM內(nèi)存管理會(huì)為創(chuàng)建內(nèi)存池,用來(lái)為不變對(duì)象創(chuàng)建對(duì)象池。字符串池就是內(nèi)存池類(lèi)型的一個(gè)很好的例子。內(nèi)存池可以屬于堆或者***代,這取決于JVM內(nèi)存管理的實(shí)現(xiàn)。

運(yùn)行時(shí)常量池

運(yùn)行時(shí)常量池是每個(gè)類(lèi)常量池的運(yùn)行時(shí)代表。它包含了類(lèi)的運(yùn)行時(shí)常量和靜態(tài)方法。運(yùn)行時(shí)常量池是方法區(qū)的一部分。

Java棧內(nèi)存

Java棧內(nèi)存用于運(yùn)行線程。它們包含了方法里的臨時(shí)數(shù)據(jù)、堆里其它對(duì)象引用的特定數(shù)據(jù)。你可以閱讀棧內(nèi)存和堆內(nèi)存的區(qū)別。

Java 堆內(nèi)存開(kāi)關(guān)

Java提供了大量的內(nèi)存開(kāi)關(guān)(參數(shù)),我們可以用它來(lái)設(shè)置內(nèi)存大小和它們的比例。下面是一些常用的開(kāi)關(guān):

 

VM 開(kāi)關(guān) VM 開(kāi)關(guān)描述
-Xms 設(shè)置JVM啟動(dòng)時(shí)堆的初始化大小。
-Xmx 設(shè)置堆***值。
-Xmn 設(shè)置年輕代的空間大小,剩下的為老年代的空間大小。
-XX:PermGen 設(shè)置***代內(nèi)存的初始化大小。
-XX:MaxPermGen 設(shè)置***代的***值。
-XX:SurvivorRatio 提供Eden區(qū)和survivor區(qū)的空間比例。比如,如果年輕代的大小為10m并且VM開(kāi)關(guān)是-XX:SurvivorRatio=2,那么將會(huì)保留5m內(nèi)存給Eden區(qū)和每個(gè)Survivor區(qū)分配2.5m內(nèi)存。默認(rèn)比例是8。
-XX:NewRatio 提供年老代和年輕代的比例大小。默認(rèn)值是2。

Java垃圾回收大多數(shù)時(shí)候,上面的選項(xiàng)已經(jīng)足夠使用了。但是如果你還想了解其他的選項(xiàng),那么請(qǐng)查看JVM選項(xiàng)官方網(wǎng)頁(yè)。

Java垃圾回收會(huì)找出沒(méi)用的對(duì)象,把它從內(nèi)存中移除并釋放出內(nèi)存給以后創(chuàng)建的對(duì)象使用。Java程序語(yǔ)言中的一個(gè)***優(yōu)點(diǎn)是自動(dòng)垃圾回收,不像其他的程序語(yǔ)言那樣需要手動(dòng)分配和釋放內(nèi)存,比如C語(yǔ)言。

垃圾收集器是一個(gè)后臺(tái)運(yùn)行程序。它管理著內(nèi)存中的所有對(duì)象并找出沒(méi)被引用的對(duì)象。所有的這些未引用的對(duì)象都會(huì)被刪除,回收它們的空間并分配給其他對(duì)象。

一個(gè)基本的垃圾回收過(guò)程涉及三個(gè)步驟:

  1. 標(biāo)記:這是***步。在這一步,垃圾收集器會(huì)找出哪些對(duì)象正在使用和哪些對(duì)象不在使用。
  2. 正常清除:垃圾收集器清會(huì)除不在使用的對(duì)象,回收它們的空間分配給其他對(duì)象。
  3. 壓縮清除:為了提升性能,壓縮清除會(huì)在刪除沒(méi)用的對(duì)象后,把所有存活的對(duì)象移到一起。這樣可以提高分配新對(duì)象的效率。

簡(jiǎn)單標(biāo)記和清除方法存在兩個(gè)問(wèn)題:

  1. 效率很低。因?yàn)榇蠖鄶?shù)新建對(duì)象都會(huì)成為“沒(méi)用對(duì)象”。
  2. 經(jīng)過(guò)多次垃圾回收周期的對(duì)象很有可能在以后的周期也會(huì)存活下來(lái)。

上面簡(jiǎn)單清除方法的問(wèn)題在于Java垃圾收集的分代回收的,而且在堆內(nèi)存里有年輕代和年老代兩個(gè)區(qū)域。我已經(jīng)在上面解釋了Minor GC和Major GC是怎樣掃描對(duì)象,以及如何把對(duì)象從一個(gè)分代空間移到另外一個(gè)分代空間。

Java垃圾回收類(lèi)型

這里有五種可以在應(yīng)用里使用的垃圾回收類(lèi)型。僅需要使用JVM開(kāi)關(guān)就可以在我們的應(yīng)用里啟用垃圾回收策略。讓我們一起來(lái)逐一了解:

  1. Serial GC(-XX:+UseSerialGC):Serial GC使用簡(jiǎn)單的標(biāo)記、清除、壓縮方法對(duì)年輕代和年老代進(jìn)行垃圾回收,即Minor GC和Major GC。Serial GC在client模式(客戶(hù)端模式)很有用,比如在簡(jiǎn)單的獨(dú)立應(yīng)用和CPU配置較低的機(jī)器。這個(gè)模式對(duì)占有內(nèi)存較少的應(yīng)用很管用。
  2. Parallel GC(-XX:+UseParallelGC):除了會(huì)產(chǎn)生N個(gè)線程來(lái)進(jìn)行年輕代的垃圾收集外,Parallel GC和Serial GC幾乎一樣。這里的N是系統(tǒng)CPU的核數(shù)。我們可以使用 -XX:ParallelGCThreads=n 這個(gè)JVM選項(xiàng)來(lái)控制線程數(shù)量。并行垃圾收集器也叫throughput收集器。因?yàn)樗褂昧硕郈PU加快垃圾回收性能。Parallel GC在進(jìn)行年老代垃圾收集時(shí)使用單線程。
  3. Parallel Old GC(-XX:+UseParallelOldGC):和Parallel GC一樣。不同之處,Parallel Old GC在年輕代垃圾收集和年老代垃圾回收時(shí)都使用多線程收集。
  4. 并發(fā)標(biāo)記清除(CMS)收集器(-XX:+UseConcMarkSweepGC):CMS收集器也被稱(chēng)為短暫停頓并發(fā)收集器。它是對(duì)年老代進(jìn)行垃圾收集的。CMS收集器通過(guò)多線程并發(fā)進(jìn)行垃圾回收,盡量減少垃圾收集造成的停頓。CMS收集器對(duì)年輕代進(jìn)行垃圾回收使用的算法和Parallel收集器一樣。這個(gè)垃圾收集器適用于不能忍受長(zhǎng)時(shí)間停頓要求快速響應(yīng)的應(yīng)用??墒褂?-XX:ParallelCMSThreads=n JVM選項(xiàng)來(lái)限制CMS收集器的線程數(shù)量。
  5. G1垃圾收集器(-XX:+UseG1GC) G1(Garbage First):垃圾收集器是在Java 7后才可以使用的特性,它的長(zhǎng)遠(yuǎn)目標(biāo)時(shí)代替CMS收集器。G1收集器是一個(gè)并行的、并發(fā)的和增量式壓縮短暫停頓的垃圾收集器。G1收集器和其他的收集器運(yùn)行方式不一樣,不區(qū)分年輕代和年老代空間。它把堆空間劃分為多個(gè)大小相等的區(qū)域。當(dāng)進(jìn)行垃圾收集時(shí),它會(huì)優(yōu)先收集存活對(duì)象較少的區(qū)域,因此叫“Garbage First”。你可以在Oracle Garbage-FIrst收集器文檔找到更多詳細(xì)信息。

Java垃圾收集監(jiān)控

我們可以使用命令行和圖形工具來(lái)監(jiān)控監(jiān)控應(yīng)用垃圾回收。例如,我使用Java SE下載頁(yè)中的一個(gè)demo來(lái)實(shí)驗(yàn)。

如果你想使用同樣的應(yīng)用,可以到Java SE下載頁(yè)面下載JDK 7和JavaFX演示和示例。我使用的示例應(yīng)用是Java2Demo.jar,它位于 jdk1.7.0_55/demo/jfc/Java2D 目錄下。這只是一個(gè)可選步驟,你可以運(yùn)行GC監(jiān)控命令監(jiān)控任何Java應(yīng)用。

我打開(kāi)演示應(yīng)用使用的命令是:

  1. pankaj@Pankaj:~/Downloads/jdk1.7.0_55/demo/jfc/Java2D$ java -Xmx120m -Xms30m -Xmn10m -XX:PermSize=20m -XX:MaxPermSize=20m -XX:+UseSerialGC -jar Java2Demo.jar 

jsat

可以使用jstat命令行工具監(jiān)控JVM內(nèi)存和垃圾回收。標(biāo)準(zhǔn)的JDK已經(jīng)附帶了jstat,所以不需要做任何額外的事情就可以得到它。

要運(yùn)行jstat你需要知道應(yīng)用的進(jìn)程id,你可以使用 ps -eaf | grep java 命令獲取進(jìn)程id。

  1. pankaj@Pankaj:~$ ps -eaf | grep Java2Demo.jar 
  2. 501 9582 11579 0 9:48PM ttys000 0:21.66 /usr/bin/java -Xmx120m -Xms30m -Xmn10m -XX:PermSize=20m -XX:MaxPermSize=20m -XX:+UseG1GC -jar Java2Demo.jar 
  3. 501 14073 14045 0 9:48PM ttys002 0:00.00 grep Java2Demo.jar 

從上面知道,我的Java應(yīng)用進(jìn)程id是9582?,F(xiàn)在可以運(yùn)行jstat命令了,就像下面展示的一樣:

  1. pankaj@Pankaj:~$ jstat -gc 9582 1000 
  2. S0C S1C S0U S1U EC EU OC OU PC PU YGC YGCT FGC FGCT GCT 
  3. 1024.0 1024.0 0.0 0.0 8192.0 7933.3 42108.0 23401.3 20480.0 19990.9 157 0.274 40 1.381 1.654 
  4. 1024.0 1024.0 0.0 0.0 8192.0 8026.5 42108.0 23401.3 20480.0 19990.9 157 0.274 40 1.381 1.654 
  5. 1024.0 1024.0 0.0 0.0 8192.0 8030.0 42108.0 23401.3 20480.0 19990.9 157 0.274 40 1.381 1.654 
  6. 1024.0 1024.0 0.0 0.0 8192.0 8122.2 42108.0 23401.3 20480.0 19990.9 157 0.274 40 1.381 1.654 
  7. 1024.0 1024.0 0.0 0.0 8192.0 8171.2 42108.0 23401.3 20480.0 19990.9 157 0.274 40 1.381 1.654 
  8. 1024.0 1024.0 48.7 0.0 8192.0 106.7 42108.0 23401.3 20480.0 19990.9 158 0.275 40 1.381 1.656 
  9. 1024.0 1024.0 48.7 0.0 8192.0 145.8 42108.0 23401.3 20480.0 19990.9 158 0.275 40 1.381 1.656 

jstat命令的***一個(gè)參數(shù)是每個(gè)輸出的時(shí)間間隔。每隔一秒就會(huì)打印出內(nèi)存和垃圾收集數(shù)據(jù)。

讓我們一起來(lái)對(duì)每一列的意義進(jìn)行逐一了解:

  • S0C和S1C:這一列展示了Survivor0和Survivor1區(qū)的當(dāng)前大?。▎挝籏B)。
  • S0U和S1U:這一列展示了當(dāng)前Survivor0和Survivor1區(qū)的使用情況(單位KB)。注意:無(wú)論任何時(shí)候,總會(huì)有一個(gè)Survivor區(qū)是空著的。
  • EC和EU:這些列展示了Eden區(qū)當(dāng)前空間大小和使用情況(單位KB)。注意:EU的大小一直在增大。而且只要大小接近EC時(shí),就會(huì)觸發(fā)Minor GC并且EU將會(huì)減小。
  • OC和OU:這些列展示了年老代當(dāng)前空間大小和當(dāng)前使用情況(單位KB)。
  • PC和PU:這些列展示了Perm Gen(***代)當(dāng)前空間大小和當(dāng)前使用情況(單位KB)。
  • YGC和YGCT:YGC這列顯示了發(fā)生在年輕代的GC事件的數(shù)量。YGCT這列顯示了在年輕代進(jìn)行GC操作的累計(jì)時(shí)間。注意:在EU的值由于minor GC導(dǎo)致下降時(shí),同一行的YGC和YGCT都會(huì)增加。
  • FGC和FGCT:FGC列顯示了發(fā)生Full GC事件的次數(shù)。FGCT顯示了進(jìn)行Full GC操作的累計(jì)時(shí)間。注意:相對(duì)于年輕代的GC使用時(shí)間,F(xiàn)ull GC所用的時(shí)間長(zhǎng)很多。
  • GCT:這一列顯示了GC操作的總累計(jì)時(shí)間。注意:總累計(jì)時(shí)間是YGCT和FGCT兩列所用時(shí)間的總和(GCT=YGCT+FGCT)。

jstat的優(yōu)點(diǎn),我們同樣可以在沒(méi)有GUI的遠(yuǎn)程服務(wù)器上運(yùn)行jstat。注意:我們是通過(guò) -Xmn10m 選項(xiàng)來(lái)指定S0C、S1C和EC的總和為10m的。

Java VisualVM及Visual GC插件

如果你想在GUI里查看內(nèi)存和GC,那么可以使用jvisualvm工具。Java VisualVM同樣是JDK的一部分,所以你不需要單獨(dú)去下載。

在終端運(yùn)行jvisualvm命令啟動(dòng)Java VisualVM程序。一旦啟動(dòng)程序,你需要從Tools->Plugins選項(xiàng)安裝Visual GC插件,就像下面圖片展示的。

安裝完Visual GC插件后,從左邊欄打開(kāi)應(yīng)用并把視角轉(zhuǎn)到Visual GC部分。你將會(huì)得到關(guān)于JVM內(nèi)存和垃圾收集詳情,如下圖所示。

Java垃圾回收調(diào)優(yōu)

Java垃圾回收調(diào)優(yōu)應(yīng)該是提升應(yīng)用吞吐量的***一個(gè)選擇。在你發(fā)現(xiàn)應(yīng)用由于長(zhǎng)時(shí)間垃圾回收導(dǎo)致了應(yīng)用性能下降、出現(xiàn)超時(shí)的時(shí)候,應(yīng)該考慮Java垃圾收集調(diào)優(yōu)。

如果你在日志里看到 java.lang.OutOfMemoryError: PermGen space錯(cuò)誤,那么可以嘗試使用 -XX:PermGen 和 -XX:MaxPermGen JVM選項(xiàng)去監(jiān)控并增加Perm Gen內(nèi)存空間。你也可以嘗試使用-XX:+CMSClassUnloadingEnabled并查看使用CMS垃圾收集器的執(zhí)行性能。

如果你看到了大量的Full GC操作,那么你應(yīng)該嘗試增大老年代的內(nèi)存空間。

全面垃圾收集調(diào)優(yōu)要花費(fèi)大量的努力和時(shí)間,這里沒(méi)有一塵不變的硬性調(diào)優(yōu)規(guī)則。你需要去嘗試不同的選項(xiàng)并且對(duì)這些選項(xiàng)進(jìn)行對(duì)比,從而找出最適合自己應(yīng)用的方案。

這就是所有的Java內(nèi)存模型和垃圾回收內(nèi)容。希望對(duì)你理解JVM內(nèi)存和垃圾收集過(guò)程有所幫助。

原文鏈接: journaldev 翻譯: ImportNew.com - 進(jìn)林

譯文鏈接: http://www.importnew.com/14086.html

 

 

責(zé)任編輯:張偉 來(lái)源: ImportNew
相關(guān)推薦

2015-07-06 10:14:25

Java垃圾回收實(shí)戰(zhàn)

2023-11-23 09:26:50

Java調(diào)優(yōu)

2012-01-09 16:53:36

JavaJVM

2010-09-26 11:22:22

JVM垃圾回收JVM

2012-01-10 11:19:35

JavaJVM

2012-01-09 17:06:16

JavaJVM

2012-08-06 09:26:19

Java虛擬機(jī)垃圾回收

2021-02-04 10:43:52

開(kāi)發(fā)技能代碼

2011-08-15 16:28:06

Cocoa內(nèi)存管理

2012-01-10 14:25:36

JavaJVM

2023-12-19 21:52:51

Go垃圾回收開(kāi)發(fā)

2017-08-04 10:53:30

回收算法JVM垃圾回收器

2017-02-21 16:40:16

Android垃圾回收內(nèi)存泄露

2009-09-02 09:23:26

.NET內(nèi)存管理機(jī)制

2020-08-10 17:49:25

JVM內(nèi)存溢出

2021-01-04 10:08:07

垃圾回收Java虛擬機(jī)

2023-02-26 11:50:04

Hbase程序Oracle

2017-04-25 14:39:55

JVM內(nèi)存Java

2020-12-10 16:11:17

Java開(kāi)發(fā)代碼

2010-12-13 11:14:04

Java垃圾回收算法
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

一区二区三区日韩| 免费观看在线色综合| 精品国产91乱码一区二区三区 | 亚州av一区| 91官网在线免费观看| 中国人体摄影一区二区三区| www.亚洲天堂.com| 久久久久久穴| 欧美成人精品不卡视频在线观看| 日韩无码精品一区二区| 午夜av成人| 亚洲综合一区二区三区| 欧美日韩在线观看一区二区三区| 国产精品久久久久久久免费看 | 69视频免费看| 欧美精品网站| 亚洲欧美制服另类日韩| 黄色三级视频在线播放| 亚洲最大成人| 一区二区三区精品在线| 日韩精品另类天天更新| 蜜臀久久99精品久久久| 蜜臀av性久久久久蜜臀aⅴ四虎 | 成人做爰视频www网站小优视频| 1024精品合集| 欧美一二三区| 欧美视频久久久| 国内外成人在线| 日韩美女激情视频| 精品视频一区二区在线观看| 99视频精品全部免费在线视频| 亚洲国产成人精品女人久久久 | 18视频在线观看娇喘| 欧美视频综合| 国产99久久久精品| 91久久久久久久| 国产一卡二卡三卡| 国产精品毛片在线看| 欧美精品在线免费观看| 国产18无套直看片| 欧美日韩伦理在线免费| 精品一区二区电影| 国产一级免费片| 日韩一区二区三区精品| 欧美精品日韩精品| 乌克兰美女av| 久久野战av| 欧美日韩国产精品一区| 亚洲 自拍 另类小说综合图区| 成人国产免费电影| 综合久久一区二区三区| 视频一区视频二区视频三区高| 日本韩国一区| 26uuu国产电影一区二区| 黄色91av| 亚洲 欧美 激情 小说 另类| av亚洲产国偷v产偷v自拍| 国产精品日韩高清| 黄色av中文字幕| 成人国产视频在线观看| 粉嫩av免费一区二区三区| 亚洲AV无码国产精品午夜字幕| 国产一区二区导航在线播放| 成人网在线免费看| 国产高中女学生第一次| 国产寡妇亲子伦一区二区| 亚洲综合第一页| 午夜精品久久久久久久91蜜桃| 国产精品一区二区三区网站| 999国产视频| 免费看日韩av| 久久久久久久久久美女| 日韩国产高清一区| 蜜桃视频在线观看www社区 | 成人97精品毛片免费看| 欧美一区二区三区视频| 中国免费黄色片| 亚欧日韩另类中文欧美| 中文字幕少妇一区二区三区| 来吧亚洲综合网| 欧美精品麻豆| 欧洲成人午夜免费大片| 中文av免费观看| 国产精品中文欧美| 好看的日韩精品视频在线| 日韩porn| 亚洲欧洲日韩综合一区二区| 黄色网在线视频| 午夜激情电影在线播放| 欧美视频中文字幕| 国产精品偷伦视频免费观看了| 激情小说亚洲色图| 中文字幕av一区二区三区谷原希美| 永久av免费网站| 国产亚洲一区在线| 国产精品一区二区久久| 亚洲精品人妻无码| 久久久精品国产99久久精品芒果| 在线观看一区二区三区三州 | 亲子乱一区二区三区电影 | 日本成人中文字幕在线视频| 亚洲va久久久噜噜噜久久天堂| 日韩一级片免费看| 中文字幕精品在线不卡| 欧美亚洲色图视频| 日韩在线观看不卡| 精品国精品国产| www亚洲色图| 影音先锋久久资源网| 国产精品视频久久久久| 三级小视频在线观看| 国产精品久久久久久久久果冻传媒| 黄网站色视频免费观看| 日韩精品一区二区三区av| 亚洲精品一区二区三区精华液| 精品少妇一区二区三区密爱| 亚洲欧美日本视频在线观看| 亚洲一区二区日本| 久久经典视频| 五月天婷婷综合| 日韩精品在线播放视频| 亚洲制服欧美另类| 欧美国产日韩一区二区三区| 亚洲一区二区三区网站| 91麻豆123| 777av视频| 一区二区三区亚洲变态调教大结局 | 国产精品久久久久久久久晋中| 欧美深夜福利视频| 亚洲啊v在线免费视频| 日日骚av一区| www.亚洲激情| 久久综合丝袜日本网| 欧美一级欧美一级| 秋霞午夜一区二区三区视频| 日韩专区在线观看| 在线免费观看日韩视频| 日本一区二区三区dvd视频在线| heyzo亚洲| 综合欧美亚洲| 欧美刺激性大交免费视频| 国产一区二区三区中文字幕| 中文字幕欧美国产| 国产情侣av自拍| 国产成人调教视频在线观看 | 农村妇女一区二区| 一本色道久久综合狠狠躁篇的优点 | 一本之道在线视频| 亚洲欧洲日韩| 91视频国产高清| gogo在线高清视频| 日韩欧美一区在线| 免费一级片在线观看| 国产成人免费高清| 999久久欧美人妻一区二区| 欧美国产中文高清| 欧美激情国内偷拍| 亚洲欧美高清视频| 午夜一区二区三区视频| 给我免费观看片在线电影的| 亚洲永久免费| 日韩精品国内| 日韩成人在线一区| 欧美另类69精品久久久久9999| 99精品在线视频观看| 亚洲最大色网站| 亚洲av永久无码精品| 久久精品人人做人人爽电影蜜月| 日本欧洲国产一区二区| 日本国产一区| 欧美大片大片在线播放| 天堂在线观看视频| 色一情一乱一乱一91av| 天天摸日日摸狠狠添| 国产一区 二区 三区一级| 中文字幕日韩精品无码内射| 久久午夜影院| 国产精品激情自拍| 久cao在线| 精品国产乱码久久久久久蜜臀| 欧美一级视频免费观看| 国产精品青草综合久久久久99| 午夜av中文字幕| 亚洲看片一区| 色综合影院在线观看| 久久久久久久久成人| 69久久夜色精品国产69| 日本不卡免费播放| 欧美日韩国产高清一区二区| 国产在线视频你懂的| 久久久久久久久久美女| 人妻换人妻仑乱| 午夜亚洲影视| 日韩精品福利片午夜免费观看| 国产96在线亚洲| 国产精品狼人色视频一区| 欧美一卡二卡| 亚洲一区二区精品| 黄色福利在线观看| 欧美日韩卡一卡二| 全部毛片永久免费看| 成人免费在线播放视频| 人妻丰满熟妇aⅴ无码| 激情文学综合丁香| 中国丰满人妻videoshd| 欧美激情1区2区3区| 日本日本精品二区免费| 高清日韩欧美| 亚洲精品免费av| 成人看片网站| 91精品国产777在线观看| 秋霞影院午夜丰满少妇在线视频| 亚洲国产精彩中文乱码av在线播放 | 在线激情免费视频| 亚洲激情在线视频| a天堂视频在线| 欧美影片第一页| 自拍偷拍欧美亚洲| 亚洲免费在线观看| www.涩涩爱| 久久伊99综合婷婷久久伊| 在线观看视频在线观看| 蜜臀av性久久久久蜜臀aⅴ | 国模无码国产精品视频| 国产日韩欧美一区二区三区综合| 欧美夫妇交换xxx| 国产伦精品一区二区三区视频青涩| 黄色片视频在线播放| 99av国产精品欲麻豆| 免费的av在线| 久久精品亚洲人成影院 | 欧美在线亚洲| 在线观看精品视频| 欧美色就是色| 日本一区高清在线视频| 亚洲三级网页| 黄色国产精品一区二区三区| 99久久香蕉| 国产精品亚洲欧美导航| 成人国产网站| 国产精品羞羞答答| 久久日本片精品aaaaa国产| 国产精品成人品| 午夜精品久久久久久久久久蜜桃| 亚洲2020天天堂在线观看| 狂野欧美性猛交xxxxx视频| 美日韩精品免费视频| 大地资源网3页在线观看| 久久亚洲春色中文字幕| 国产成人l区| 欧美男插女视频| 羞羞视频在线免费国产| 欧美日本黄视频| 国产精品偷拍| 久久久日本电影| 狼人综合视频| 国产aaa精品| 日韩一区二区三区免费视频| 国产精品麻豆va在线播放| 日韩第二十一页| 亚洲xxxxx性| 中文字幕亚洲在线观看| 国产精品一区二区a| 天海翼亚洲一区二区三区| 欧美国产综合视频| 日韩免费久久| 精品国产三级a∨在线| 国精品一区二区三区| 国产一级爱c视频| 伊人影院久久| 日韩无套无码精品| 九九国产精品视频| 亚洲精品成人无码毛片| 91麻豆国产精品久久| 免费福利视频网站| 最新热久久免费视频| 久久网中文字幕| 色综合天天综合给合国产| 亚洲一区二区激情| 精品国产一区二区三区不卡| 欧美精品少妇| 日韩性xxxx爱| av漫画网站在线观看| 国产精品av电影| 日韩第一区第二区| 久久日韩精品| 亚洲精品成人无限看| 青青草精品视频在线| 蜜臀久久99精品久久久画质超高清 | 久久99国产乱子伦精品免费| 久久性爱视频网站| 日本一区二区成人| 日韩av一二三区| 91极品美女在线| a天堂中文在线观看| 亚洲精选在线观看| 在线视频国产区| 国产成人精品电影久久久| 午夜视频一区二区在线观看| 欧美日韩在线一二三| 国模一区二区三区| 色悠悠久久综合网| 91色porny蝌蚪| 中文字幕五月天| 一本一道久久a久久精品综合蜜臀| 97人妻精品一区二区三区动漫| 亚洲级视频在线观看免费1级| eeuss影院www在线观看| 97色在线视频观看| 国产一区二区在线观| 日韩影院一区| 日韩午夜黄色| 在线免费黄色小视频| 欧美韩日一区二区三区| 亚洲男人第一av| 日韩一区二区高清| 伊人免费在线| 日本在线观看天堂男亚洲| 6080成人| 日韩视频 中文字幕| 免播放器亚洲一区| 国产精品成人无码免费| 天天亚洲美女在线视频| 亚洲xxxx天美| 久久久999国产| www.一区| 日韩经典在线视频| 麻豆亚洲精品| 欧美做受喷浆在线观看| 亚洲国产日韩a在线播放| 99产精品成人啪免费网站| 中文字幕av一区中文字幕天堂| 亚洲性色av| 国产在线一区二区三区播放| 欧美涩涩网站| 国产又黄又嫩又滑又白| 亚洲欧美日韩国产综合在线| 亚洲天堂国产精品| 正在播放亚洲1区| 欧美日韩精品一区二区三区视频| 欧美国产一二三区| 天堂精品中文字幕在线| 波多野结衣 在线| 黑人精品xxx一区一二区| 天堂在线免费av| 欧美一二三视频| 亚洲精品中文字幕99999| aa在线免费观看| 久久奇米777| 午夜精品免费观看| 一本色道久久88综合日韩精品| 日韩成人亚洲| 亚洲综合五月天| 久久国产麻豆精品| 黄色精品视频在线观看| 日韩午夜小视频| 欧美草逼视频| 久久久精彩视频| 日韩在线一二三区| www成人啪啪18软件| 91精品国产入口| 91超碰在线| 免费毛片一区二区三区久久久| 欧美亚洲在线| 欧美日韩国产黄色| 日韩小视频在线观看专区| 亚洲精品白浆| 欧美国产视频在线观看| 麻豆精品视频在线观看| 最新一区二区三区| 精品第一国产综合精品aⅴ| 天堂√中文最新版在线| 日本一区网站| 国产福利精品导航| 国产成人无码精品久久久久| 亚洲人成电影在线| 24小时成人在线视频| 亚洲色成人www永久在线观看| 91亚洲午夜精品久久久久久| 小泽玛利亚一区二区三区视频| 麻豆成人在线看| 欧美三级午夜理伦三级在线观看 | 国产一区二区三区在线观看免费 | 欧美亚洲国产怡红院影院| 精品美女在线观看视频在线观看| 99re在线播放| 葵司免费一区二区三区四区五区| 人妻互换一区二区激情偷拍| 精品国产一区二区国模嫣然| 素人啪啪色综合| 日本黄色片一级片| 欧美激情综合网| 欧美一级特黄aaaaaa大片在线观看| 日本精品视频在线播放| 女同性一区二区三区人了人一| 精品无码在线视频| 日韩一级成人av| 日韩欧美一区二区三区免费观看| 日本精品福利视频| 欧美国产欧美综合|