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

JavaScript基礎:如何管理JS中的內存?什么是內存泄漏和垃圾回收

開發 前端
像C語言這樣的底層語言一般都有底層的內存管理接口,比如 malloc()和free()用于分配內存和釋放內存。 而對于JavaScript來說,會在創建變量(對象,字符串等)時分配內存,并且在不再使用它們時“自動”釋放內存,這個自動釋放內存的過程稱為垃圾回收。

前言

像C語言這樣的底層語言一般都有底層的內存管理接口,比如 malloc()和free()用于分配內存和釋放內存。 而對于JavaScript來說,會在創建變量(對象,字符串等)時分配內存,并且在不再使用它們時“自動”釋放內存,這個自動釋放內存的過程稱為垃圾回收。 因為自動垃圾回收機制的存在,讓大多Javascript開發者感覺他們可以不關心內存管理,所以會在一些情況下導致內存泄漏。

內存生命周期

JavaScript基礎:如何管理JS中的內存?什么是內存泄漏和垃圾回收

 

JS 環境中分配的內存有如下聲明周期:

  1. 內存分配:當我們申明變量、函數、對象的時候,系統會自動為他們分配內存
  2. 內存使用:即讀寫內存,也就是使用變量、函數等
  3. 內存回收:使用完畢,由垃圾回收機制自動回收不再使用的內存

JS 的內存分配

為了不讓程序員費心分配內存,JavaScript 在定義變量時就完成了內存分配。

JavaScript基礎:如何管理JS中的內存?什么是內存泄漏和垃圾回收

 

有些函數調用結果是分配對象內存:

  1. var d = new Date(); // 分配一個 Date 對象 
  2. var e = document.createElement('div'); // 分配一個 DOM 元素 

有些方法分配新變量或者新對象:

  1. var s = "azerty"
  2. var s2 = s.substr(0, 3); // s2 是一個新的字符串 
  3. // 因為字符串是不變量, 
  4. // JavaScript 可能決定不分配內存, 
  5. // 只是存儲了 [0-3] 的范圍。 
  6. var a = ["ouais ouais""nan nan"]; 
  7. var a2 = ["generation""nan nan"]; 
  8. var a3 = a.concat(a2);  
  9. // 新數組有四個元素,是 a 連接 a2 的結果 

JS 的內存使用

使用值的過程實際上是對分配內存進行讀取與寫入的操作。 讀取與寫入可能是寫入一個變量或者一個對象的屬性值,甚至傳遞函數的參數。

  1. var a = 10; // 分配內存 
  2. console.log(a); // 對內存的使用 

JS 的內存回收

JS 有自動垃圾回收機制,那么這個自動垃圾回收機制的原理是什么呢? 其實很簡單,就是找出那些不再繼續使用的值,然后釋放其占用的內存。

大多數內存管理的問題都在這個階段。 在這里最艱難的任務是找到不再需要使用的變量。

不再需要使用的變量也就是生命周期結束的變量,是局部變量,局部變量只在函數的執行過程中存在, 當函數運行結束,沒有其他引用(閉包),那么該變量會被標記回收。

全局變量的生命周期直至瀏覽器卸載頁面才會結束,也就是說全局變量不會被當成垃圾回收。

因為自動垃圾回收機制的存在,開發人員可以不關心也不注意內存釋放的有關問題,但對無用內存的釋放這件事是客觀存在的。 不幸的是,即使不考慮垃圾回收對性能的影響,目前***的垃圾回收算法,也無法智能回收所有的極端情況。

接下來我們來探究一下 JS 垃圾回收的機制。

垃圾回收

引用

垃圾回收算法主要依賴于引用的概念。

在內存管理的環境中,一個對象如果有訪問另一個對象的權限(隱式或者顯式),叫做一個對象引用另一個對象。

例如,一個Javascript對象具有對它原型的引用(隱式引用)和對它屬性的引用(顯式引用)。

在這里,“對象”的概念不僅特指 JavaScript 對象,還包括函數作用域(或者全局詞法作用域)。

引用計數垃圾收集

這是最初級的垃圾回收算法。

引用計數算法定義“內存不再使用”的標準很簡單,就是看一個對象是否有指向它的引用。 如果沒有其他對象指向它了,說明該對象已經不再需了。

JavaScript基礎:如何管理JS中的內存?什么是內存泄漏和垃圾回收

 

