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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

垃圾收集器和内存分配策略

發(fā)布時間:2024/1/8 编程问答 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 垃圾收集器和内存分配策略 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

說明:本篇文章是在閱讀《深入理解Java虛擬機》過程中的一些筆記和分析,由于本人能力有限,如果有書寫錯誤的地方,歡迎各位大佬批評指正!我們互相交流,學習,共同進步!

該項目的地址:https://github.com/xiaoheng1/jvm-read

GC 需要考慮三件事:
(1)什么樣的對象需要回收?
(2)什么時候回收?
(3)怎么回收?

我們知道:程序計數(shù)器、棧、本地方法棧這三個區(qū)域的生命周期和線程是一樣的,所以這塊的內(nèi)存的回收可以不用考慮. 關(guān)于棧的內(nèi)存分配,棧中局部
變量表的大小,一般來說在編譯器就可知,所以這塊的內(nèi)存分配我們也可以不用考慮. 我們需要專注的是是對堆內(nèi)存和方法區(qū)內(nèi)存的分配和回收.

我們現(xiàn)在來看第一個問題,什么樣的對象需要被回收?

我們的答案肯定是沒有用的對象. 那如何確定這個對象是否有用了?引用計數(shù)法.

引用計數(shù)法的思路是:給對象中增加一個引用計數(shù)器,每當有一個地方引用它時,引用計數(shù)器 +1,當引用失效時,引用計數(shù)器 -1. 任務(wù)時候,引用
計數(shù)器為 0,則說明對象不可能在被使用.

引用計數(shù)器實現(xiàn)雖然簡單,但是無法解決相互引用的問題,例如:

A a = new A();
B b = new B();

a.instanceB = b;
b.instanceA = a;

a = null;
b = null;

那我們說下第二種思路:可達性分析. 可達性分析是說通過一系列稱為 “GC Roots” 的節(jié)點出發(fā),開始向下搜索,搜索走過的路徑稱為引用鏈,任意
一個對象到引用鏈不可達,則說明該對象不可用.

那 Java 中可作為 GC Roots 的節(jié)點有哪些了?
(1)虛擬機棧中引用的對象
(2)方法區(qū)中類靜態(tài)屬性所引用的對象
(3)方法區(qū)中常量所引用的對象
(4)本地方法棧中引用的對象

無論是通過引用計數(shù)器,還是可達性分析來判斷對象是存活,都和引用有關(guān). Java 中的引用可以分為四種:強引用、軟引用、弱引用、虛引用.
(1)強引用,類似這樣的 A a = new A(); a 持有的就是強引用. 強引用只要存在,GC 就不會回收被引用的對象.
(2)軟引用,用來描述一些有用,但是非必須的對象. 在系統(tǒng)將要發(fā)生內(nèi)存溢出異常之前,會把這些對象進行第二次回收,如果還是沒有足夠內(nèi)存,才會
拋出內(nèi)存溢出異常.
(3)弱引用,用來描述一些非必須的對象,只能存活到下一次發(fā)生 GC 之前. 也就是說,當發(fā)生 GC 時,無論系統(tǒng)中內(nèi)存是否足夠,這類對象都將被
回收.
(4)虛引用,它是最弱的一個引用,它只是用在對象被回收的時候,收到一個系統(tǒng)通知.

那我們在來說下,當發(fā)現(xiàn)一個對象到引用鏈沒有路徑時,這個對象是否必須被回收?其實不是的. 確定一個對象確實死亡有至少有兩次確認.
(1)該對象不可達
(2)在該對象不可達的基礎(chǔ)上做一次篩選,看該對象的 finalize() 方法是否被調(diào)用,如果該對象沒有重寫 finalize() 方法或者 finalize()
方法被調(diào)用,則宣告該對象死亡,可以進行回收.

如果該對象被判定需要執(zhí)行 finalize() 方法,那么該對象會被加入到 F-Queue 的隊列中,稍后由虛擬機建立的一個低優(yōu)先級的線程進行執(zhí)行.
finalize() 方法是對象逃脫死亡的最后一次機會. 如果對象在 finalize() 方法中完成自我救贖,那么它將被移除 “即將回收的集合”,否則,它
將等待被回收.

值得注意的是:finalize 方法只會被調(diào)用一次,同時該方法的執(zhí)行代價大,不確定性高,所以大家最好是不要使用該方法.

回收方法區(qū)

在 JDK1.8 以前,方法區(qū)在 HotSpot 虛擬機中被稱為永久代. 但是這并不意味著方法區(qū)不會發(fā)生垃圾回收,只是說回收的比率比新生代低.

永久代的垃圾回收主要回收兩部分:
(1)廢棄常量
(2)無用的類

回收廢棄常量:加入字面量 “hello world” 進入到了常量池,但是系統(tǒng)中沒有任何一個 String 對象叫做 “hello world”, 換句話說,沒有任何
一個字符串對象引用常量池中的 “hello world” 常量,也沒有其他地方引用這個字面量,那么在發(fā)生 GC 時,且有必要時,這個 “hello world”
將會被清理出常量池.

看到這塊是否很疑惑?什么叫做沒有其他地方引用這個字面量了?比如說:System.out.println(“hello world”) 這個算其他地方引用了這個
字面量嗎?還有就是什么叫有必要了?難道說發(fā)生 GC 后,還要滿足一定的條件才能回收這個廢棄常量嗎?

我覺得吧,對于 System.out.println(“hello world”) 這個應(yīng)該算在其他地方使用到了這個 “hello world” 常量.

new String(“hello world”) 會先檢查字符串常量池中是否存在 “hello world”,如果不存在的話,先在字符串常量池中創(chuàng)建 “hello world”,
然后在堆中創(chuàng)建一個 “hello world” 的字符串對象.

判定一個類是否是"無用類"的條件相對比較苛刻. 需要滿足如下條件:
(1)該類的所有實例都已經(jīng)被回收
(2)加載該類的 ClassLoader 已經(jīng)被回收
(3)該類對應(yīng)的 java.lang.Class 對象沒有在任何地方被引用.

滿足上面三個條件,只是說這個類可以被回收,它不像對象那樣,沒有就被回收. 是否對類進行回收,HotSpot 虛擬機提供了 -Xnoclassgc 參數(shù)進行
控制,還可以使用 -verbose:class 以及 -XX:+TraceClassLoading、-XX:+TraceClassUnLoading 查看類加載和卸載信息.

垃圾收集算法

(1)標記-清除算法:它分為兩個階段,第一階段標記,首先標記所有需要被回收的對象,第二階段回收被標記的對象. 雖然這個算法簡單,但是它的
標記和清除效率都不高,且會產(chǎn)生碎片.

(2)復制算法:將內(nèi)存空間分為兩塊,一塊用于存放新生對象,另一塊存放存活對象.當一塊內(nèi)存滿了后,就將存活的對象拷貝到另一塊上去,然后清空
以前那塊的內(nèi)存. 這個方法的好處不會產(chǎn)生內(nèi)存碎片,缺點是內(nèi)存利用率不高,每次只能使用一半的內(nèi)存.

新生代中,98% 的對象都是朝生夕死,所以復制算法劃分空間的時候,并不需要按照 1:1進行劃分.
Eden : From Survivor : To Survivor = 8 : 1 : 1.
每次使用的時候,使用 Eden + 一個 Survivor 的空間,換句話說,新生代的可利用空間在 90%,只有 10% 的空間會被浪費. 但是是不是有
一個疑惑?10% 的空間夠存放活著的對象嗎?所以這有一個擔保(老年代進行擔保). 如果活著的對象過多,一個 Survivor 空間不夠,那么這些對象
將直接通過分配擔保機制進入到老年代.

現(xiàn)在來說下為啥不使用 0 個 Survivor ?如果使用 0 個 Survivor 的話,那么新生代滿了后,觸發(fā)GC,活著的對象進入到老年代(可能這些對象
在下一次GC的時候就會被回收),很快,老年代也滿了,Full GC 發(fā)生的頻率大大加大.

