1. 圣石小子粤语,别样幸福全集,箭在弦上大结局,我想打死你,星光灿烂猪八戒,菲律宾美人鱼50集国语,神探夏洛克 第四季,市委书记晚上不打招呼调研被拦

      JAVA垃圾收集算法與內存泄露的解決方法

      時間:2024-10-16 09:46:10 SUN認證

      JAVA垃圾收集算法與內存泄露的解決方法

        對于垃圾收集算法與內存泄露的問題,下面為大家整理了關于JAVA垃圾收集算法與內存泄露解決方法,希望對你有所幫助。

      JAVA垃圾收集算法與內存泄露的解決方法

        1.垃圾收集算法的核心思想

        Java語言建立了垃圾收集機制,用以跟蹤正在使用的對象和發現并回收不再使用(引用)的對象。該機制可以有效防范動態內存分配中可能發生的兩個危險:因內存垃圾過多而引發的內存耗盡,以及不恰當的內存釋放所造成的內存非法引用。

        垃圾收集算法的核心思想是:對虛擬機可用內存空間,即堆空間中的對象進行識別,如果對象正在被引用,那么稱其為存活對象,反之,如果對象不再被引用,則為垃圾對象,可以回收其占據的空間,用于再分配。垃圾收集算法的選擇和垃圾收集系統參數的合理調節直接影響著系統性能,因此需要開發人員做比較深入的了解。

        2.觸發主GC(Garbage Collector)的條件

        JVM進行次GC的頻率很高,但因為這種GC占用時間極短,所以對系統產生的影響不大。更值得關注的是主GC的觸發條件,因為它對系統影響很明顯。總的來說,有兩個條件會觸發主GC:

        ①當應用程序空閑時,即沒有應用線程在運行時,GC會被調用。因為GC在優先級最低的線程中進行,所以當應用忙時,GC線程就不會被調用,但以下條件除外。

        ②Java堆內存不足時,GC會被調用。當應用線程在運行,并在運行過程中創建新對象,若這時內存空間不足,JVM就會強制地調用GC線程,以便回收內存用于新的分配。若GC一次之后仍不能滿足內存分配的要求,JVM會再進行兩次GC作進一步的嘗試,若仍無法滿足要求,則 JVM將報“out of memory”的錯誤,Java應用將停止。

        由于是否進行主GC由JVM根據系統環境決定,而系統環境在不斷的變化當中,所以主GC的運行具有不確定性,無法預計它何時必然出現,但可以確定的是對一個長期運行的應用來說,其主GC是反復進行的。

        3.減少GC開銷的措施

        根據上述GC的機制,程序的運行會直接影響系統環境的變化,從而影響GC的觸發。若不針對GC的特點進行設計和編碼,就會出現內存駐留等一系列負面影響。為了避免這些影響,基本的原則就是盡可能地減少垃圾和減少GC過程中的開銷。具體措施包括以下幾個方面:

        (1)不要顯式調用System.gc()

        此函數建議JVM進行主GC,雖然只是建議而非一定,但很多情況下它會觸發主GC,從而增加主GC的頻率,也即增加了間歇性停頓的次數。

        (2)盡量減少臨時對象的使用

        臨時對象在跳出函數調用后,會成為垃圾,少用臨時變量就相當于減少了垃圾的產生,從而延長了出現上述第二個觸發條件出現的時間,減少了主GC的機會。

        (3)對象不用時最好顯式置為Null

        一般而言,為Null的對象都會被作為垃圾處理,所以將不用的對象顯式地設為Null,有利于GC收集器判定垃圾,從而提高了GC的效率。

        (4)盡量使用StringBuffer,而不用String來累加字符串(詳見blog另一篇文章JAVA中String與StringBuffer)

        由于String是固定長的字符串對象,累加String對象時,并非在一個String對象中擴增,而是重新創建新的String對象,如Str5=Str1+Str2+Str3+Str4,這條語句執行過程中會產生多個垃圾對象,因為對次作“+”操作時都必須創建新的String對象,但這些過渡對象對系統來說是沒有實際意義的,只會增加更多的垃圾。避免這種情況可以改用StringBuffer來累加字符串,因StringBuffer是可變長的,它在原有基礎上進行擴增,不會產生中間對象。

        (5)能用基本類型如Int,Long,就不用Integer,Long對象

        基本類型變量占用的內存資源比相應對象占用的少得多,如果沒有必要,最好使用基本變量。

        (6)盡量少用靜態對象變量

        靜態變量屬于全局變量,不會被GC回收,它們會一直占用內存。

        (7)分散對象創建或刪除的時間

        集中在短時間內大量創建新對象,特別是大對象,會導致突然需要大量內存,JVM在面臨這種情況時,只能進行主GC,以回收內存或整合內存碎片,從而增加主GC的頻率。集中刪除對象,道理也是一樣的。它使得突然出現了大量的垃圾對象,空閑空間必然減少,從而大大增加了下一次創建新對象時強制主GC的機會。

        4.gc與finalize方法

        ⑴gc方法請求垃圾回收

        使用System.gc()可以不管JVM使用的是哪一種垃圾回收的算法,都可以請求Java的垃圾回收。需要注意的是,調用System.gc()也僅僅是一個請求。JVM接受這個消息后,并不是立即做垃圾回收,而只是對幾個垃圾回收算法做了加權,使垃圾回收操作容易發生,或提早發生,或回收較多而已。

        ⑵finalize方法透視垃圾收集器的運行

        在JVM垃圾收集器收集一個對象之前 ,一般要求程序調用適當的方法釋放資源,但在沒有明確釋放資源的情況下,Java提供了缺省機制來終止化該對象釋放資源,這個方法就是finalize()。它的原型為:

        protected void finalize() throws Throwable

        在finalize()方法返回之后,對象消失,垃圾收集開始執行。原型中的throws Throwable表示它可以拋出任何類型的異常。

        因此,當對象即將被銷毀時,有時需要做一些善后工作。可以把這些操作寫在finalize()方法里。

        java 代碼

        protected void finalize()

        {

        // finalization code here

        }

        ⑶代碼示例

        java 代碼

        class Garbage{

        int index;

        static int count;

        Garbage() {

        count++;

        System.out.println("object "+count+" construct");

        setID(count);

        }

        void setID(int id) {

        index=id;

        }

        protected void finalize() //重寫finalize方法

        {

        System.out.println("object "+index+" is reclaimed");

        }

        public static void main(String[] args)

        {

        new Garbage();

        new Garbage();

        new Garbage();

        new Garbage();

        System.gc(); //請求運行垃圾收集器

        }

        }

        5.Java 內存泄漏

        由于采用了垃圾回收機制,任何不可達對象(對象不再被引用)都可以由垃圾收集線程回收。因此通常說的Java 內存泄漏其實是指無意識的、非故意的對象引用,或者無意識的對象保持。無意識的對象引用是指代碼的開發人員本來已經對對象使用完畢,卻因為編碼的錯誤而意外地保存了對該對象的引用(這個引用的存在并不是編碼人員的主觀意愿),從而使得該對象一直無法被垃圾回收器回收掉,這種本來以為可以釋放掉的卻最終未能被釋放的空間可以認為是被“泄漏了”。

        考慮下面的程序,在ObjStack類中,使用push和pop方法來管理堆棧中的對象。兩個方法中的索引(index)用于指示堆棧中下一個可用位置。push方法存儲對新對象的引用并增加索引值,而pop方法減小索引值并返回堆棧最上面的元素。在main方法中,創建了容量為64的棧,并64次調用push方法向它添加對象,此時index的值為64,隨后又32次調用pop方法,則index的值變為32,出棧意味著在堆棧中的空間應該被收集。但事實上,pop方法只是減小了索引值,堆棧仍然保持著對那些對象的引用。故32個無用對象不會被GC回收,造成了內存滲漏。

        java 代碼

        public class ObjStack {

        private Object[] stack;

        private int index;

        ObjStack(int indexcount) {

        stack = new Object[indexcount];

        index = 0;

        }

        public void push(Object obj) {

        stack[index] = obj;

        index++;

        }

        public Object pop() {

        index--;

        return stack[index];

        }

        }

        public class Pushpop {

        public static void main(String[] args) {

        int i = 0;

        Object tempobj;

        //new一個ObjStack對象,并調用有參構造函數。分配stack Obj數組的空間大小為64,可以存64個對象,從0開始存儲

        ObjStack stack1 = new ObjStack(64);

        while (i < 64)

        {

        tempobj = new Object();//循環new Obj對象,把每次循環的對象一一存放在stack Obj數組中。

        stack1.push(tempobj);

        i++;

        System.out.println("第" + i + "次進棧" + " ");

        }

        while (i > 32)

        {

        tempobj = stack1.pop();//這里造成了空間的浪費。

        //正確的pop方法可改成如下所指示,當引用被返回后,堆棧刪除對他們的引用,因此垃圾收集器在以后可以回收他們。

        /*

        * public Object pop() {index - -;Object temp = stack [index];stack [index]=null;return temp;}

        */

        i--;

        System.out.println("第" + (64 - i) + "次出棧" + " ");

        }

        }

        }

        6.如何消除內存泄漏

        雖然Java虛擬機(JVM)及其垃圾收集器(garbage collector,GC)負責管理大多數的內存任務,Java軟件程序中還是有可能出現內存泄漏。實際上,這在大型項目中是一個常見的問題。避免內存泄漏的第一步是要弄清楚它是如何發生的。本文介紹了編寫Java代碼的一些常見的內存泄漏陷阱,以及編寫不泄漏代碼的一些最佳實踐。一旦發生了內存泄漏,要指出造成泄漏的代碼是非常困難的。因此本文還介紹了一種新工具,用來診斷泄漏并指出根本原因。該工具的開銷非常小,因此可以使用它來尋找處于生產中的系統的內存泄漏。

        垃圾收集器的作用

        雖然垃圾收集器處理了大多數內存管理問題,從而使編程人員的生活變得更輕松了,但是編程人員還是可能犯錯而導致出現內存問題。簡單地說,GC循環地跟蹤所有來自“根”對象(堆棧對象、靜態對象、JNI句柄指向的對象,諸如此類)的引用,并將所有它所能到達的對象標記為活動的。程序只可以操縱這些對象;其他的對象都被刪除了。因為GC使程序不可能到達已被刪除的對象,這么做就是安全的。

        雖然內存管理可以說是自動化的,但是這并不能使編程人員免受思考內存管理問題之苦。例如,分配(以及釋放)內存總會有開銷,雖然這種開銷對編程人員來說是不可見的。創建了太多對象的程序將會比完成同樣的功能而創建的對象卻比較少的程序更慢一些(在其他條件相同的情況下)。

        而且,與本文更為密切相關的是,如果忘記“釋放”先前分配的內存,就可能造成內存泄漏。如果程序保留對永遠不再使用的對象的引用,這些對象將會占用并耗盡內存,這是因為自動化的垃圾收集器無法證明這些對象將不再使用。正如我們先前所說的,如果存在一個對對象的引用,對象就被定義為活動的,因此不能刪除。為了確保能回收對象占用的內存,編程人員必須確保該對象不能到達。這通常是通過將對象字段設置為null或者從集合(collection)中移除對象而完成的。但是,注意,當局部變量不再使用時,沒有必要將其顯式地設置為null。對這些變量的引用將隨著方法的退出而自動清除。

        概括地說,這就是內存托管語言中的內存泄漏產生的主要原因:保留下來卻永遠不再使用的對象引用。

        典型泄漏

        既然我們知道了在Java中確實有可能發生內存泄漏,就讓我們來看一些典型的內存泄漏及其原因。

        全局集合

        在大的應用程序中有某種全局的數據儲存庫是很常見的,例如一個JNDI樹或一個會話表。在這些情況下,必須注意管理儲存庫的大小。必須有某種機制從儲存庫中移除不再需要的數據。

        這可能有多種方法,但是最常見的一種是周期性運行的某種清除任務。該任務將驗證儲存庫中的數據,并移除任何不再需要的數據。

        另一種管理儲存庫的方法是使用反向鏈接(referrer)計數。然后集合負責統計集合中每個入口的反向鏈接的數目。這要求反向鏈接告訴集合何時會退出入口。當反向鏈接數目為零時,該元素就可以從集合中移除了。

        緩存

        緩存是一種數據結構,用于快速查找已經執行的操作的結果。因此,如果一個操作執行起來很慢,對于常用的輸入數據,就可以將操作的結果緩存,并在下次調用該操作時使用緩存的數據。

        緩存通常都是以動態方式實現的,其中新的結果是在執行時添加到緩存中的。典型的算法是:

        檢查結果是否在緩存中,如果在,就返回結果。

        如果結果不在緩存中,就進行計算。

        將計算出來的結果添加到緩存中,以便以后對該操作的調用可以使用。

        該算法的問題(或者說是潛在的內存泄漏)出在最后一步。如果調用該操作時有相當多的不同輸入,就將有相當多的結果存儲在緩存中。很明顯這不是正確的方法。

        為了預防這種具有潛在破壞性的設計,程序必須確保對于緩存所使用的內存容量有一個上限。因此,更好的算法是:

        檢查結果是否在緩存中,如果在,就返回結果。

        如果結果不在緩存中,就進行計算。

        如果緩存所占的空間過大,就移除緩存最久的結果。

        將計算出來的結果添加到緩存中,以便以后對該操作的調用可以使用。

        通過始終移除緩存最久的結果,我們實際上進行了這樣的假設:在將來,比起緩存最久的數據,最近輸入的數據更有可能用到。這通常是一個不錯的假設。

        新算法將確保緩存的容量處于預定義的內存范圍之內。確切的范圍可能很難計算,因為緩存中的對象在不斷變化,而且它們的引用包羅萬象。為緩存設置正確的大小是一項非常復雜的任務,需要將所使用的內存容量與檢索數據的速度加以平衡。

        解決這個問題的另一種方法是使用java.lang.ref.SoftReference類跟蹤緩存中的對象。這種方法保證這些引用能夠被移除,如果虛擬機的內存用盡而需要更多堆的話。

        ClassLoader

        Java ClassLoader結構的使用為內存泄漏提供了許多可乘之機。正是該結構本身的復雜性使ClassLoader在內存泄漏方面存在如此多的問題。ClassLoader的特別之處在于它不僅涉及“常規”的對象引用,還涉及元對象引用,比如:字段、方法和類。這意味著只要有對字段、方法、類或ClassLoader的對象的引用,ClassLoader就會駐留在JVM中。因為ClassLoader本身可以關聯許多類及其靜態字段,所以就有許多內存被泄漏了。

        確定泄漏的位置

        通常發生內存泄漏的第一個跡象是:在應用程序中出現了OutOfMemoryError。這通常發生在您最不愿意它發生的生產環境中,此時幾乎不能進行調試。有可能是因為測試環境運行應用程序的方式與生產系統不完全相同,因而導致泄漏只出現在生產中。在這種情況下,需要使用一些開銷較低的工具來監控和查找內存泄漏。還需要能夠無需重啟系統或修改代碼就可以將這些工具連接到正在運行的系統上。可能最重要的是,當進行分析時,需要能夠斷開工具而保持系統不受干擾。

        雖然OutOfMemoryError通常都是內存泄漏的信號,但是也有可能應用程序確實正在使用這么多的內存;對于后者,或者必須增加JVM可用的堆的數量,或者對應用程序進行某種更改,使它使用較少的內存。但是,在許多情況下,OutOfMemoryError都是內存泄漏的信號。一種查明方法是不間斷地監控GC的活動,確定內存使用量是否隨著時間增加。如果確實如此,就可能發生了內存泄漏。

        拓展:

        java垃圾回收機制是怎樣的

        手動管理內存

        在介紹現代版的垃圾回收之前,我們先來簡單地回顧下需要手動地顯式分配及釋放內存的那些日子。如果你忘了去釋放內存,那么這塊內存就無法重用了。這塊內存被占有了卻沒被使用。這種場景被稱之為內存泄露。

        下面是用C寫的一個手動管理內存的簡單例子:

        int send_request()

        {

        size_t n = read_size();

        int *elements = malloc(n * sizeof(int));

        if(read_elements(n, elements) < n)

        { // elements not freed! return -1; } // … free(elements)

        return 0;}

        可以看到,你很容易就會忘了釋放內存。內存泄露曾經是個非常普遍的問題。你只能通過不斷地修復自己的代碼來與它們進行抗爭。因此,需要有一種更優雅的方式來自動釋放無用內存,以便減少人為錯誤的可能性。這種自動化過程又被稱為垃圾回收(簡稱GC)。

        智能指針

        自動垃圾回收早期的一種實現便是引用計數。你知曉每一個對象被引用了幾次,當計數器歸0的時候,這個對象就可以被安全地回收掉了。C++的共享指針就是一個非常著名的例子:

        11int send_request() { size_t n = read_size(); stared_ptrelements = make_shared(); if(read_elements(n, elements) < n) { return -1; } return 0;}

        我們使用的sharedptr會記錄這個對象被引用的次數。如果你將它傳遞給別人則計數加一,當它離開了作用域后便會減一。一旦這個計數為0,sharedptr會自動地刪除底層對應的vector。當然這只是個示例,因為也有讀者指出來了,這個在現實中是不太可能出現的,但作為演示是足夠了。

        自動內存管理

        在上面的C++代碼中,我們還得顯式地聲明我們需要使用內存管理。那如果所有的對象都采用這個機制會怎樣呢?那簡直就太方便了,這樣開發人員便無需 考慮清理內存的事情了。運行時會自動知曉哪些內存不再使用了,然后釋放掉它。也就是說,它自動地回收了這些垃圾。第一代的垃圾回收器是1959年Lisp 引入的,這項技術迄今為止一直在不斷演進。

        引用計數

        剛才我們用C++的共享指針所演示的想法可以應用到所有的對象上來。許多語言比如說Perl, Python以及PHP,采用的都是這種方式。這個通過一張圖可以很容易說明:

        綠色的云代表的是程序中仍在使用的對象。從技術層面上來說,這有點像是正在執行的某個方法里面的局部變量,亦或是靜態變量之類的。不同編程語言的情況可能會不一樣,因此這并不是我們關注的重點。

        藍色的圓圈代表的是內存中的對象,可以看到有多少對象引用了它們。灰色圓圈的對象是已經沒有任何人引用的了。因此,它們屬于垃圾對象,可以被垃圾回收器清理掉。

        看起來還不錯對吧?沒錯,不過這里存在著一個重大的缺陷。很容易會出現一些孤立的環,它們中的對象都不在任何域內,但彼此卻互相引用導致引用數不為0。下面便是一個例子:

        看到了吧,紅色部分其實就是應用程序不再使用的垃圾對象。由于引用計數的缺陷,因此會存在內存泄露。

        有幾種方法可以解決這一問題,比如說使用特殊的“弱”引用,或者使用一個特殊的算法回收循環引用。之前提到的Perl,Python以及PHP等語言,都是使用類似的方法來回收循環引用的,不過這已經超出本文講述的范圍了。我們準備詳細介紹下JVM所采用的方法。

        標記刪除

        首先,JVM對于對象可達性的定義要明確一些。它可不像前面那樣用綠色的云便含煳了事的,而是有著非常明確及具體的垃圾回收根對象(Garbage Collection Roots)的定義:

        局部變量

        活動線程

        靜態字段

        JNI引用

        其它(后面將會討論到)

        JVM通過標記刪除的算法來記錄所有可達(存活)對象,同時確保不可達對象的那些內存能夠被重用。這包含兩個步驟:

        標記是指遍歷所有可達對象,然后在本地內存中記錄這些對象的信息

        刪除會確保不可達對象的內存地址可以在下一次內存分配中使用。

        JVM中的不同GC算法,比如說Parallel Scavenge,Parallel Mark+Copy, CMS都是這一算法的不同實現,只是各階段略有不同而已,從概念上來講仍然是對應著上面所說的那兩個步驟。

        這種實現最重要的就是不會再出現泄露的對象環了:

        缺點就是應用程序的線程需要被暫停才能完成回收,如果引用一直在變的話你是無法進行計數的。這個應用程序被暫停以便JVM可以收拾家務的情況又被稱為Stop The World pause(STW)。這種暫停被觸發的可能性有很多,不過垃圾回收應該是最常見的一種。

      【JAVA垃圾收集算法與內存泄露的解決方法】相關文章:

      Java內存溢出的類型10-03

      Java的內存劃分全解析12-17

      Javascript 閉包引起IE內存泄露分析07-05

      電腦內存常見故障及解決方法05-12

      手機內存卡故障及解決方法10-10

      Java認證輔導:Java實現二叉樹遍歷算法10-21

      電腦內存六大故障以及解決方法09-26

      JAVA認證基礎知識:近似算法(格雷厄姆算法)簡介10-29

      Intel傲騰內存是內存還是固態硬盤06-17

      主站蜘蛛池模板: 怡红院在线 视频免费| 神奇女侠vs怪兽们| 《超女麦乐迪》完整视频播放| 真白みな| 黄奇帆为什么没事| 烈火情人 百度影音| 男男同志王伦宝| hodv-21134| 郝板栗《千金小姐》中文版免费观看| 青梅竹马甜宠:两小无猜短剧全集| 戏台电影陈佩斯抢先版免费看| 不良义姐彭禺厶 雷濛| 《法国空乘5》电影| sw-137| 双女任务电影完整免费观看 | 时间静止器电影完整版| 铠甲勇士1部全集| 卖房子的女销售3艺术片| 3d 蒲团| 荒野渔夫80版完整版| 很想很想你电视剧在线观看| 強暴處女1-12系列| 动画片大头儿子小头爸爸| 美国禁忌1980| 律政俏佳人电影| 需要爸爸播种 美国版在哪里可以看| 致命弯道5完整版在线观看视频| 莫妮卡演过巜生殖按摩电影吗| 还珠格格之风儿阵阵吹全集| 男女一起愁愁愁在线观看全集高清开 | 聊斋3梅女| 佳同译图| 木下檀檩子jlU698电影| 官场初次尝了销魂少妇宋楚楚| 晚娘钟丽缇| 《私人航空》在线看法国电影视频免| 新建文件夹在线观看完整版| 破冰行动免费完整版| 穿越古代:风生水起全集免费| 男与女在线观看| 《法国航空4》完整版| 打雀英雄传粤语| 对不起 我爱你| 意大利电影需要爸爸的种子| 韩剧《我的家教老师》剧情介绍| 宇宙巡警露露子| 木下檀檩子点外卖的电影| 海贼王剧场版第10弹| 澡屋先生| 滥竽充数免费| 少女大人第五集免费观看| 女生公寓中文版全集| 王大花的革命生涯| 村姑2国语免费观看| 《私人助理2》韩剧| 特殊保险员员中8| 《拳击手》满天星1997罗莎| 无声未删减版免费观看| 好看的三级伦理片水电工| 二十万的黑锅| 建瓯市| 聊斋花姑子| 韩国电影和老公上司| 银魂263| 美容院的特殊待遇完整版| 齐天大剩| 风中的火焰剧情分集介绍大结局| 暴力谎言| 初次尝鲜免费观看全集完整版| 壮志凌云法国版完整版| 你的爱如星光| 洛城疑云| 跟部长出差的温泉之旅在线观看 | 王牌大间谍| 少儿节目小猪佩奇| 水润女人申胜业刘志贤主演角色介绍 | 法国版《女超人:麦乐迪》 在线观看| 美容室.特除服务2| 唐人街探案3正片免费观看| 呼吸过度电影| 憩园电影| 银河护卫队3超清完整免费观看| 美景之屋6普通话版| 蜜糖姐姐恋爱吧短剧免费观看| 美式保罗2经典版| 电影隔壁的女孩| 亲爱的妈妈韩国电影完整版| 三个好媳妇中字头是什么| 且试天下电视剧全集| 甩葱舞蹈视频原版| 女儿国3在线观看国语版| 宁柔柔的小泬撑开到极| 鹰眼黑寡妇| 《法国空少》| 僵尸海狸2| 小羊人台球| 后厨激战1到5集免费观看| 看视频免费网址| 女虐电影| 凯·帕克的姨妈三部曲| 当邪恶潜伏时| 斗罗大陆免费观看视频| 《透视》在线观看| 电影倩女幽魂2| 波多野结衣 番号推荐| 水润女人在线观看电视剧免费 | 任盈盈股评| 白峰美羽 播放| 杀敌爆功力 我成武神小说| 汉武大帝 电视剧| 女超人满天星在线观看完整免费高清| 西游记之大闹女儿国| 下一站幸福优酷| jizzjiz日本| 舒淇的献身集| 你的婚礼| 牙医姐妹电影| 母子情仇下载| 短剧难寻| 特殊的游泳课4| 冰糖雪梨电视剧免费观看全集完整版| 凤凰传奇演唱会高清下载| 妻子游泳教练HD中字| 电视剧扫毒风暴| 一起来看流星雨吻戏| 战狼6欧式少女全部视频努努| 桃花映江山免费观看完整版| 进击的巨人03| 女超人麦乐迪未删减版| 美女拳击赛| 庐山恋电影| lx司令动漫第一季免费观看 | 速度与激情11| 法国空乘4完整版播放| 一龙一猪| 火影忍者第1集| 缅甸农村姑娘2| 北上广电视剧免费播放电视剧| 麦迪逊河谷 第一季未删减| 国风按摩院1-5季电视剧免费观看 无憾坎贝奇电影完整版在线播放免费版 | 洪湖英雄传电视剧| 台北101大楼亮灯祈愿| 冰河世纪2快播| 姚二嘎吸毒| 生化危机4:战神再生| 韩宝贝| 《夕颜》动漫全集在线观看完整版中| 头头影视| 壮志凌云女版伦理片| 海魂电视剧| 白发电视剧| 满天星麦乐迪《女超人》免费播放| 电视剧成吉思汗| 孟姜女哭长城电视剧全集免费| 正在播放: 解决学生的性爱烦恼不穿内衣裤的美波老师硬硬教学 _美波汐里 - 91n | 大明风华1-62集免费| 平凡职业成就世界最强| 我们都要好好的全集免费完整版| 《图书馆的女朋友》第一季免费 | 浮之手HD版免费观看了| 李卫当官第一部免费版央视网| 老师的手指在里面转动的写| 金银岛1-5美国| 蜜桃成熟时3D片免费看| 家国两难全| 月之晴天满天星版韩国| 猛鬼追魂2| 爱上他的漂亮妈妈| 在厨房和空调修理工| 高清花便当未删减| 龙门镖局 影音| xl司令第一赛季真人版播放| 东京漂移| 家有儿女第四部| 《女超人Melody满天星》在线观看 | 一周的朋友电影在线观看| 插曲30集全集免费播放在线观看| 插曲的痛电视剧在线观看免费视频 | 梦幻叶子| 大学生创业沙龙2| 女朋友的妈妈电影完整版| 银魂239| 坎贝奇品味人生完整版免费| 宁都采茶戏| 红海行动2蛟龙行动电影在线观看| 衡南县| 金三角风云| 龙凤店国语百度影音| 正负之间电视剧在线观看完整版| 《女医生4》免费观看全集完整版 想要父亲的种子电影在线观看 | 元阳县| 史蒂夫全集观看| 斗罗大陆121| 黑客帝国2| 美容院的特殊待遇是4| u9免费看电影| 北京奥运会开幕式2008完整版| 粉红大白菜在线观看电视剧免费| 《龙猫》| 五月天网站| 禁忌5在线观看电视剧完整版免费| 男子私藏枪支家中宛如“军火库”| 湄公河大案全集在线观看| 黑白配在线观看| 傅佩荣详解易经64卦| 娜塔莎 劳佳姆| 《天海翼商务旅行》电影在线观看| 赶尸先生电影国语完整版在线观看| 起飞英文| 《甲种公牛》1976意大利 | 无尽的爱电影在线观看全集免费| 翻滚吧阿信 在线观看| 站着再来一次第30集精彩片段回顾 | 伪装者48集全集免费| 山河月明电视剧免费观看完整版| 蜜桃成熟时三人同眠| 蓝色隐身帽在线观看免费高清| 十七岁高清完整版在线观看日本| 《climax》电影在线观看免费 | 《有用的鬼》| 交换上司秘书在线观看| 美丽的梦想电影| 乌克兰基辅实时画面| 激战丛林2原声版| 郎牌特曲广告| 壮士出川| 做aj的电视剧大全免费观看中国人| 感官世界电影| 深海狂鲨高清| 电视剧廖家| 粉色大白菜美国版| 世界奇闻怪事图片| 胡歌杨幂唐嫣开场同台| 女侓师的堕落在线观看| 强制窃贼电视剧| 我的世界大海解说| 17·3电影在线观看全集| 缺德法师| 爱人 韩版| 《飞机上特殊服务5》| 和田玉一夜承欢尺寸| 三打白骨精西瓜影音| 重燃人生短剧免费观看| 冰雪奇缘成人片在线观看 | 善良的嫂子3在线播放| 杜拉拉之似水年华结局| 人生的道场原唱| 杰西·简啄木鸟| 搜神记电视剧下载| 《特战荣耀》在线播放| 日本混血女大学生按摩电影| 行运一条龙 电影| 杨贵妃传| 入室暴行3被蹂躏| 澳门风云电影国语| 《交换:完美的邻居》中字| 电信光猫破解| 特邀送餐员3| 民间怪谈录电视剧在线观看| 妙警贼探第四季| 人猿泰山hr版男主角| 渴望hd| 《环太平洋2》完整版在线观看| 《隐形的帽子》完整版| 异形2在线观看完整版免费高清| 大唐好男人电视剧| 野花香电视剧在线观看高清版免费| 白雪公主h版在线| 女同地带| 黄皮子坟| 兄弟老婆| 新流星蝴蝶剑电影| 斗罗大陆208| 撞击高贵美妇老师的翘臀| 日本电影出轨维修工| 最终幻想动漫| 二战电影国语译制片| .奇怪的美容院2| 叶问3在线观看国语高清完整版| 惊声尖叫4百度影音| 女超人麦乐迪完整版 | 杨敏思版1-5集电视连续剧| 北京青年35| 不耻下问的故事| 金瓶酶2全集观看| 黑白配国语高清在线观看免费| 高清街头顽童| 盟军夺宝队百度影音| 恋空在线观看| 女销售的销售秘密2| 雷神4在线观看完整免费高清电影| 罚罪电视剧在线观看完整版| 《需要爸爸播种美国》英文版演员全| 又见一帘幽梦优酷| 音乐人生| 遮天动漫在线观看高清完整版| 我的女友妈妈韩字的ID是谁电影| 不忠大尺度做爰未删减| 战狼6女版免费观看高清版| 月升沧海免费观看| 大王别慌张免费观看全集| 星克莱尔《妄想症》| 侏罗纪世界2| 需要爸爸的种子类似视频在线观看| 爱我的请过来| 芳华在线| 真人版古墓丽影| 八年成空| 高清《大学》电影| 麦乐迪爸爸不让她出门是什么电影 | 黑人大屌大战美女| 仙逆108集完整版在线观看 | 《美丽屋景1| 齐鲁风采| 花与蛇在线看| 人猿泰山h版在线播放| 大牛影库战狼6在线播放| 刘德华演唱会全集| 替身演员:逆袭成影后全集免费| 牧神记39集免费观看| 英国空姐免费完整版| 浪蝶狂花| 老版武则天| 需要爸爸的种| 韩剧回家的路| 欲望爱人未删减版在线观看影片| 3对1:三人一次性体检2| 出差期间未婚妻遭前任多次欺负日剧 | 我要看免费的| 三上悠亚《最高の爱人诏》 | 非你莫属2011| 韩国理伦片驯服小峓子| 电影人肉腊肠| 以爱为营电视剧免费观看在线| 灭火宝贝未删减版| 三年中文高清免费观看 | 巨乳按摩在线观看| 罗马的房子主题曲| 真爱谎言下载| 高中生操行评语| 私人女性监狱日韩高清版| 《武则天风流艳史》在线播放| 金装的维尔梅樱花动漫第一季| 初体验5免费观看完整版| 今日天晴宜爱你短剧在线免费看| 咱们结婚吧第21集| 上网赚钱的方法| 女超人麦乐迪无删减在线| 我的老公是卧底| 瞬息全宇宙| 晋阳小公主动漫全集| 木下檀檩子免费看全集| 《嫌疑人x的献身》| 公主嫁到粤语电视剧在线观看免费| 金银悔1-5普通话版免费观看下载| 核动力拉拉爱| 黑帮大佬和我的365五天| 国内成品油价迎牛年首涨| 需要爸爸种子电影| 甄嬛传50集| 相思原唱| 守株待兔免费| 法国《荣誉守则》满天星版| 新金瓶梅全集| 电影《功夫》免费观看国语 | 我们的妈妈| 黑白禁区在线观看| 泰剧《蛇姬恋》在线播放| 法版女海盗3海魔之岛| 性生交大片免费看女人按摩| 宋孝敏在《露营地》里扮演谁| 真咲恵美| JUL-945瞒着丈夫在短时间内| 一家老小向前冲2010| 黔乡牧人| 《21世纪爱情指南》| 《丛林激情》男女主| 八尺夫人完整版高清免费| 迪加奥特曼动画片| 事情的秘密水池在哪一集出现| 中国刑警803英雄本色电视剧| 小米su7发布会直播| 天使追魂| 女超人1979在线观看完整版| 金战演员表| 暴躁老妈和二姨| 茶杯狐在线| 酒店1-90集高清免费观看| 泰剧爱的告白| 克隆丈夫| 私人航空电影在线观看| 需要爸爸播种2美国电影在线观看| 夜之女王| 元宵晚会| 《办公室的故事》| 出水莲古筝| 胜者为王iv争霸粤语| 藏族踢踏舞组合| 我的巨乳继母| 使徒行者电视剧全集| 金玉满堂全集| 我的自由年代7| 绿色帽子电影完整版| 彼女豆浆| 科学的超电磁炮| 雷神4在线观看| 《灭火行动| 高清绝望写手 第五季未删减| 夏目彩春57部在线电影| 暖暖的微笑在线观看| 一日女采人电影| 王牌播音员| 《绝对权力》在线观看| 美容特别待遇5HD| 女老板的性滋味电影| 爱我几何电视剧全集| 魔兽主页| 17·3电影免费观看在线播放| 扫黑风暴28在线观看| 血洛大陆| 黑狐32| 美国女按摩师2无删减版电影观看| 哲学与人生傅佩荣| 和朋友换娶妻中字3| 电视剧来不及说我爱你| 女销售员2的销售秘密| 五月槐花香电视剧| 大博弈电视剧剧情介绍| 山岸逢花在线观看| 酒店出水激战1-5集免费| 轧戏电视剧在线观看| 游戏王gorush| 女子秘密会所| 哇嘎视频免费观看完整版| 勇探实录 国语| 善良的小姨子之禁止的爱| 世界名犬排名| 高压监狱2法国版免费播放| 大院里的女人| ⅩL司令全集完整版免费观看| 荒野女婿2普通话版| 速7片尾曲| 归来在线观看| 酒店1-100集全免费播放| 灭火宝贝2010美版| 小蜜桃4| 古惑仔4高清完整版免费观看| 三对一韩国在线观看| 电竞女王:大神都叫我姐短剧全集| 胖妹最近10天的视频| 柳浪闻莺| 爱我几何在线观看免费高清| 剑魔独孤求败全集免费观看国语| 老严有女不愁嫁片尾曲| 铁血丹心什么意思| 电影《丰年经继坶3》解析| 权欲武力| 致命怪谈2电影完整版| 《初体验5》完整版| 韩国女战狼| 情逆三世缘国语版| 胸肌撕裂者| 未填充的花瓣中字| xl司令的动漫全集免费观看网站| 电视剧刺杀玫瑰| 玫瑰的故事电视剧在线观看| 龙族第二季动漫免费看| 私人航空免费在线观看完整版 | 苹果 范冰冰电影| 宠物小精灵xy游戏| 检修工遇强奸犯 韩国电影| 水咲萝拉白妖精| 印度一头野猪大闹超市| 妈咪快跑:爹地追来了短剧全集| 哇嘎哇嘎高清在线观看| 三个傻boy| 长相思杨紫免费观看电视剧全集| 白夜追凶21| 被义子侵犯的继拇在线观看| 半生缘林心如| 上海电视台节目表| 黑帮少爷爱上我第四集| 丰满的继牳伦理8伦理| 死神264| 《熊出没之年货》电影免费观看| 灵璧一中| 台剧《黛比浪漫女家教1》| 帅武警MP4CHINESE69| 学姐知道 电视剧| 《狂飙》在线| 小小水蜜桃6电视剧| 巴山夜雨的意思| 黑道大佬第2季免费观看| 员工被冤枉与领导起争执被扇脸| 麦乐迪超人| 忍者乱太郎粤语版| 高压监狱3完整版在线看| 电影甲午风云| 妻子8免费观看全集完整版| 尸体解剖| 女子护卫队满天星1973免费| 大笑江湖百度影音| 醉花阴2V1PO笔趣阁| 爽剧全部免费观看| 圣特洛佩斯的姑娘们在线观看| 大江大河2部免费观看| 她的一生全集电视剧| 名侦探柯南 百度影音| 女版斯巴达《满天星》电影免费观看| 叛逆者免费观看完整版| 林采缇视频种子| 新四大名捕电视剧| xl司令在线观看| 新亮剑mp4下载| 姨母的绣惑电影在线| 余罪第三季高清免费播放张一山| 黑白配高清国语免费观看在线| 千古绝尘| 电视剧 潜伏| 慈禧的秘密生活下载| 《满天星》陈宝莲 | 《莲花楼》电视剧| 一路向西张暖雅| 国风按摩院5部曲顺序及观看方法 房间里的二人世界原声全集 | 宋孝敏在《露营地》里扮演谁| 汪峰春天里| 满江红在线观看免费观看完整版 | 修理工的艳遇三级片| 《哪吒3》在线观看| 密爱 优酷| 流浪的青春| 伦理厨房与继牳3| 牙医姐姝在线电影播放完整版免费观看 | 美女脱个精光扒开| 篮球飞人| 吸血鬼偶像 电视剧| 乘胜狙击粤语在线观看| 抵债的妻子电影| 杰罗德游戏电影| 我的另一面土耳其电视剧| 小萍的性荡生活第24集| 《我的舞蹈女教练》| 白昼之月电视剧完整版在线观看 | 恐怖食人鱼3| 美国特别酒店3| 《高压监狱3》伦理法国| 三国粤语版| 我们中文在线观看免费完整版 | 梁朝伟绝代双骄| 年轻的小婊3韩剧中文版| 需要爸爸播种子2美国电影| 战略特勤组| 大话西游之月光宝盒电影| 穿越之医妃难囚全集免费| 高清致命录像带:万圣节未删减| 好姑娘2免费高清全集| 红杏出墙记免费看| 透析 电影| 《星河战队1》电影| 妻子被部长欺负免费观看电视剧| 漂亮阿姨| 陪你逐风飞翔电视剧免费观看| 不怕开水烫| 瞒天过海:美人计| 女销售员的秘密| 饼干警长| 小精灵动画片| 方子传 韩国完整版| 特克斯县| 朴英善《爱的释放》免费观看全集| 夫妻这些事| 新白娘子传奇在线观看| 雪花神剑全集| 墨西哥《瓜达卢佩玫瑰》| 美国小粉桃| 超级女英雄| 爱在初春惊变时| 小学生高清MV在线观看| 韩国电影推油| 虎胆龙威5百度影音| 初恋姐妹| 火影忍者第1集| 上海重症高峰慢慢出现| 成全动漫高清全集免费看| 政坛巨星| 电影窗外| 僵尸启示录没删掉版在线观看| 俏媳妇致富经:重生八零短剧全集| 量子沙盘| 法证先锋5粤语版免费观看 | 妻子的谎言大结局52集| 实习医生电影| 简言的夏冬在线观看| 逃学神探在线观看免费完整| 死神来了8在线观看完| 霍元甲全集| 《朋友夫妇:交换》3| 捉鬼有限公司| 罪猎图鉴2在线观看全集高清免费| 母亲爱上儿子的同学》电影| 一刀不剪| 最好的相遇电影免费观看| 火玫瑰国语| 出差期间被上司欺负叫什么电影部长 | 爱情真可怕迅雷下载| 中国女警的一级播放| 《大兵的寝室》美剧免费观看中文版| 游泳湿润无删减版在线观看| 博得之门2| 南北少林电影| x4631鲁大师| 私人航空完整版在线观看| 诡劫 电影| 高清《老少恋》电影免费观看| 麦乐迪的女超人在线观看完整免费满天星百度云 | 向风而行电视剧免费观影| 华丽的外出电影在线| 爱丫爱丫在线观看免费高清电视剧有| 免费无毒韩国R片《韩国三级》| 儿子爱上妈妈| 电视剧前行者免费观看完整版| 曾经的疫苗我不懂得珍惜| 小辣椒3美国伦理| 双女任务高清完整版在线观看 | 超级接班人| 欢乐颂5高清免费| 黑人大屌在线观看| 激情文学激情五月天| 《死亡之花》| 电影我的错误免费观看完整版| 黑玫瑰红玫瑰| 《特殊的游泳教练》| 黑人男按摩师好爽| 《父母爱情》续集| 黑帮大佬和我的360天| 启示录在线观看免费完整版高清| 新编西游记| 《花与蛇·1》| 需要爸爸播种子电影免费播放英文 | 混战两姐妹国语版免费观看高清| 黑白潜行| 黑帮大佬的365第二季免费观看| 赤子板栗《千金小姐》| SONE-367本乡爱在线观看| 无所畏惧40集免费看爱奇艺| 办公室糟蹋秘书在线观看| 北京达内教育官网| 《私人航空》免费观看在线播放| 村上沙兽皇电影在线观| 胖玻璃球就一个| 五十度黑电影| 太阳之歌女主角| 一对一播放| 瓦嘎日韩三级片| 七姐妹电视剧免费观看全集在线| 快闪之星图片| 高清《窃视者》王李丹妮| 希岛爱理| 韩国游泳池做爱| 金瓶梅 1高清完整版| 诈欺猎人| 算计七天的死亡游戏| 电影搜索引擎| 女角斗士3| 电影女囚| 麦蒂自抛自扣| 延禧攻略70集免费播放完整版| 姐姐免费观看国语电影| 牙医姊妹电影完整版| 天海翼视频在线| 情色电影网| 再见18班在线观看免费版| 神奇的美容院| 美国《粉红大白菜》剧情介绍| 《大兵的寝室》电影完整版在线观看 | 五步定华山| 维修人员的培训 在线| 麦乐迪马克思女超人在线观看完整免费高清原声满天星百 | 很讨厌的部长去差旅| 强袭魔女剧场版| 《热血青春》凯帕克| 电视剧扫黑风暴40集在线观看| 3对1:两男一女一次性体检电视剧| 满天星版《罪恶女人》| 电影泰山| 唐朝豪放女电视剧完整版| 《私人航空》法国电影2019| 电影《鸳鸯戏水》| 发情期继妹| 末日之热浪来袭短剧| 缅甸北部的视频在哪里可以看| 家庭矛盾完整版麦乐迪 | 京城小二| 因法之名电视剧全集在线观看| 徐少强新版金银瓶2008| 地狱究竟有几层在线观看电影| 三生三世枕上书在线免费观看| 受戒电影完整版在线观看| 诺言电视剧| 《overflower》真人版第一季 | 乔尼亚斯奥特曼全集| 宫锁沉香电影下载| 肉肉的小黄车| 明星大侦探第五季在线观看| 拿下老公的部下| 亲爱的热爱的电视剧全集免费观看| 法国空乘5免费高清原声满天 | 黄尚武私房作品合集| 誓言今生 下载| 金银梅10全集免费播放| 第六感泰剧| 成仁高清影视| 富爸爸大预言| 酒店1至5集免费| 偷听女人心| 成员函数指针| 和田市| 咒怨录像带版| 地下婴儿乐队| 电视剧如懿传| 《丰胸沙龙治疗3》HD无字高清完整版| 胖玻璃球就一个| 杨光的爱情故事下载| 盗马贼免费| 午夜寂寞影院全部视频列表安卓UC浏览器 | 《美容院待遇》酷客| 那金花和她的女婿46| ごっくんする在线| 法国电影爱我几何免费观看 | 去有风的地方电视剧免费观看| 《女销售员:》法国| 奔跑吧 综艺| 哀乐大全| 妹妹最近有点怪真人电影原声配音| 乡村爱情五| 武打电影免费观看高清完整| 侯门嫡女:谋略定乾坤全集免费| 爸爸的种子免费观看电视剧美国| 洪真英被躁B在线观看 | 六指琴魔 电视剧| 甜蜜惩罚3未增删带翻译整集| 圣特罗佩斯的姑娘们全集免费播放 | 隐身的名字未删减| 仙剑奇侠传3 38集| 齐天大圣孙悟空| 古墓丽影满天星高压美版免费| 战狼6免费播9999 | 漂白在线免费观看| 指环王2:双塔奇兵免费| 哆啦a梦:大雄的宇宙英雄记| 凪光在线免费| 达达兔免费观看延禧攻略| 香瓜七兄弟全集| 高达00第一季| 《斗罗大陆剧场版 剑道尘心》| 韩国保险公司推销员8| xl司令第二季无马赛1-40在线观看| 无限动漫在线观看免费| 原罪电影| 中国特种部队宣传片| 法国电影《女超人》| 有兽焉第四季动画免费观看| 彭丹六魔女| 女超人满天星无删减麦乐迪| 希望树刘寅| 高清维珍朋克:发条女孩未删减| 薄樱鬼耽美| 平凡岁月的魅力| 妈妈的职业8结局原声在线看视频免费| 斗罗大陆1080全集免费观看| 疯狂汉堡| 《咒》在线观看2022| 半老徐娘爱上小伙电影| 日剧渣男前任求复合| 《令人心动的房东小姐》动漫全集 | 被学长灌满JING液去双男主| 五通神魔三只狐妖免费观看| 高清《碧血剑》电影| 我和女侠有个约会| 2024电视剧《漂白》在线播放| 战狼6大牛| 沉香如屑全集在线观看| 盲战安志杰在线观看完整版| 不能失去你| 重蓬:丈夫的下属是初恋前辈| 美国《粉红大白菜》剧情介绍| 爱的罗曼史| 被蹂躏的她158分钟未删减版| 美乃雀电影| 李月仙杏林春暖| 归路第二部电视剧第一集| 翁红的电影| 《夜与日》电影完整版| 《高压监狱》完整免费| 微笑pasta全集| 电视剧飞哥大英雄在线观看| 莉娜安德森的满天星代表《小姐》| 浙江卫视美食爽天下| 韩版恶作剧之吻2| 恋梦空间第二季| 战狼5电影免费播放| 精武陈真全集| 善良的的瘦子| 韩剧不得做室友第二季观看| 流星花园高清版| 轩辕剑之天之痕26| 极限挑战第二季全集免费| 黑帮帮大佬和我的365| 《示范销售2避孕套》| 渔夫荒淫史在线| 火星救援在线观看| 罪域电视剧全集播放| 公之浮之手中有字9| 日本年经的继拇3| 黑话律师第五集在线观看| 日本军舰进行曲| 我们恋爱吧第五季在线观看| 《重见天日》电影| 哈尔滨漫展麻衣学姐| 哇嘎电影高清完整视频| 一日女采人电影| 冯巩小品返乡| 离婚女人电视剧| 租借女友第3季免费观看动漫 | 玉女心经3阴阳| 《银鞋》| 富贵开心鬼电影| 超人hr版| 恶魔幸存者第二季动漫| 普京抵达人民大会堂| 伦理《法国空乘13》观看| 售楼小姐的秘密在线| 喜庆农家全集| 威尔史密斯最新电影| 死神在线观看| 年轻的女邻居8| 千金女贼 电视剧| 《水润女人》| 《千金赤子板栗》完整| 紫钗奇缘粤语版| 邻居家的姐姐| 动漫无双3终极无敌版| 宁安如梦电视剧免费观看全集播出| 法国电影《私人航空》在线看| 韩剧《隐形的帽子》| 崔洪万身高| 美妙人生| 少女rtys| 年轻的继母2| 《卖百科全书》播放| 陈翔六点半之废话少说 电影|