由上面可以看出,引用計數算法是個簡單有效的算法。但它卻存在一個致命的問題:循環引用

如果兩個對象相互引用,盡管他們已不再使用,垃圾回收不會進行回收,導致內存泄露。

來看一個循環引用的例子:

JavaScript基礎:如何管理JS中的內存?什么是內存泄漏和垃圾回收

 

上面我們申明了一個函數 f ,其中包含兩個相互引用的對象。 在調用函數結束后,對象 o1 和 o2 實際上已離開函數范圍,因此不再需要了。 但根據引用計數的原則,他們之間的相互引用依然存在,因此這部分內存不會被回收,內存泄露不可避免了。

再來看一個實際的例子:

  1. var div = document.createElement("div"); 
  2. div.onclick = function() { 
  3.  console.log("click"); 
  4. }; 
     

上面這種JS寫法再普通不過了,創建一個DOM元素并綁定一個點擊事件。 此時變量 div 有事件處理函數的引用,同時事件處理函數也有div的引用!(div變量可在函數內被訪問)。 一個循序引用出現了,按上面所講的算法,該部分內存無可避免的泄露了。

為了解決循環引用造成的問題,現代瀏覽器通過使用標記清除算法來實現垃圾回收。

標記清除算法

標記清除算法將“不再使用的對象”定義為“無法達到的對象”。 簡單來說,就是從根部(在JS中就是全局對象)出發定時掃描內存中的對象。 凡是能從根部到達的對象,都是還需要使用的。 那些無法由根部出發觸及到的對象被標記為不再使用,稍后進行回收。

從這個概念可以看出,無法觸及的對象包含了沒有引用的對象這個概念(沒有任何引用的對象也是無法觸及的對象)。 但反之未必成立。

工作流程:

  1. 垃圾收集器會在運行的時候會給存儲在內存中的所有變量都加上標記。
  2. 從根部出發將能觸及到的對象的標記清除。
  3. 那些還存在標記的變量被視為準備刪除的變量。
  4. ***垃圾收集器會執行***一步內存清除的工作,銷毀那些帶標記的值并回收它們所占用的內存空間。
JavaScript基礎:如何管理JS中的內存?什么是內存泄漏和垃圾回收

 

循環引用不再是問題了