為啥不是一個 Survivor 了?如果是一個 Survivor 的話?那 Eden 和 Survivor 和比例如何劃分了?假設(shè)設(shè)置為 8:1,那么 Survivor 的
空間很容易被填滿,觸發(fā) Minor GC. 這樣總體上沒有降低 Minor GC 的頻率,而且 GC 的時間間隔也不平均,如果將 Eden : Survivor 設(shè)置
為 1 : 1 的話,內(nèi)存利用率不高.

使用兩個 Survivor 的話,為啥就可以了?使用兩個的話,在觸發(fā) GC 時,會回收 Eden 和 Survivor 區(qū)域內(nèi)的對象,這樣活著的對象更加少,
所以效率更高.

(3)標記-整理算法:第一階段也是標記,第二階段是讓活著的對象都向一段移動,然后直接清理掉端邊界以外的內(nèi)存.

(4)分代收集算法:根據(jù)對象的特性,劃分為不同的代,比如新生代和老年代. 針對不同代對象的特性,采用不同的回收算法. 例如:對新生代采用
復制算法,對老年代采用標記-清除或標記-整理算法.

Hotspot 的算法實現(xiàn)

上面我們只是說了可達性分析的思路,在 HopSpot 中是如何做的了?

枚舉根節(jié)點.

現(xiàn)在很多應(yīng)用的方法區(qū)中就有好幾百兆,如果逐個檢查這里面的引用,那么將會是非常耗時的. 在進行可達性分析的時候,系統(tǒng)必然在某個時間點上
進行凍結(jié)(不能我在執(zhí)行可達性分析的時候,引用還是在變化,那么將無法獲得準確的分析).所以這點會導致 GC 進行時必須停止所有Java執(zhí)行程序
(Stop the World).

保守式 GC:如果 JVM 不記錄任何這種類型的數(shù)據(jù),那么它就無法區(qū)分內(nèi)存中某個位置上的數(shù)據(jù)到底應(yīng)當解讀為引用類型還是整型還是其他?這種
情況下實現(xiàn)出來的 GC 就是保守 GC. 所以在進行 GC 的時候,就需要遍歷整個內(nèi)存空間,看這是不是一個指向堆中的指針,雖然這種實現(xiàn)方式很
簡單,但是效率太低.

目前主流的 Java 虛擬機使用的都是準確式 GC,也就是說虛擬機應(yīng)當有辦法知道哪些地方存放著對象的引用. 在 HotSpot 的實現(xiàn)中,是使用一組
稱為 OopMap 的數(shù)據(jù)結(jié)構(gòu)來達到這個目的的,在類加載完成的時候,HotSpot 就把對象內(nèi)什么偏移量上是什么類型的數(shù)據(jù)計算出來,在 JIT 編譯
過程中,也會在特定位置記錄下棧和寄存器中那些位置是引用. 這樣,GC 在掃描時就可以直接得知這些信息了.

在 OopMap 的協(xié)助下,HotSpot 可以快速且準確地完成 GC Roots 枚舉,但是如果為每條指令都生成對應(yīng)的 OopMap,那將會需要大量的額外空間,
這樣 GC 的空間成本將會變得很高.

下面說下 oopmap. oopmap 有一個 off 字段,我的理解是從指令開始,到 off 為止,這個 oopmap 記錄的就是這個范圍內(nèi)的 oop(普通指針對象).

實際上,HotSpot 也確實沒有這么干,它只是在特定的位置記錄了這些信息,即程序執(zhí)行時并非所有地方都能停頓下來執(zhí)行 GC,只有達到安全點時才能
暫停. Safepoint 的選定即不能太少以至于讓 GC 等待時間太長,也不能過于頻繁以至于過分增大運行時的負荷.

所以安全點的選定基本上是以程序 是否具有讓程序長時間執(zhí)行的特征 為標準進行選定的. 因為每條指令執(zhí)行的時間都非常短,程序不太可能因為指令
流長度太長這個原因而過長時間運行,‘長時間執(zhí)行’ 的最顯著特征是指令序列復用,例如方法調(diào)用、循環(huán)跳轉(zhuǎn)、異常跳轉(zhuǎn)等,所以這些功能的指令才
會產(chǎn)生 Safepoint.

對于 Safepoint 另一個需要考慮的問題是,如何在發(fā)生 GC 時讓所有程序都到最近的安全點上在停頓下來. 這里有兩種方案可供選擇:搶先式中斷和
主動式中斷,其中搶先試中斷不需要線程的執(zhí)行代碼主動去配合,在 GC 發(fā)生時,首先把所有線程全部中斷,如果發(fā)現(xiàn)有線程中斷的地方不在安全點上,
就恢復線程,讓它跑到安全點上. 現(xiàn)在幾乎沒有虛擬機采用搶先式中斷來暫停線程從而響應(yīng) GC 事件.

主動式中斷的思想是當 GC 需要中斷線程的時候,不直接對線程操作,僅僅簡單地設(shè)置一個標志,各個線程執(zhí)行時主動的去輪詢這個標志,發(fā)現(xiàn)中斷
標志為真時就自己中斷掛起. 輪詢標志的地方和安全點是重合的,另外在加上創(chuàng)建對象需要分配內(nèi)存的地方.

安全區(qū)域

上面其實有一個問題,針對執(zhí)行程序這個可以完美實現(xiàn),但是如何針對不執(zhí)行的程序了?(例如:等待獲取鎖),對于這種情況,就需要安全區(qū)了.

安全區(qū)域是指在一段代碼片段之中,引用關(guān)系不會發(fā)生變化. 在這個區(qū)域中的任意地方開始 GC 都是安全的. 我們也可以把 Safe Region 看成是
Safepoint 的擴展.

當線程執(zhí)行到 Safe Region 中的代碼時,首先標識自己已經(jīng)進入了 Safe Region,那樣,當在這段時間里 JVM 要發(fā)起 GC 時,就不用管標識自己為
Safe Region 狀態(tài)的線程了. 在線程要離開 Safe Region 時,它要檢查系統(tǒng)是否以及完成了根節(jié)點的枚舉(或者整個 GC 過程),如果完成了,則
繼續(xù)執(zhí)行,否則等待收到可以安全離開 Safe Region 的信號位置.

垃圾收集器

Serial + CMS
Serial + Serial Old

ParNew + CMS
ParNew + Serial Old

Parallel Scavenge + Serial Old
Parallel Scavenge + Parallel Old

G1

Serial 收集器是最基本、發(fā)展歷史最悠久的收集器,這是一個單線程收集器,它在進行垃圾收集的時候,必須暫停其他所有的工作線程,直到它
收集結(jié)束. 它是新生代收集器,采用復制算法. 它是虛擬機 Client 模式下的首選.

關(guān)于虛擬機 client 模式和 server 模式.

如果主機至少含有 2 cpu 和至少 2 GB 內(nèi)存的話,會以 server 模式啟動,否則以 client 模式啟動.
server 模式和 client 模式的區(qū)別在哪里了?

1.server 模式和 C2 編譯器共同運行,更注重編譯的質(zhì)量,啟動速度慢,但運行效率高,使用與服務(wù)器環(huán)境.
2.client 模式和 C1 編譯器共同運行,更注重編譯速度,啟動速度快,更適合在客戶端的版本下,針對 GUI 進行優(yōu)化.

Serial Old 是老年代收集器,采用標記-整理算法. 主要意義在于給 Client 模式下的虛擬機使用. 如果在 Server 模式下,一種用途是在
JDK1.5 以及之前的版本中與 Parallel Scavenge 收集器搭配使用,另一種用途是作為 CMS 收集器的后備預(yù)案,在并發(fā)收集發(fā)生
Concurrent Mode Failure 時使用.

ParNew 其實是 Serial 收集器的多線程版本,除了使用多線程進行垃圾收集外,其余行為和 Serial 一樣. 它是虛擬機 Server 端首選的新生
代收集器.默認情況下,它開啟的收集線程數(shù)與 CPU 的數(shù)量相同,可以使用 -XX:ParallelGCThreads 參數(shù)來限制垃圾收集的線程數(shù).

并行:指多條垃圾收集線程并行工作,但是此時用戶線程任然處于等待狀態(tài)
并發(fā):指用戶線程和垃圾收集線程同時執(zhí)行(但不一定是并行,可能交替執(zhí)行)

Parallel Scavenge 是新生代收集器,它與其他收集器的不同點在于,其他收集器的關(guān)注點是盡可能地縮短垃圾收集時用戶線程的停頓狀態(tài),而
Parallel Scavenge 的關(guān)注點是達到一個可控制的吞吐量. 所謂吞吐量就是 CPU 用于運行用戶代碼的時間與 CPU 總消耗時間的比值,即:
吞吐量 = 運行用戶代碼時間 / (運行用戶代碼時間 + 垃圾收集時間)

Parallel Old 是 Parallel Scavenge 收集器的老年代版本,使用多線程和’標記-整理’算法.

CMS 是一種以獲得最短回收停頓時間為目標的收集器. 它是基于標記-清除算法實現(xiàn)的. 它的運作過程相對于前面幾種收集器更加復雜.
(1)初始標記
(2)并發(fā)標記
(3)重新標記
(4)并發(fā)清除

初始標記和重新標記這兩步仍然需要 STD, 初始標記只是標記 GC Root 能夠直接關(guān)聯(lián)到的對象,速度很快,并發(fā)標記階段就進行 GC Roots Tracing
的過程,而重寫標記階段則是為了修正并發(fā)標記期間因用戶程序繼續(xù)運行而導致標記產(chǎn)生變動的那一部分對象的標記記錄.

CMS 收集器對 CPU 資源很敏感,在并發(fā)階段,它雖然不會導致用戶線程停頓,但是會因為占用了一部分 CPU 資源而導致應(yīng)用程序變慢,總吞吐量會降低.
CMS 默認的啟動的回收線程數(shù)是(CPU 數(shù)量+3)/4,也就是當 CPU 在 4 個以上時,并發(fā)回收時垃圾收集線程不少于 25%的CPU資源. 但是當 CPU 資源
不足 4 個時,CMS 對用戶程序的影響很大,為了應(yīng)對這種情況,虛擬機提供了一種 i-CMS,就是在并發(fā)標記和清理階段,讓 GC 線程和用戶線程交替
運行.
CMS 收集器無法處理浮動垃圾,可能出現(xiàn) Concurrent Mode Failure 失敗而導致另一次 Full GC 的產(chǎn)生. 由于 CMS 并發(fā)清除階段程序運行
自然還會產(chǎn)生新的垃圾,這部分垃圾出現(xiàn)在標記過程后,CMS 無法在本次收集中處理掉它們,只好留待下一次處理. 這部分垃圾就被稱為"浮動垃圾".
也是由于垃圾收集階段用戶線程還需要運行,那也就還需要預(yù)留有足夠的內(nèi)存空間給用戶線程使用,因此 CMS 收集器不能像其他收集器那樣等到老年代
幾乎完全被填滿了再進行收集,需要預(yù)留一部分空間提供并發(fā)收集時的程序運行使用. CMS 收集器當老年代使用了 68% 的空間后就會被激活. 也可以
通過設(shè)置 -XX:CMSInitiatingOccupancyFraction 的值來提高觸發(fā)百分比.如果 CMS 運行期間預(yù)留的內(nèi)存無法滿足程序需要,就會出現(xiàn)一次
“Concurrent Mode Failure” 失敗,這時虛擬機將啟動后背預(yù)案:臨時啟用 Serial Old 收集器來重新進行老年代的垃圾收集.
CMS 是基于標記-清除算法的收集器,收集結(jié)束后會產(chǎn)生大量空間碎片,為了解決這個問題,CMS 收集器提供了 -XX:+UseCompactArFullCollection
開關(guān)參數(shù) 用于在 CMS 收集器頂不住要進行 FullGC 時開啟內(nèi)存碎片合并整理過程.
現(xiàn)在雖然解決了碎片化的問題,但是停頓時間不能太長,虛擬機提供了另一個參數(shù) -XX:CMSFullGCsBeforeCompaction,這個參數(shù)用于設(shè)置執(zhí)行多少
次不帶壓縮的 Full GC 后,跟著來一次帶壓縮的(默認值為 0,表示酶促進入 Full GC 時都要進行碎片整理)

GC 收集器
G1 是一款面向服務(wù)端應(yīng)用的垃圾收集器,G1 收集器的特點
1.并行與并發(fā):G1能重復利用多 CPU、多核環(huán)境下的硬件優(yōu)勢,使用多個 CPU 來縮短 STW 停頓時間,部分其他收集器原本需要停頓 Java 線程來執(zhí)行
GC 動作,G1 收集器任然可以通過并發(fā)的方式讓 Java 程序繼續(xù)執(zhí)行.
2.分代收集:雖然 G1 可以不需要其他收集器配合就能管理整個 GC 堆,但它能夠采用不同的方式去處理新創(chuàng)建的對象和已經(jīng)存活了一段時間、熬過
多次 GC 的舊對象以獲取更好的收集效果.
3.空間整合: 與 CMS 標記-清除 算法不同,G1 整體來看是基于 標記-整理 算法實現(xiàn)的. 從局部(兩個 Region 之間)上來看,是基于賦值算法實現(xiàn)
的,但無論如何,這兩種算法都意味著 G1 在運行期間不會產(chǎn)生內(nèi)存碎片.
4.可預(yù)測的停頓:這是 G1 相對于 CMS 的另一大優(yōu)勢,降低停頓時間是 G1 和 CMS 共同的關(guān)注點,但 G1 除了追求停頓外,還能建立可預(yù)測的停頓
時間模型,能讓使用者明確指定在一個長度為 M 毫秒的時間片內(nèi),消耗在垃圾收集上的時間不得超過 N 毫秒,這幾乎已經(jīng)是實時 Java 的垃圾收集器
的特征了.

G1 之前的其他收集器進行收集的范圍都是整個新生代或老年代,而 G1 不是這樣,使用 G1 收集器時,Java 堆的內(nèi)存布局就與其他收集器有很大差別,
它將整個Java 堆劃分為多個大小相等的獨立區(qū)域,雖然還保留有新生代和到年代的概念,但新生代和老年代不再是物理隔離的了,它們都是一部分
Region 的集合.

G1 收集器之所以能簡歷可預(yù)測的停頓時間模型,是因為它可以有計劃地避免在整個 Java 堆中進行全區(qū)域的垃圾收集. G1 跟蹤各個 Region 里面的
垃圾堆積的價值大小(回收所得空間以及回收所需要時間的經(jīng)驗值),在后臺維護一個優(yōu)先列表,每次根據(jù)允許的收集時間,優(yōu)先回收價值最大的 Region
(這也就是 Garbage-First 名稱的來由). 這種使用 Region 劃分內(nèi)存空間以及有優(yōu)先級的區(qū)域回收方式,保證了 G1 收集器在有限的時間內(nèi)可以
獲取盡可能高的收集效率.

在 G1 收集器中,Region 之間的對象引用以及其他收集器中的新生代和老年代之間的對象引用,虛擬機都是使用 Remembered Set 來避免全堆掃描
的,G1 中每個 Region 都有一個與之對應(yīng)的 Remembered Set,虛擬機發(fā)現(xiàn)程序在堆 Reference 類型的數(shù)據(jù)進行寫操作時,會產(chǎn)生一個 Write Barrier
暫時中斷寫操作,檢查 Reference 引用的對象是否處于不同的 Region 之中(在分代的例子中就是檢查是否老年代中的對象引用了新生代中的對象),
如果是,便通過 CardTable 把相關(guān)引用信息記錄到被引用對象所屬的 Region 的 Remembered Set 中. 當進行內(nèi)存回收時,在 GC 根節(jié)點的枚舉
范圍中加入 Remembered Set 即可保證不對全堆掃描也不會有遺漏.