再看之前循環引用的例子:

  1. function f(){ 
  2.  var o = {}; 
  3.  var o2 = {}; 
  4.  o.a = o2; // o 引用 o2 
  5.  o2.a = o; // o2 引用 o 
  6.  return "azerty"
  7. f(); 

函數調用返回之后,兩個循環引用的對象在垃圾收集時從全局對象出發無法再獲取他們的引用。 因此,他們將會被垃圾回收器回收。

內存泄漏

什么是內存泄漏

程序的運行需要內存。只要程序提出要求,操作系統或者運行時(runtime)就必須供給內存。

對于持續運行的服務進程(daemon),必須及時釋放不再用到的內存。 否則,內存占用越來越高,輕則影響系統性能,重則導致進程崩潰。

本質上講,內存泄漏就是由于疏忽或錯誤造成程序未能釋放那些已經不再使用的內存,造成內存的浪費。

內存泄漏的識別方法

經驗法則是,如果連續五次垃圾回收之后,內存占用一次比一次大,就有內存泄漏。 這就要求實時查看內存的占用情況。

在 Chrome 瀏覽器中,我們可以這樣查看內存占用情況

  1. 打開開發者工具,選擇 Performance 面板
  2. 在頂部勾選 Memory
  3. 點擊左上角的 record 按鈕
  4. 在頁面上進行各種操作,模擬用戶的使用情況
  5. 一段時間后,點擊對話框的 stop 按鈕,面板上就會顯示這段時間的內存占用情況

來看一張效果圖:

JavaScript基礎:如何管理JS中的內存?什么是內存泄漏和垃圾回收

 

我們有兩種方式來判定當前是否有內存泄漏:

  1. 多次快照后,比較每次快照中內存的占用情況,如果呈上升趨勢,那么可以認為存在內存泄漏
  2. 某次快照后,看當前內存占用的趨勢圖,如果走勢不平穩,呈上升趨勢,那么可以認為存在內存泄漏

在服務器環境中使用 Node 提供的 process.memoryUsage 方法查看內存情況

console.log(process.memoryUsage());
// {
// rss: 27709440,
// heapTotal: 5685248,
// heapUsed: 3449392,
// external: 8772
// }

process.memoryUsage返回一個對象,包含了 Node 進程的內存占用信息。

該對象包含四個字段,單位是字節,含義如下:

  • rss(resident set size):所有內存占用,包括指令區和堆棧。
  • heapTotal:"堆"占用的內存,包括用到的和沒用到的。
  • heapUsed:用到的堆的部分。
  • external: V8 引擎內部的 C++ 對象占用的內存。

判斷內存泄漏,以heapUsed字段為準。

常見的內存泄露案例

意外的全局變量

function foo() {
bar1 = 'some text'; // 沒有聲明變量 實際上是全局變量 => window.bar1
this.bar2 = 'some text' // 全局變量 => window.bar2
}
foo();

在這個例子中,意外的創建了兩個全局變量 bar1 和 bar2

被遺忘的定時器和回調函數

在很多庫中, 如果使用了觀察者模式, 都會提供回調方法, 來調用一些回調函數。 要記得回收這些回調函數。舉一個 setInterval的例子:

var serverData = loadData();
setInterval(function() {
var renderer = document.getElementById('renderer');
if(renderer) {
renderer.innerHTML = JSON.stringify(serverData);
}
}, 5000); // 每 5 秒調用一次

如果后續 renderer 元素被移除,整個定時器實際上沒有任何作用。 但如果你沒有回收定時器,整個定時器依然有效, 不但定時器無法被內存回收, 定時器函數中的依賴也無法回收。在這個案例中的 serverData 也無法被回收。

閉包

在 JS 開發中,我們會經常用到閉包,一個內部函數,有權訪問包含其的外部函數中的變量。 下面這種情況下,閉包也會造成內存泄露:

JavaScript基礎:如何管理JS中的內存?什么是內存泄漏和垃圾回收

 

這段代碼,每次調用 replaceThing 時,theThing 獲得了包含一個巨大的數組和一個對于新閉包 someMethod 的對象。 同時 unused 是一個引用了 originalThing 的閉包。

這個范例的關鍵在于,閉包之間是共享作用域的,盡管 unused 可能一直沒有被調用,但是 someMethod 可能會被調用,就會導致無法對其內存進行回收。 當這段代碼被反復執行時,內存會持續增長。

DOM 引用

很多時候, 我們對 Dom 的操作, 會把 Dom 的引用保存在一個數組或者 Map 中。

JavaScript基礎:如何管理JS中的內存?什么是內存泄漏和垃圾回收

 

上述案例中,即使我們對于 image 元素進行了移除,但是仍然有對 image 元素的引用,依然無法對齊進行內存回收。

另外需要注意的一個點是,對于一個 Dom 樹的葉子節點的引用。 舉個例子: 如果我們引用了一個表格中的td元素,一旦在 Dom 中刪除了整個表格,我們直觀的覺得內存回收應該回收除了被引用的 td 外的其他元素。 但是事實上,這個 td 元素是整個表格的一個子元素,并保留對于其父元素的引用。 這就會導致對于整個表格,都無法進行內存回收。所以我們要小心處理對于 Dom 元素的引用。

如何避免內存泄漏

記住一個原則:不用的東西,及時歸還

  1. 減少不必要的全局變量,使用嚴格模式避免意外創建全局變量。
  2. 在你使用完數據后,及時解除引用(閉包中的變量,dom引用,定時器清除)。
  3. 組織好你的邏輯,避免死循環等造成瀏覽器卡頓,崩潰的問題。

 

責任編輯:龐桂玉 來源: 今日頭條
相關推薦

2023-05-31 09:00:00

2021-09-26 05:06:46

JS垃圾內存

2022-05-26 09:51:50

JavaScrip內存泄漏

2025-07-23 07:40:29

2010-09-26 16:42:04

JVM內存組成JVM垃圾回收

2011-08-15 16:28:06

Cocoa內存管理

2021-08-09 09:54:37

內存泄漏JS 阿里云

2021-08-05 15:28:22

JS內存泄漏

2024-10-24 16:51:08

2023-12-19 21:52:51

Go垃圾回收開發

2020-01-03 16:04:10

Node.js內存泄漏

2023-02-20 15:27:30

開發JavaScript內存管理

2013-10-11 17:32:18

Linux運維內存管理

2023-02-28 07:56:07

V8內存管理

2009-09-02 09:23:26

.NET內存管理機制

2023-05-12 07:38:46

Python基準測試性能分析

2017-03-20 13:43:51

Node.js內存泄漏

2017-03-19 16:40:28

漏洞Node.js內存泄漏

2024-04-10 13:59:44

JavaScript內存

2009-06-10 22:03:40

JavaScript內IE內存泄漏
點贊
收藏

51CTO技術棧公眾號

99riav国产精品| 538在线精品| 激情图片小说一区| 色综合天天狠天天透天天伊人| 91福利视频免费观看| 国产黄大片在线观看| 国产人伦精品一区二区| 亚洲精品日产aⅴ| 国产精品午夜影院| 999久久久免费精品国产| 精品久久五月天| 欧美性猛交xxx乱久交| av软件在线观看| 久久夜色精品一区| 成人在线小视频| 中文字幕亚洲精品一区| 国产精品久久久久无码av| 亚洲精品久久久久| 在线观看视频在线观看| 三上悠亚激情av一区二区三区 | 福利视频导航一区| 精品日韩在线播放| 国产私人尤物无码不卡| a级精品国产片在线观看| 国产欧美va欧美va香蕉在线| 国产成人一区二区三区影院在线| 国产精品国产三级国产在线观看| 国产视频久久久久| 麻豆av免费看| 欧美性生活一级| 欧美日韩一区二区精品| 成人在线视频一区二区三区| 91在线视频| 久久亚洲精品小早川怜子| 999视频在线免费观看| 亚洲熟妇av乱码在线观看| 国产一区二区三区久久久久久久久 | 高清乱码毛片入口| 国模一区二区三区白浆| 国产精品久久久久久久天堂| 久久黄色精品视频| 一区在线视频| 欧美激情一级精品国产| 国产盗摄一区二区三区在线| 91麻豆精品国产91久久久平台| 亚洲女人天堂色在线7777| 超碰97在线资源站| av不卡一区二区| 日韩午夜激情av| 亚洲一二三av| 成人影院网站ww555久久精品| 欧美亚日韩国产aⅴ精品中极品| 国产精品亚洲a| 9i看片成人免费高清| 精品久久久久久国产91| 免费看国产曰批40分钟| 九色porny丨入口在线| 午夜视频在线观看一区二区三区| 六月婷婷在线视频| 岛国av在线播放| 婷婷综合在线观看| 亚洲熟妇国产熟妇肥婆| 香蕉伊大人中文在线观看| 大荫蒂欧美视频另类xxxx| 久草青青在线观看| 精品91久久| 欧美视频一区在线观看| av中文字幕网址| 国产亚洲字幕| 亚洲成人激情在线| 亚洲国产无码精品| 欧美日韩黑人| 久久亚洲欧美日韩精品专区| 毛片aaaaa| 亚洲韩日在线| 日韩女在线观看| 亚洲网站免费观看| 国产精品一区二区免费不卡| 国产激情一区二区三区在线观看| 欧美性猛交 xxxx| 久久久精品免费网站| 神马一区二区影院| 国产精品va在线观看视色 | 免费成人进口网站| 国产在线拍揄自揄拍视频 | 香港三级韩国三级日本三级| 一根才成人网| 69堂精品视频| 一级黄色免费视频| 国内精品视频在线观看| 久久久国产视频91| 日韩乱码一区二区| 免费精品视频在线| 成人av男人的天堂| 精品欧美不卡一区二区在线观看| 国产精品初高中害羞小美女文| 中文字幕在线中文| 天堂中文在线资源| 麻豆国产一区二区三区四区| 日韩视频中午一区| 亚洲色图欧美日韩| 欧美在线观看视频一区| 九九精品视频在线| 337p粉嫩色噜噜噜大肥臀| 久草在线在线精品观看| 国产在线精品一区| 嫩草在线视频| 婷婷国产v国产偷v亚洲高清| 国产精品区在线| 久久久伦理片| 色婷婷综合成人| 日本中文字幕在线免费观看| 久久精品99国产精品日本| 精品久久久久久一区| 黄网站在线免费看| 色美美综合视频| a级片在线观看视频| 色琪琪久久se色| 欧洲亚洲女同hd| 97人人爽人人爽人人爽| 久久精品日产第一区二区三区高清版 | 日韩电影网在线| 欧美三级在线免费观看| 日本va欧美va欧美va精品| 国产伦视频一区二区三区| 黄视频在线观看网站| 在线一区二区三区| 动漫精品一区二区三区| 欧美日本亚洲韩国国产| 成人黄色网免费| 在线免费看黄| 在线观看日韩国产| 女人又爽又黄免费女仆| 亚洲美女网站| 国产欧美日韩在线播放| 在线网址91| 91精品国产综合久久久久久久久久| 成人h动漫精品一区| 亚洲经典三级| 国产伦精品一区二区三区免| 色呦呦久久久| 91精品视频网| 欧美精品久久久久久久久46p| 免费高清成人在线| 亚洲va久久久噜噜噜久久狠狠 | 国产日韩精品在线观看| а√天堂中文在线资源bt在线| 色噜噜狠狠成人网p站| 野花社区视频在线观看| 一区福利视频| 久久99精品国产一区二区三区| 18aaaa精品欧美大片h| 亚洲电影成人av99爱色| 日韩精品成人一区| 99精品久久久久久| 精品少妇一区二区三区在线| 牛牛精品成人免费视频| 久久久com| 国产盗摄在线视频网站| 精品免费日韩av| 国产在线视频99| 成人免费毛片a| 欧美乱做爰xxxⅹ久久久| 日韩视频一二区| 欧美精品电影在线| 日韩在线视频免费| 日韩欧美国产高清91| 蜜桃无码一区二区三区| 蜜臀久久99精品久久久久宅男 | 欧美自拍小视频| 爽成人777777婷婷| 7777奇米亚洲综合久久| 538视频在线| 亚洲视频axxx| 一本色道久久综合亚洲| 亚洲精品视频在线观看网站| 久久久久无码国产精品一区李宗瑞 | 久久久久久久极品| 久久久久高清精品| 夜夜夜夜夜夜操| 欧美午夜影院| 久久免费看av| 日韩精品一区二区三区av| 精品激情国产视频| 亚洲国产一二三区| 懂色av影视一区二区三区| 粉嫩精品久久99综合一区| 国内精品不卡在线| 久久综合九色综合88i| 清纯唯美亚洲综合一区| 亚洲xxxx在线| 欧美日韩国产v| 久久精品久久久久电影| 人人妻人人澡人人爽精品日本| 一本大道av伊人久久综合| 在线看的片片片免费| 99久久精品免费看| 国产成人美女视频| 国产精品久久久免费 | 真人bbbbbbbbb毛片| 麻豆精品新av中文字幕| 女人帮男人橹视频播放| 成人羞羞网站| 极品校花啪啪激情久久| 日韩欧乱色一区二区三区在线| 久久人人97超碰精品888| 第九色区av在线| 精品国产一区二区三区久久久蜜月 | 91啪国产在线| 日本国产欧美| 2019中文字幕在线| 色呦呦在线观看视频| 中文字幕在线日韩 | av亚洲产国偷v产偷v自拍| 热久久久久久久久| 日韩精品电影一区亚洲| 欧美不卡在线播放| 欧美有码视频| 一区二区视频在线播放| 蜜桃a∨噜噜一区二区三区| www.久久久| 在线播放成人| 国产精品高潮呻吟久久av无限 | 亚洲日本久久久| 国内精品视频一区二区三区八戒| jizz欧美激情18| 销魂美女一区二区三区视频在线| 97久久国产亚洲精品超碰热| 婷婷综合在线| 一区二区精品视频| 欧美日韩国产免费观看视频| 日本不卡久久| 自拍偷拍欧美一区| 久久综合福利| 天堂99x99es久久精品免费| 国产精品久久久久久久免费大片| 精品中文在线| 91亚洲午夜在线| 91精品一区| 91亚洲精品久久久| 成人影院网站ww555久久精品| 国产在线视频欧美| 亚洲精品一区av| 国产综合视频在线观看| 欧洲亚洲精品| 成人观看高清在线观看免费| 日韩亚洲国产免费| 91久久精品国产91久久性色| 24小时成人在线视频| 成人一区二区电影| 欧美欧美在线| 国产精品久久国产精品| www.丝袜精品| 久久久久久久久四区三区| 香蕉人人精品| 午夜精品视频在线观看一区二区 | 波多野结衣精品在线| www国产视频| 91麻豆国产自产在线观看| 久久国产精品影院| 国产午夜精品在线观看| аⅴ天堂中文在线网| 中文字幕一区av| 欧美日韩免费做爰视频| 亚洲国产aⅴ成人精品无吗| 日本免费在线播放| 欧美性xxxx极品hd满灌| 亚洲成人av网址| 884aa四虎影成人精品一区| 国产福利视频导航| 亚洲国产精品推荐| 美州a亚洲一视本频v色道| 中文字幕亚洲综合久久| a视频在线播放| 91精品国产高清自在线| 日本一区免费网站| 99re在线播放| 伊人成综合网伊人222| 在线观看国产一区| 国产精品啊v在线| 精品www久久久久奶水| 久久国产精品色| 日韩少妇一区二区| 欧美国产精品v| 国产在线一二区| 在线观看国产91| 亚洲黄色在线观看视频| 亚洲人成在线观看| 动漫一区在线| 日本精品久久久| 色噜噜成人av在线| 精品国产电影| 亚洲国产一成人久久精品| 成人在线免费观看av| 久久国产剧场电影| 日韩aaaaa| 综合久久久久综合| 毛片视频网站在线观看| 欧美一区二区三区小说| 欧美挠脚心网站| 欧美区二区三区| 日本欧美一区| 精品国产乱码久久久久软件| 99精品综合| 粗暴91大变态调教| 成人午夜伦理影院| 亚洲一级理论片| 天天综合日日夜夜精品| 国产熟女精品视频| 亚洲视频第一页| 日本不卡1234视频| 波多野结衣一区二区三区在线观看 | 欧美一区二区视频观看视频| 精品视频一二三| 97av在线视频免费播放| 欧美成人精品一级| 天天爽天天狠久久久| 亚洲美女少妇无套啪啪呻吟| 国产精品熟女一区二区不卡| 中文字幕av不卡| 国产一级免费视频| 亚洲精品久久久久久久久| 18视频在线观看| 成人黄色影片在线| 成人羞羞视频播放网站| 欧美激情精品久久久久久小说| 波多野结衣中文一区| 久久av高潮av无码av喷吹| 91精品免费在线观看| 在线观看免费黄视频| 国产精品福利片| 国产一区二区三区电影在线观看| 久久久久久久久久久99| 丁香亚洲综合激情啪啪综合| 青青草偷拍视频| 91精品国产综合久久久久久漫画| 在线观看免费黄视频| 国产精品一二区| 欧美日韩一二三四| 亚欧在线免费观看| 欧美激情一二三区| 69av视频在线观看| 国产亚洲欧美aaaa| 成人国产精品一区二区免费麻豆| 欧美福利精品| 日韩中文字幕91| 男人的天堂av网| 欧美在线不卡一区| 午夜在线小视频| 国产精品亚洲美女av网站| 国产91精品对白在线播放| 北条麻妃在线观看| 久久久久国产一区二区三区四区 | 欧美一区视久久| 视频一区国产视频| 女人黄色一级片| 欧美精品一二三| 制服丝袜中文字幕在线| 动漫精品视频| 国产精品入口| 女~淫辱の触手3d动漫| 欧美最新大片在线看| 日本美女高清在线观看免费| 91久久国产综合久久蜜月精品| 欧美片第1页综合| 中文字幕在线播放视频| 91国在线观看| 免费黄色在线看| 操一操视频一区| 国产农村妇女精品一二区| 手机免费看av| 91精品在线观看入口| 俺来也官网欧美久久精品| 久久久久久久久久久一区| 奇米色777欧美一区二区| 一区二区三区四区五区| 亚洲国产另类久久精品| 成人看片在线观看| 色一情一乱一乱一区91| 99国产精品国产精品久久| 久久久精品毛片| 超薄丝袜一区二区| 亚洲精品中文字幕99999| 天天综合网日韩| 亚洲成人午夜影院| 国产天堂在线| 国产91视觉| 免费成人av资源网| 国产精品第一页在线观看| 永久免费毛片在线播放不卡| 日韩免费成人| 日韩一级免费在线观看| 樱花影视一区二区| 国产天堂素人系列在线视频| 亚洲综合中文字幕68页| 久久久999| 久久久久免费看| 中文字幕精品在线视频| 欧美偷窥清纯综合图区| 亚洲一级免费在线观看|