初始標記
并發(fā)標記
最終標記
篩選回收

初始階段僅僅只是標記一下 GC Roots 能直接關(guān)聯(lián)到的對象,并修改 TAMS(Next Top Ar Mark Start) 的值,讓下一階段用戶程序并發(fā)運行時,
能在正確可用的 Region 中創(chuàng)建新對象,這一階段需要停頓線程,但耗時很短. 并發(fā)標記階段是從 GC Root 開始對堆中對象進行可達性分析,找出
存活的對象,這階段耗時較長,但可與用戶程序并發(fā)執(zhí)行. 最終標記階段則是為了修正在并發(fā)標記期間因用戶程序繼續(xù)運作而導致標記產(chǎn)生變動的那一
部分記錄,虛擬機將這段時間內(nèi)對象變化記錄在線程 Remembered Set Logs 里,最終標記階段需要把 Remembered Set Logs 的數(shù)據(jù)合并到
Remembered Set 中,這階段需要停頓線程,但是可并發(fā)執(zhí)行. 最后在篩選回收階段首先對各個 Region 的回收價值和成本進行排序,根據(jù)用戶所
期望的 GC 停頓時間來指定回收計劃.

理解 GC 日志

33.125: [GC [DefNew: 3324K->152K(3712K), 0.0025925 secs] 3324K->152K(11904K), 0.0031680 secs]

100.667: [Full GC [Tenured: 0K->210K(10240K), 0.0149142 secs] 4603K->210K(19456K), [Perm : 2999K->2999K(21248K)], 0.0150007 secs] [Times: user=0.01 sys=0.00, real=0.02 secs]

33.125 和 100.667 代表了 GC 發(fā)生的時間,這個數(shù)字的含義是從 Java 虛擬機啟動以來經(jīng)過的毫秒數(shù)
[GC 和 [Full GC 說明了這次垃圾收集的停頓類型,而不是用來區(qū)分新生代 GC 還是老年代 GC 的. 如果有 Full,則說明此次 GC 是發(fā)生了 STW.
[DefNew、[Tenured、[Prem 表示 GC 發(fā)生的區(qū)域.
在 Serial 收集器中,新生代的名稱為 Default New Generation
如果是 ParNew 收集器,新生代的名稱為 ParNew -> Parallel New Generation
如果是 Parallel Scavenge,則新生代名稱為 PSYoungGen

3324K->152K(3712K) 含義是 GC 前該內(nèi)存區(qū)域已使用容量 -> GC 后該內(nèi)存區(qū)域已使用容量(該內(nèi)存區(qū)域總?cè)萘?
3324K->152K(11904K) 表示 GC 前 Java 堆已使用容量 -> GC 后 Java 堆已使用容量(Java 堆總?cè)萘?.
0.0031680 表示該內(nèi)存區(qū)域 GC 所占用的時間,單位是秒.
user, sys, real 分別代表用戶態(tài)消耗的 CPU 時間、內(nèi)核態(tài)消耗的 CPU 時間和操作空開始到結(jié)束所經(jīng)過的墻鐘時間.
墻鐘時間包括各種非運算的等待耗時,例如等待磁盤 I/O、等待線程阻塞,而 CPU 時間不包括這些耗時,但是當系統(tǒng)有多核 CPU或者多核的話,多線程
會疊加這些時間,所以讀到的 user 或 sys 時間超過 real 是正常的.

內(nèi)存分配與回收策略

Java 技術(shù)體系鎖提倡的自動內(nèi)存管理最終解決兩個問題:給對象分配內(nèi)存以及回收分配給對象的內(nèi)存.

對象主要分配在新生代的 Eden 區(qū)上,如果啟動了本地線程分配緩沖,將按線程優(yōu)先在 TLAB 上分配. 少數(shù)情況下也可能會直接分配在老年代中.
分配規(guī)則并不是百分百固定的,其細節(jié)取決于當前使用的哪一種垃圾收集器組合,還有虛擬機中與內(nèi)存相關(guān)的參數(shù)的設(shè)置.

1.對象優(yōu)先在 Eden 區(qū)上分配.
在大多數(shù)據(jù)情況下,對象在新生代 Eden 區(qū)中分配,當 Eden 區(qū)沒有足夠的空間進行分配時,虛擬機將發(fā)起一次 Minor GC.
虛擬機提供了 -XX:PrintGcDetails 這個收集器日志參數(shù),告訴虛擬機在發(fā)生垃圾收集行為時打印內(nèi)存回收日志,并且在退出的時候輸出當前的內(nèi)存
各個區(qū)域分配情況.

新生代 GC(Minor GC) 發(fā)生在新生代的垃圾收集動作,因為 Java 對象大多是朝生夕死,所以 Minor GC 非常頻繁,一般回收速度較快.
老年代 GC(Major GC / Full GC) 發(fā)生在老年代的 GC,出現(xiàn)了 Major GC, 經(jīng)常會伴隨至少一次 Minor GC(但非絕對,在 Parallel Scavenge
收集器的收集策略里就有直接進行 Major GC 的策略選擇過程). Major GC 事務(wù)速度一般比 Minor GC 慢 10 倍以上.

2.大對象直接進入老年代

所謂大對象,指的是需喲啊大量連續(xù)內(nèi)存空間的 Java 對象,最典型的大對象就是那種很長的字符串以及數(shù)組, 經(jīng)常出現(xiàn)大對象容易導致內(nèi)存還有不少
空間時就提前觸發(fā)垃圾收集以獲取足夠連續(xù)的空間來 “安置” 他們.
虛擬機提供了一個 -XX:PretenureSizeThreshold 參數(shù),令大于這個設(shè)置值的對象直接在老年代分配. 這樣做的目的是避免在 Eden 區(qū)以及在兩個
Survivor 區(qū)之間發(fā)生大量的內(nèi)存復制.

PretenureSizeThreshold 參數(shù)只對 Serial 和 ParNew 兩款收集器有效,Parallel Scavenge 收集器不認識這個參數(shù).

3.長期存活的對象將進入老年代

虛擬機給每個對象定義了一個對象年齡(Age) 計數(shù)器, 如果對象在 Eden 出生并經(jīng)過第一次 Minor GC 后任然存活,并且能被 Survivor 容納的話,
將被移動到 Survivor 空間中,并且對象年齡設(shè)為 1. 對象在 Survivor 區(qū)中每熬過一次 Minor GC,年齡就增加 1 歲,當它的年齡增加到一定
程度(默認為 15 歲),就將會被晉升到老年代中. 對象晉升老年代的年齡閾值,可以通過參數(shù) -XX:MaxTenuringThreshold 設(shè)置.

4.動態(tài)對象年齡判定

如果在 Survivor 空間中相同年齡所有對象的總和大于 Survivor 空間的一般,年齡大于或等于該年齡的對象就可以直接進入老年代,無需等到
MaxTenuringThreshold 中要求的年齡.

5.空間分配擔保

在發(fā)送 Minor GC 之前,虛擬機會先檢查老年代最大可用的連續(xù)空間是否大于新生代所有對象總空間,如果這個條件成立,那么 Minor GC 是安全的,
如果不成立,則虛擬機會查看 HandlePromotionFailure 設(shè)置值是否允許擔保失敗,如果允許,那么會繼續(xù)檢查老年代最大可用連續(xù)空間是否大于
歷次晉升到老年代對象的平均大小,如果大于,將嘗試著進行一次 Minor GC,盡管這次 Minor GC 是有風險的;如果小于,或者
HandlePromotionFailure 設(shè)置不允許冒險,那么這時也好改為進行一次 Full GC.

新生代采用了復制收集算法,但是為了內(nèi)存利用率,只使用其中一個 Survivor 空間來作為輪換備份,因此當出現(xiàn)大量對象在 Minor GC 后任然存活
的情況(最極端的情況在 Minor GC 后新生代所有對象都存活),就需要老年代進行分配擔保,把 Survivor 無法容納的對象直接進入老年代.

在 JDK 6 Update 24 之后,HandlePromotionFailure 這個參數(shù)不會再影響到虛擬機的空間分配擔保策略,代碼中已不再使用該參數(shù).

總結(jié)

以上是生活随笔為你收集整理的垃圾收集器和内存分配策略的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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

天天综合网 天天综合色 | 久久亚洲综合色 | 亚洲v欧美v国产v在线观看 | 久久的色 | 99精品黄色片免费大全 | 免费激情网| 又黄又爽的免费高潮视频 | 久久香蕉国产精品麻豆粉嫩av | 久久久精品免费观看 | 午夜精品999 | 国产欧美中文字幕 | 国产精品美女网站 | 国产午夜一区二区 | 欧美激情精品久久久久久变态 | 亚洲一级黄色片 | 亚洲精品玖玖玖av在线看 | 波多野结衣视频一区 | 女人高潮一级片 | 成人av免费网站 | 婷婷5月色 | 久久久久激情视频 | 91伊人久久大香线蕉蜜芽人口 | 亚洲一区日韩在线 | 超级碰碰免费视频 | 最新av在线免费观看 | 欧洲一区精品 | 国产又粗又猛又爽又黄的视频先 | 国产精品18久久久久久久 | 免费观看全黄做爰大片国产 | 午夜视频日本 | 国产精品亚洲精品 | 日韩在线电影一区二区 | 五月婷婷视频 | 911精品美国片911久久久 | 久久在线精品 | 91精品久久久久久综合乱菊 | 99久久毛片| 久久99精品久久久久蜜臀 | 日韩精品一区二区三区三炮视频 | 韩国精品一区二区三区六区色诱 | av黄在线播放 | 午夜久久福利视频 | 中文字幕日本在线 | 天堂在线免费视频 | 91资源在线免费观看 | 日韩三区在线观看 | 午夜手机看片 | 日韩精品免费一区二区 | av经典在线| 欧美 日韩 国产 中文字幕 | 日韩免费电影网 | 一级欧美日韩 | 天天干天天天天 | 亚洲精品国产精品国自产观看浪潮 | 午夜久久影院 | 91中文字幕在线 | 一区二区日韩av | 天堂网在线视频 | 91午夜精品| 蜜臀aⅴ国产精品久久久国产 | 在线中文字幕视频 | 中文资源在线官网 | 国产91精品高清一区二区三区 | 亚洲女人天堂成人av在线 | 国产在线va | 男女免费av| 国产精品欧美在线 | 狠狠干天天| 国产三级国产精品国产专区50 | 精品久久片| av一级在线观看 | 在线色资源 | 欧美精品在线免费 | 亚洲国产精品成人精品 | 狠狠操狠狠插 | 蜜桃视频色| 在线观看黄污 | 久久久久综合 | 免费午夜网站 | 98超碰人人 | 久视频在线 | 日韩视频免费 | 婷婷久久亚洲 | 国产主播大尺度精品福利免费 | 久久久久久久99精品免费观看 | 超碰人人舔 | 久久久久久久久久国产精品 | 天堂av免费看 | 免费在线中文字幕 | 日韩精品一区二区在线视频 | 天天艹天天 | 久久国产品 | 91亚洲国产成人 | 中文字幕在线观看第一区 | 亚洲精品乱码久久久久久按摩 | 久久综合狠狠综合久久狠狠色综合 | a级国产片 | 97成人免费| 精品国产诱惑 | 日狠狠 | 97电影在线 | 久久久精品视频成人 | 狠狠干五月天 | 夜夜操综合网 | 国产日韩精品一区二区三区 | 久青草影院 | 五月婷婷综合在线视频 | av免费播放| 国产成人l区 | 精品免费观看视频 | 激情在线网 | 中文字幕色婷婷在线视频 | 久久看片网站 | 欧美日产在线观看 | 91精品国产91 | 丁香六月激情婷婷 | www日韩精品 | 黄色国产区 | 亚洲国产成人精品在线观看 | 免费观看性生交大片3 | av在线日韩| 狠狠做深爱婷婷综合一区 | 亚洲精品无 | 午夜电影久久久 | 国产成人在线播放 | 免费看v片 | 999久久久久久久久6666 | 久久免费在线视频 | 国产精品久久久久婷婷 | 色在线高清 | 婷婷在线看 | 免费能看的黄色片 | 激情av资源| 91av原创 | 日韩精品一区二区在线视频 | 日日夜夜天天久久 | 国偷自产视频一区二区久 | 91高清免费看 | 国产成人精品a | 96精品视频 | 欧美污网站 | 亚洲永久精品在线观看 | 天天操天天干天天操天天干 | 久久艹在线观看 | 九热精品 | 在线播放一区 | 在线观看91久久久久久 | 91九色精品女同系列 | 国产99一区 | 日本系列中文字幕 | 久久久www| 国产免费美女 | 国产成人三级一区二区在线观看一 | 精品女同一区二区三区在线观看 | 天天干天天操人体 | 中文字幕 国产视频 | av免费片| 91av小视频| 日日干网址 | 中文字幕国产亚洲 | 久久成人国产精品入口 | 久久乐九色婷婷综合色狠狠182 | 久久久久在线视频 | 国产午夜影院 | 成 人 黄 色 视频播放1 | 久久国产精品精品国产色婷婷 | 国产成人一区三区 | 日韩高清精品免费观看 | 在线观看第一页 | 九九免费精品视频 | 天天草天天爽 | 911免费视频 | 欧美激情xxxx | 91亚洲欧美 | 免费电影一区二区三区 | 亚洲视频国产 | 国产成人精品一区二区三区网站观看 | 天天操天天干天天干 | 91精品婷婷国产综合久久蝌蚪 | 中文字幕国产视频 | 亚洲午夜精品一区二区三区电影院 | 丁香婷婷久久久综合精品国产 | 久久久久欧美精品999 | 亚洲精区二区三区四区麻豆 | 91精品一区二区三区久久久久久 | 亚洲无在线 | 99精品影视 | 狠狠色狠狠色综合系列 | 天堂av在线7| 99视频国产精品免费观看 | 国产高清免费观看 | 手机在线永久免费观看av片 | 久久精品91久久久久久再现 | 国产一二区视频 | 麻豆网站免费观看 | 一区二区三区国产精品 | 国产精彩视频一区二区 | 久久久久成 | 激情丁香综合 | 亚洲精品国产免费 | 黄色影院在线观看 | 99热这里只有精品国产首页 | av黄色在线播放 | 欧美日韩一区二区三区免费视频 | 国产1区2区3区精品美女 | 九九热视频在线 | 亚洲.www| 亚洲三级av | 91夫妻视频 | 国产资源免费 | 国产精品av在线免费观看 | 福利片视频区 | 亚洲影视九九影院在线观看 | 久久综合九色欧美综合狠狠 | 日韩免费看的电影 | 天天操,夜夜操 | 高潮久久久久久久久 | 亚洲欧洲美洲av | 91精品久久香蕉国产线看观看 | www.天天射| 精品久久久久久国产91 | 亚洲精品中文在线观看 | 天天拍夜夜拍 | 又污又黄网站 | 怡春院av | 欧美日韩在线视频观看 | 欧美日韩在线视频免费 | 网站在线观看日韩 | 日韩av视屏| 九九久久影院 | 精品1区二区 | 免费人成网 | 懂色av一区二区三区蜜臀 | 在线观看视频99 | 国产精品久久久久久一区二区三区 | 99中文视频在线 | 成人久久电影 | 97综合网 | 色姑娘综合天天 | 成人av电影网址 | 久久涩涩网站 | 国产网站色 | 亚洲欧洲精品久久 | 久久久污 | 色视频网站在线观看一=区 a视频免费在线观看 | 国产一区视频在线观看免费 | 超碰激情在线 | 色中射 | 97香蕉久久超级碰碰高清版 | 亚洲免费观看在线视频 | 久久久久女教师免费一区 | 高清精品视频 | 国产一区二区三区午夜 | 久草在线视频免费资源观看 | 91精品国产入口 | 夜夜躁天天躁很躁波 | 国产丝袜网站 | 青草草在线视频 | 成人欧美一区二区三区黑人麻豆 | 国产高清永久免费 | 欧美日韩在线播放一区 | 精品一区二区在线播放 | 狠狠操导航 | 亚洲精品免费在线播放 | 四虎海外影库www4hu | 99久久这里只有精品 | 国产精品久久99 | 日韩伦理一区二区三区av在线 | 婷婷伊人综合亚洲综合网 | 免费在线观看成人小视频 | 精品91在线 | 久久久久免费网站 | 成人观看 | 天堂中文在线播放 | 97视频在线观看免费 | 国产资源免费在线观看 | 综合天堂av久久久久久久 | 国产黄色成人 | 99久久久国产精品 | 久久久久美女 | 日韩精品不卡在线观看 | 亚洲综合在线五月 | 香蕉久草在线 | 在线免费国产视频 | 成人免费视频在线观看 | 国产资源免费在线观看 | 在线观看免费黄视频 | 国产亚洲精品久久网站 | 99久久精品国产系列 | av在线成人| av一级片网站 | 亚洲色图 校园春色 | 夜夜躁日日躁狠狠久久88av | 亚洲无线视频 | 天天干天天拍天天操天天拍 | 欧美人人| 国产在线不卡 | 国产美女在线观看 | 国产精品私拍 | 久久久人人人 | 久久久久久久久久电影 | 久久婷婷五月综合色丁香 | 中文字幕日本特黄aa毛片 | 成人在线视频网 | 91资源在线观看 | 久久九九影视网 | 亚洲人成免费网站 | 99久热在线精品 | 亚洲精品99久久久久久 | 欧美一级片在线 | 99视频在线观看一区三区 | 欧美日韩性视频 | 国产精品igao视频网入口 | 天天看天天干天天操 | 欧美日韩在线精品 | 99热在线国产精品 | 三级av中文字幕 | 欧美午夜精品久久久久 | 亚洲专区欧美 | 国产精品福利在线 | 国产精品视频免费观看 | 婷婷在线色| 日韩性久久 | 国产美女视频网站 | 黄色精品久久久 | 超碰免费av | 国产大尺度视频 | 日韩久久精品一区 | 精品中文字幕在线 | 999抗病毒口服液 | 午夜在线免费观看 | 日本aaa在线观看 | 欧洲一区二区在线观看 | 欧美精品国产综合久久 | 国产成人一区二区三区在线观看 | 天堂视频一区 | 久久99久久99精品免观看粉嫩 | 天天干天天玩天天操 | 手机在线黄色网址 | 久久国产片| 国产精品99久久免费黑人 | 一区二区电影网 | 在线观看黄a | 精品九九久久 | av在线电影网站 | 久久综合给合久久狠狠色 | 91精品国产乱码在线观看 | 国产欧美久久久精品影院 | 亚洲国产精品电影在线观看 | 久久免费国产精品1 | 在线欧美中文字幕 | 综合婷婷丁香 | 视频一区久久 | 精品一区二区精品 | 91精品国产91p65 | 国产黑丝一区二区 | 五月色丁香| 国产精品久久久久aaaa九色 | 91久久国产自产拍夜夜嗨 | 国产婷婷一区二区 | 国产18精品乱码免费看 | 国产美女精品人人做人人爽 | 亚洲一区二区观看 | 中国一区二区视频 | 一本大道久久精品懂色aⅴ 五月婷社区 | 天天干天天搞天天射 | 91亚洲精品久久久蜜桃网站 | 精品一区av | 九九九视频在线 | 久久久网址| 91精品久久久久久久91蜜桃 | 人人爱人人舔 | 亚洲视频电影在线 | 欧美一级免费在线 | 国产精品毛片一区视频 | 久草精品视频在线播放 | 亚洲国产人午在线一二区 | 亚州欧美视频 | 久久精品这里热有精品 | 中文字幕精品www乱入免费视频 | 中文字幕在线影视资源 | 一区二区三高清 | 国产一区欧美二区 | 国产精品一区二区美女视频免费看 | 99热国产在线 | 国产三级国产精品国产专区50 | 波多野结衣在线视频一区 | 日日夜夜噜 | 97av色| av性网站 | 草久在线播放 | 久久黄色片 | 国产中文字幕av | 97超碰免费 | 碰超在线97人人 | 五月婷婷导航 | 激情婷婷亚洲 | 九九99视频| 一区二区三区在线电影 | 国产精品扒开做爽爽的视频 | 在线观看免费视频你懂的 | 国产日韩精品在线 | 久久久亚洲国产精品麻豆综合天堂 | 亚洲精品影视在线观看 | 日韩一级成人av | 99精彩视频在线观看免费 | 日韩欧美综合精品 | 国产涩涩在线观看 | 激情久久久久久久久久久久久久久久 | 亚洲国产精品99久久久久久久久 | 日韩午夜大片 | 97人人模人人爽人人少妇 | www.狠狠干| www.香蕉| 在线小视频国产 | se视频网址 | 免费看的黄色录像 | 特级a老妇做爰全过程 | 精品国产一区二区三区久久久蜜月 | 在线视频在线观看 | 国产欧美日韩一区 | 懂色av一区二区在线播放 | 日韩三级在线 | 97超碰人人爱 | 性色av免费在线观看 | 国产日韩欧美在线播放 | 国产精品永久久久久久久www | 97超碰免费在线 | 国产你懂的在线 | 成年人国产精品 | 精品久久久久久电影 | 国产亚洲欧美日韩高清 | 国产精品18久久久久久不卡孕妇 | 黄污污网站 | 亚洲国产人午在线一二区 | 91麻豆精品国产91久久久久久久久 | 国产手机在线精品 | 国产精品热视频 | 欧洲一区精品 | 中文在线8新资源库 | 麻豆激情电影 | 99久久精品国产欧美主题曲 | 亚洲精品午夜视频 | 在线观看视频你懂得 | 日韩视频1区 | 伊人日日干 | 一区二区三区高清 | 国产精品一区二区av麻豆 | 一级黄色av | 日韩高清 一区 | 久草在线91 | 四虎永久免费在线观看 | 五月天婷婷在线观看视频 | 伊人天天干 | 欧美日韩在线视频观看 | 欧美成人xxx | 精品黄色片 | 国产成人精品亚洲日本在线观看 | 久草视频免费在线播放 | 又色又爽又激情的59视频 | 天天射天天做 | 人人模人人爽 | 丁香视频在线观看 | 日本久久成人中文字幕电影 | 久久免费国产精品1 | 黄色福利网 | 国产美女精品视频 | 国产成人精品一区二区三区在线 | 国内精品久久久久久久久久 | 特级黄色一级 | www.五月天| 国产成人在线免费观看 | 99久久99热这里只有精品 | 国产手机在线视频 | 精品国产乱码久久久久久1区2匹 | 成人免费视频播放 | 麻豆视频在线免费观看 | zzijzzij日本成熟少妇 | 欧美日韩精品综合 | a天堂一码二码专区 | 久久r精品 | 色视频在线看 | 日韩欧美一区二区三区在线观看 | 香蕉视频在线播放 | 久久久精品免费观看 | 日本中文字幕在线播放 | 国产护士hd高朝护士1 | 国产精品一区二区在线观看免费 | 久久99网| 91av视频网| 亚洲电影一区二区 | 中文字幕视频免费观看 | 精品亚洲视频在线观看 | 国产h在线播放 | 国产女v资源在线观看 | 99久久激情视频 | 在线电影 一区 | 99热超碰在线 | 91九色老| 激情av在线播放 | 久久乱码卡一卡2卡三卡四 五月婷婷久 | 中文在线字幕免费观 | 精品国产成人在线 | 波多野结衣在线播放一区 | 日韩欧美精品一区二区三区经典 | 久久国产精品视频观看 | 久久激情婷婷 | 免费看av在线 | 999成人国产| 国产日韩精品在线观看 | 亚洲国产69| 日韩欧美国产视频 | 国产一区二区三区四区在线 | 国产精品美女视频网站 | 午夜视频一区二区 | 日韩精品一区二区三区水蜜桃 | 99热国产在线 | 国产成人精品一区二区三区 | 五月天国产精品 | 97电影网手机版 | 日韩中文字幕免费视频 | 国产一级二级视频 | 亚洲国产精品成人va在线观看 | 久久久久免费看 | 久久久久久久久久毛片 | 免费男女羞羞的视频网站中文字幕 | 激情五月播播久久久精品 | 欧美日韩在线第一页 | 成人av在线一区二区 | 最近中文字幕mv免费高清在线 | 91看片淫黄大片一级在线观看 | 一本—道久久a久久精品蜜桃 | 国产精品嫩草影院9 | 一区二区激情视频 | 日韩在线视频观看免费 | 国产成人一区二区三区免费看 | 黄色精品免费 | a视频在线观看 | 久久综合九色综合欧美就去吻 | 日韩欧美有码在线 | 麻豆久久| 狠狠干成人 | 片网址 | 五月开心激情 | 91丨九色丨国产女 | 日韩精品一区电影 | 天天做夜夜做 | 免费高清在线观看电视网站 | 992tv在线成人免费观看 | 中文字幕av一区二区三区四区 | 亚洲影视九九影院在线观看 | 亚洲在线视频观看 | 久久亚洲电影 | 中文字幕在线观看免费观看 | 激情久久网 | 国产粉嫩在线观看 | 一区二区三区视频在线 | 国产999久久久| 成人中文字幕av | 国产精品久久综合 | 中文字幕在线字幕中文 | 天天曰天天爽 | 黄色大片视频网站 | 亚洲男人天堂a | 69国产成人综合久久精品欧美 | 在线免费观看羞羞视频 | 在线v片| 久久精品亚洲精品国产欧美 | 日韩欧美一区二区在线 | 亚洲一级电影 | 成人黄色电影在线播放 | 高潮毛片无遮挡高清免费 | 欧美精品久久久久久久久久丰满 | 日韩欧美在线综合网 | 色婷婷成人网 | 精品久久国产精品 | 999久久国产精品免费观看网站 | 精品伦理一区二区三区 | 国产精品久久久久久久久久久杏吧 | 久草在线免费看视频 | 久久九九影视 | 久久精品综合网 | 伊人天堂av| 成人网在线免费视频 | 免费观看福利视频 | 97精品国自产拍在线观看 | 亚洲精品午夜久久久久久久 | 人人爽人人爽人人爽学生一级 | 国产一区二区三区久久久 | 国产精品一区二区麻豆 | 草久在线观看 | 干av在线 | 天天操天天操天天操天天操天天操天天操 | 成人毛片网| 蜜臀av麻豆 | 欧美色图亚洲图片 | 97av.com | 欧美另类xxx | 91完整版观看 | 91精品1区2区 | 国产精品一区二区中文字幕 | 99久久成人 | 免费观看一区 | 天天色天天操天天爽 | 一区二区三区在线看 | 美女黄频免费 | 99久久99久久精品免费 | 精品专区一区二区 | 国产资源免费在线观看 | 日韩精品极品视频 | 黄色资源网站 | japanesexxxxfreehd乱熟| 久久精品视频2 | 97天天综合网 | 久久网站免费 | 2018亚洲男人天堂 | 天天操夜夜摸 | 久久亚洲婷婷 | 亚洲成人精品av | 免费观看日韩 | 成人动漫精品一区二区 | 1024在线看片 | 国产精品美女久久久久久久 | 91最新视频 | 久草手机视频 | 亚洲播播 | 国产一区二区在线观看视频 | 国产精品第10页 | 国产福利在线不卡 | 五月天色丁香 | 国产精品岛国久久久久久久久红粉 | 国产一区二区三区在线免费观看 | 日本最新一区二区三区 | 九九热免费观看 | 粉嫩av一区二区三区入口 | 99免费在线视频观看 | 丁香六月在线 | 2021国产视频| 又黄又色又爽 | 在线视频1卡二卡三卡 | 免费在线看成人av | 成人免费观看视频网站 | 97视频在线免费观看 | 99久久99久久综合 | 中文亚洲欧美日韩 | 日韩高清在线一区二区三区 | 综合网五月天 | 99久久精品免费看国产一区二区三区 | 天天曰视频 | 日韩网站一区 | 欧美日韩国产一区二区在线观看 | av三级在线播放 | 色小说在线 | 久久久久免费精品视频 | 三级免费黄| 黄色免费网站 | 在线观看一| 国产日本三级 | 日本中文字幕在线看 | 在线观看日韩一区 | 51精品国自产在线 | 综合av在线 | 亚洲特级片 | 国产色啪| 精品一区 精品二区 | 亚洲综合欧美日韩狠狠色 | 伊人婷婷在线 | 久久se视频| 亚洲视频中文 | 久久专区| 久久韩国免费视频 | 少妇自拍av| 黄色成人毛片 | 伊人五月天.com | 日韩区在线观看 | 国产精品高潮呻吟久久av无 | 国产一区二区手机在线观看 | 黄色亚洲精品 | 久久久久久片 | 色综合天天天天做夜夜夜夜做 | 国产精品久久久久毛片大屁完整版 | 激情五月婷婷综合 | 免费观看一级特黄欧美大片 | 丰满少妇麻豆av | 狠狠成人 | 亚洲国产片 | 狠狠ri | 国产精品99久久久久久小说 | 日韩成人精品在线观看 | 国产精品ⅴa有声小说 | 91网页版在线观看 | 九九九在线观看视频 | 久久精品视频在线免费观看 | 在线观看日本高清mv视频 | 亚洲欧美国产视频 | 久草网首页 | 午夜久久| 91免费观看网站 | 亚色视频在线观看 | 国产91成人在在线播放 | www日韩视频 | 17婷婷久久www| 四虎影视成人永久免费观看亚洲欧美 | 欧美 日韩 视频 | 中文超碰字幕 | 99国产精品一区二区 | 亚洲精品视频在线免费播放 | 国产啊v在线 | 人人草在线视频 | 一区 二区电影免费在线观看 | 欧美夫妻生活视频 | 久久久免费观看完整版 | 人人超碰在线 | 在线观看中文字幕第一页 | 久久99精品久久久久久 | 天天骚夜夜操 | 综合精品久久久 | 国产视频中文字幕在线观看 | 日韩大片在线播放 | 亚洲女同videos| 久久精品视频2 | 国产另类xxxxhd高清 | 国产一级片在线播放 | 中文字幕在线观看2018 | 美州a亚洲一视本频v色道 | 精品国产一区二区三区久久久 | 日韩一区视频在线 | 国产精品第一页在线观看 | 国产精品2018 | 九色91福利| 婷婷亚洲最大 | 成人av电影免费在线播放 | 五月婷婷影院 | 亚洲最新在线视频 | 日韩精品免费一区二区三区 | 亚洲一区二区三区miaa149 | 久久精品视频在线 | 日韩免费一区二区在线观看 | 久草在线手机观看 | 成人91在线 | 五月综合 | 亚洲视频免费 | 麻豆成人小视频 | 天天干,狠狠干 | 成人禁用看黄a在线 | 国产精品原创av片国产免费 | 亚洲aaa毛片 | 日日爽天天爽 | 性色xxxxhd | 久久一区二区免费视频 | 在线观看视频黄色 | 韩国一区二区三区在线观看 | 国产精品不卡 | 日日爱av | 麻豆mv在线观看 | 九九综合九九综合 | 国产精品999久久久 久产久精国产品 | 国产69精品久久久久久 | 亚洲国产大片 | 婷婷综合在线 | 亚洲欧洲精品在线 | japanesexxxhd奶水| 玖玖在线播放 | av网站在线观看播放 | 九九热国产 | 在线国产能看的 | 日韩 在线a | 亚洲尺码电影av久久 | 在线观看日韩精品 | 久久久久久久久久久黄色 | 中文字幕黄色av | 99在线观看视频网站 | 日韩在线播放av | 69精品人人人人 | 视频 天天草 | 亚欧日韩成人h片 | 色福利网 | 欧美精品久久久久久久久免 | 亚洲精品视频在线观看免费 | 婷婷中文字幕综合 | 黄色av网站在线免费观看 | 制服丝袜一区二区 | 在线观看一级 | 久久九九免费 | 97色婷婷| 天天操天天爱天天爽 | 97av影院| 欧美日韩成人 | 夜夜操狠狠操 | 97超碰免费在线 | 日韩欧美观看 | 涩涩伊人 | 91丨九色丨蝌蚪丨老版 | www天天干com| 亚洲精品97 | 草 免费视频| 少妇性xxx | 免费久久精品视频 | 一级一片免费视频 | 在线免费观看黄色小说 | 91新人在线观看 | 精品亚洲国产视频 | www激情com | 日韩3区 | 国产69精品久久久久久久久久 | 久久综合狠狠狠色97 | 91女神的呻吟细腰翘臀美女 | 国产精品激情偷乱一区二区∴ | 国产美女视频免费观看的网站 | 国产成人一二三 | 天天天天天天天天操 | 亚洲免费视频在线观看 | a天堂中文在线 | 亚洲精品一区二区精华 | 国产 成人 久久 | 91精品国产92久久久久 | 婷婷av资源 | 久久精品久久99 | 欧美日韩亚洲第一 | 粉嫩av一区二区三区免费 | 国产精品18久久久久vr手机版特色 | 亚洲黄色免费网站 | 九九免费在线看完整版 | 国产裸体bbb视频 | 久草在线久草在线2 | 少妇bbb搡bbbb搡bbbb | 天天综合网天天综合色 | 91丨九色丨91啦蝌蚪老版 | 久久国产精品一区二区三区 | 人人讲| 色就是色综合 | 久久久久免费视频 | 久久综合久久综合这里只有精品 | 国产黄色免费在线观看 | 色综合久久中文字幕综合网 | 有码一区二区三区 | 日韩免费二区 | 亚洲欧美日本国产 | 97色在线| 亚洲成人动漫在线观看 | 五月开心婷婷网 | 毛片网站免费在线观看 | 美女av免费| 在线日本看片免费人成视久网 | 激情久久久久 | 97超级碰碰 | 国产成人av网 | 欧美日韩国产免费视频 | 高清不卡一区二区在线 | 国产又黄又硬又爽 | 伊人国产在线观看 | 国产精品久久久久久久午夜片 | 亚洲资源在线网 | 中文字幕成人av | 国产精品99精品久久免费 | 欧美日韩视频在线 | 亚洲成a人片综合在线 | 一区二区精品在线观看 | 日日夜夜噜噜噜 | 久久精品人 | 黄色亚洲精品 | a在线观看免费视频 | 亚洲精品国产第一综合99久久 | 色姑娘综合| 91av在线视频播放 | 一区二区三区动漫 | 色偷偷人人澡久久超碰69 | 人人超在线公开视频 | 国产成人精品综合久久久 | 亚洲欧洲一级 | 日韩一区二区三区观看 | 日韩av成人免费看 | 久草网视频 | 97人人艹| 亚洲草视频 | 麻豆一区在线观看 | 少妇做爰k8经典 | 免费网址在线播放 | 亚洲精品久久久久中文字幕二区 | 天干啦夜天干天干在线线 | 国产精品免费一区二区三区 | 日韩欧美在线第一页 | 久久久久高清毛片一级 | 99精品视频在线观看免费 | 91麻豆精品久久久久久 | 又黄又爽免费视频 | 亚洲精品免费在线 | 999久久国产 | 亚洲欧美日韩一区二区三区在线观看 | 国产精品一区二区在线观看免费 | 香蕉视频久久 | 久久久精品视频成人 | 久久艹艹 | 国产精品成人免费一区久久羞羞 | 激情久久久 | 中文在线最新版天堂 | 国产录像在线观看 | 一区视频在线 | 日日夜夜操av | 97超碰精品 | 精品视频成人 | 亚洲国产精彩中文乱码av | 亚洲涩涩涩涩涩涩 | 五月天com | 一级黄色免费 | 91久久丝袜国产露脸动漫 | 国产三级国产精品国产专区50 | 中文字幕888| 亚洲精品高清视频在线观看 | 日日干干夜夜 | 精品国产一区二区三区不卡 | 欧美在线日韩在线 | 日韩精品中文字幕在线 | 亚洲高清在线观看视频 | 在线观看午夜 | 999久久久国产精品 高清av免费观看 | 97超碰福利久久精品 | 蜜臀久久99静品久久久久久 | 99久久久久免费精品国产 | 2024国产精品视频 | 亚洲精品视频久久 | 亚洲人成网站精品片在线观看 | 久久美女高清视频 | 国产日韩精品在线观看 | 99精品国产福利在线观看免费 | 亚洲黄色免费观看 | 最近字幕在线观看第一季 | 91香蕉视频黄色 | 激情丁香在线 | 日韩在线电影观看 | av网站免费看 | 99免费精品视频 | 六月丁香在线视频 | 亚洲视频免费视频 | 最近中文字幕免费观看 | 免费99视频 | 成人永久在线 | 婷婷激情综合 | 看片一区二区三区 | 国产成人综合在线观看 | 开心激情五月婷婷 | 国产女人40精品一区毛片视频 | 精品999在线 | 精品视频国产 | 国产v在线播放 | 天天躁日日躁狠狠躁av中文 | 性色在线视频 | 在线看成人 | 久久久久国产精品免费 | 国产盗摄精品一区二区 | 亚洲香蕉在线观看 | 在线午夜电影神马影院 | 香蕉色综合 | 亚洲精品男人的天堂 | a视频在线观看免费 | 91久久电影 | 操操色 | 午夜骚影| 日韩欧美高清一区二区三区 | 免费日韩 精品中文字幕视频在线 | 麻豆久久久久 | 看毛片网站 | 久久视频国产精品免费视频在线 | 天天舔天天射天天操 | 国产久草在线观看 | 欧美日韩国产伦理 | 亚洲国产日韩精品 | 成人午夜精品久久久久久久3d | 亚洲精品综合欧美二区变态 | 亚洲 av网站 | 中文字幕在线观看的网站 | а天堂中文最新一区二区三区 | 国产成人av免费在线观看 | 日韩美女黄色片 | 久久男人中文字幕资源站 | 欧美日韩99 | 国产在线1区 | 成年人免费看片网站 | 欧美天堂久久 | 精品国产一区二区三区蜜臀 | 99久久er热在这里只有精品15 | .国产精品成人自产拍在线观看6 | 久久免费电影网 | 国产精品女教师 | 国产在线观看不卡 | 精品亚洲va在线va天堂资源站 | 亚欧日韩成人h片 | 日韩午夜网站 | 国产精品美乳一区二区免费 | 欧美做受高潮1 | 在线免费视频一区 | 国产精品女人久久久久久 | 欧美大片www | 美女精品国产 | 激情婷婷亚洲 | 欧美污在线观看 | 性色av免费在线观看 | 免费看的黄色的网站 |