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

iOS進階之頁面性能優化

移動開發 iOS
在軟件開發領域里經常能聽到這樣一句話,“過早的優化是萬惡之源”,不要過早優化或者過度優化。我認為在編碼過程中時刻注意性能影響是有必要的,但凡事都有個度,不能為了性能耽誤了開發進度。在時間緊急的情況下我們往往采用“quick and dirty”的方案來快速出成果,后面再迭代優化,即所謂的敏捷開發。與之相對應的是傳統軟件開發中的瀑布流開發流程。

前言

在軟件開發領域里經常能聽到這樣一句話,“過早的優化是萬惡之源”,不要過早優化或者過度優化。我認為在編碼過程中時刻注意性能影響是有必要的,但凡事都有個度,不能為了性能耽誤了開發進度。在時間緊急的情況下我們往往采用“quick and dirty”的方案來快速出成果,后面再迭代優化,即所謂的敏捷開發。與之相對應的是傳統軟件開發中的瀑布流開發流程。

卡頓產生的原因 

 

 

卡頓產生的原因 

在 iOS 系統中,圖像內容展示到屏幕的過程需要 CPU 和 GPU 共同參與。CPU 負責計算顯示內容,比如視圖的創建、布局計算、圖片解碼、文本繪制等。隨后 CPU 會將計算好的內容提交到 GPU 去,由 GPU 進行變換、合成、渲染。之后 GPU 會把渲染結果提交到幀緩沖區去,等待下一次 VSync 信號到來時顯示到屏幕上。由于垂直同步的機制,如果在一個 VSync 時間內,CPU 或者 GPU 沒有完成內容提交,則那一幀就會被丟棄,等待下一次機會再顯示,而這時顯示屏會保留之前的內容不變。這就是界面卡頓的原因。

因此,我們需要平衡 CPU 和 GPU 的負荷避免一方超負荷運算。為了做到這一點,我們首先得了解 CPU 和 GPU 各自負責哪些內容。 

 

 

 

上面的圖展示了 iOS 系統下各個模塊所處的位置,下面我們再具體看一下 CPU 和 GPU 對應了哪些操作。

CPU 消耗型任務

布局計算

布局計算是 iOS 中最為常見的消耗 CPU 資源的地方,如果視圖層級關系比較復雜,計算出所有圖層的布局信息就會消耗一部分時間。因此我們應該盡量提前計算好布局信息,然后在合適的時機調整對應的屬性。還要避免不必要的更新,只在真正發生了布局改變時再更新。

對象創建

對象創建過程伴隨著內存分配、屬性設置、甚至還有讀取文件等操作,比較消耗 CPU 資源。盡量用輕量的對象代替重量的對象,可以對性能有所優化。比如 CALayer 比 UIView 要輕量許多,如果視圖元素不需要響應觸摸事件,用 CALayer 會更加合適。

通過 Storyboard 創建視圖對象還會涉及到文件反序列化操作,其資源消耗會比直接通過代碼創建對象要大非常多,在性能敏感的界面里,Storyboard 并不是一個好的技術選擇。

對于列表類型的頁面,還可以參考 UITableView 的復用機制。每次要初始化 View 對象時先根據 identifier 從緩存池里取,能取到就復用這個 View 對象,取不到再真正執行初始化過程。滑動屏幕時,會將滑出屏幕外的 View 對象根據 identifier 放入緩存池,新進入屏幕可見范圍內的 View 又根據前面的規則來決定是否要真正初始化。

Autolayout

Autolayout 是蘋果在 iOS6 之后新引入的布局技術,在大多數情況下這一技術都能大大提升開發速度,特別是在需要處理多語言時。比如阿拉伯語下布局是從右往左,通過 Autolayout 設置 leading 和 trailing 即可。

但是 Autolayout 對于復雜視圖來說常常會產生嚴重的性能問題,對于性能敏感的頁面建議還是使用手動布局的方式,并控制好刷新頻率,做到真正需要調整布局時再重新布局。

文本計算

如果一個界面中包含大量文本(比如微博、微信朋友圈等),文本的寬高計算會占用很大一部分資源,并且不可避免。

一個比較常見的場景是在 UITableView 中,heightForRowAtIndexPath這個方法會被頻繁調用,即使不是耗時的計算在調用次數多了之后也會帶來性能損耗。這里的優化就是盡量避免每次都重新進行文本的行高計算,可以在獲取到 Model 數據后就根據文本內容計算好布局信息,然后將這份布局信息作為一個屬性保存到對應的 Model 中,這樣在 UITableView 的回調中就可以直接使用 Model 中的屬性,減少了文本的計算。

文本渲染 

 

 

 

屏幕上能看到的所有文本內容控件,包括 UIWebView,在底層都是通過 CoreText 排版、繪制為 Bitmap 顯示的。常見的文本控件 (UILabel、UITextView 等),其排版和繪制都是在主線程進行的,當顯示大量文本時,CPU 的壓力會非常大。

這一部分的性能優化就需要我們放棄使用系統提供的上層控件轉而直接使用 CoreText 進行排版控制。

Wherever possible, try to avoid making changes to the frame of a view that contains text, because it will cause the text to be redrawn. For example, if you need to display a static block of text in the corner of a layer that frequently changes size, put the text in a sublayer instead.

上面這段話引用自 iOS Core Animation: Advanced Techniques,翻譯過來的意思就是說包含文本的視圖在改變布局時會觸發文本的重新渲染,對于靜態文本我們應該盡量減少它所在視圖的布局修改。

圖像的繪制

圖像的繪制通常是指用那些以 CG 開頭的方法把圖像繪制到畫布中,然后從畫布創建圖片并顯示的過程。前面的模塊圖里介紹了 CoreGraphic 是作用在 CPU 之上的,因此調用 CG 開頭的方法消耗的是 CPU 資源。我們可以將繪制過程放到后臺線程,然后在主線程里將結果設置到 layer 的 contents 中。代碼如下:

  1. - (void)display { 
  2.     dispatch_async(backgroundQueue, ^{ 
  3.         CGContextRef ctx = CGBitmapContextCreate(...); 
  4.         // draw in context... 
  5.         CGImageRef img = CGBitmapContextCreateImage(ctx); 
  6.         CFRelease(ctx); 
  7.         dispatch_async(mainQueue, ^{ 
  8.             layer.contents = img; 
  9.         }); 
  10.     }); 
  11.  

圖片的解碼

Once an image file has been loaded, it must then be decompressed. This decompression can be a computationally complex task and take considerable time. The decompressed image will also use substantially more memory than the original.

圖片被加載后需要解碼,圖片的解碼是一個復雜耗時的過程,并且需要占用比原始圖片還多的內存資源。

為了節省內存,iOS 系統會延遲解碼過程, 在圖片被設置到 layer 的 contents 屬性或者設置成 UIImageView 的 image 屬性后才會執行解碼過程,但是這兩個操作都是在主線程進行,還是會帶來性能問題。

如果想要提前解碼,可以使用 ImageIO 或者提前將圖片繪制到 CGContext 中,這部分實踐可以參考 iOS Core Animation: Advanced Techniques

這里多提一點,常用的 UIImage 加載方法有 imageNamed 和 imageWithContentsOfFile。其中 imageNamed 加載圖片后會馬上解碼,并且系統會將解碼后的圖片緩存起來,但是這個緩存策略是不公開的,我們無法知道圖片什么時候會被釋放。因此在一些性能敏感的頁面,我們還可以用 static 變量 hold 住 imageNamed 加載到的圖片避免被釋放掉,以空間換時間的方式來提高性能。

GPU消耗型任務

相對于 CPU 來說,GPU 能干的事情比較單一:接收提交的紋理(Texture)和頂點描述(三角形),應用變換(transform)、混合并渲染,然后輸出到屏幕上。寬泛的說,大多數 CALayer 的屬性都是用 GPU 來繪制。

以下一些操作會降低 GPU 繪制的性能,

大量幾何結構

所有的 Bitmap,包括圖片、文本、柵格化的內容,最終都要由內存提交到顯存,綁定為 GPU Texture。不論是提交到顯存的過程,還是 GPU 調整和渲染 Texture 的過程,都要消耗不少 GPU 資源。當在較短時間顯示大量圖片時(比如 TableView 存在非常多的圖片并且快速滑動時),CPU 占用率很低,GPU 占用非常高,界面仍然會掉幀。避免這種情況的方法只能是盡量減少在短時間內大量圖片的顯示,盡可能將多張圖片合成為一張進行顯示。

另外當圖片過大,超過 GPU 的最大紋理尺寸時,圖片需要先由 CPU 進行預處理,這對 CPU 和 GPU 都會帶來額外的資源消耗。

視圖的混合

當多個視圖(或者說 CALayer)重疊在一起顯示時,GPU 會首先把他們混合到一起。如果視圖結構過于復雜,混合的過程也會消耗很多 GPU 資源。為了減輕這種情況的 GPU 消耗,應用應當盡量減少視圖數量和層次,并且減少不必要的透明視圖。

離屏渲染

離屏渲染是指圖層在被顯示之前是在當前屏幕緩沖區以外開辟的一個緩沖區進行渲染操作。

離屏渲染需要多次切換上下文環境:先是從當前屏幕(On-Screen)切換到離屏(Off-Screen);等到離屏渲染結束以后,將離屏緩沖區的渲染結果顯示到屏幕上又需要將上下文環境從離屏切換到當前屏幕,而上下文環境的切換是一項高開銷的動作。

會造成 offscreen rendering 的原因有:

  • 陰影(UIView.layer.shadowOffset/shadowRadius/…)
  • 圓角(當 UIView.layer.cornerRadius 和 UIView.layer.maskToBounds 一起使用時)
  • 圖層蒙板
  • 開啟光柵化(shouldRasterize = true)

使用陰影時同時設置 shadowPath 就能避免離屏渲染大大提升性能,后面會有一個 Demo 來演示;圓角觸發的離屏渲染可以用 CoreGraphics 將圖片處理成圓角來避免。

CALayer 有一個 shouldRasterize 屬性,將這個屬性設置成 true 后就開啟了光柵化。開啟光柵化后會將圖層繪制到一個屏幕外的圖像,然后這個圖像將會被緩存起來并繪制到實際圖層的 contents 和子圖層,對于有很多的子圖層或者有復雜的效果應用,這樣做就會比重繪所有事務的所有幀來更加高效。但是光柵化原始圖像需要時間,而且會消耗額外的內存。

光柵化也會帶來一定的性能損耗,是否要開啟就要根據實際的使用場景了,圖層內容頻繁變化時不建議使用。最好還是用 Instruments 比對開啟前后的 FPS 來看是否起到了優化效果。

注意:

shouldRasterize = true 時記得同時設置 rasterizationScale

Instruments 使用 

 

 

 

Instruments 是一系列工具集,我們這里只演示 Core Animation 的使用。在 Core Animation 選項右下方會看到如下選項, 

 

 

 

Color Blended Layers

這個選項選項基于渲染程度對屏幕中的混合區域進行綠到紅的高亮顯示,越紅表示性能越差,會對幀率等指標造成較大的影響。紅色通常是由于多個半透明圖層疊加引起。

Color Hits Green and Misses Red

當 UIView.layer.shouldRasterize = YES 時,耗時的圖片繪制會被緩存,并當做一個簡單的扁平圖片來呈現。這時候,如果頁面的其他區塊(比如 UITableViewCell 的復用)使用緩存直接命中,就顯示綠色,反之,如果不命中,這時就顯示紅色。紅色越多,性能越差。因為柵格化生成緩存的過程是有開銷的,如果緩存能被大量命中和有效使用,則總體上會降低開銷,反之則意味著要頻繁生成新的緩存,這會讓性能問題雪上加霜。

Color Copied Images

對于 GPU 不支持的色彩格式的圖片只能由 CPU 來處理,把這樣的圖片標為藍色。藍色越多,性能越差。

Color Immediately

通常 Core Animation Instruments 以每毫秒 10 次的頻率更新圖層調試顏色。對某些效果來說,這顯然太慢了。這個選項就可以用來設置每幀都更新(可能會影響到渲染性能,而且會導致幀率測量不準,所以不要一直都設置它)。

Color Misaligned Images

這個選項檢查了圖片是否被縮放,以及像素是否對齊。被放縮的圖片會被標記為黃色,像素不對齊則會標注為紫色。黃色、紫色越多,性能越差。

Color Offscreen-Rendered Yellow

這個選項會把那些離屏渲染的圖層顯示為黃色。黃色越多,性能越差。這些顯示為黃色的圖層很可能需要用 shadowPath 或者 shouldRasterize 來優化。

Color OpenGL Fast Path Blue

這個選項會把任何直接使用 OpenGL 繪制的圖層顯示為藍色。藍色越多,性能越好。如果僅僅使用 UIKit 或者 Core Animation 的 API,那么不會有任何效果。

Flash Updated Regions

這個選項會把重繪的內容顯示為黃色。不該出現的黃色越多,性能越差。通常我們希望只是更新的部分被標記完黃色。

演示

上述幾個選項中常用來檢測性能的是 Color Blended Layers、Offscreen-Rendered Yellow 和 Color Hits Green and Misses Red。下面我重點演示一下離屏渲染和光柵化的檢測,寫了一個簡單的 Demo 設置了陰影效果,代碼如下:

  1. view.layer.shadowOffset = CGSizeMake(1, 1); 
  2.     view.layer.shadowOpacity = 1.0; 
  3.     view.layer.shadowRadius = 2.0; 
  4.     view.layer.shadowColor = [UIColor blackColor].CGColor; 
  5. //    view.layer.shadowPath = CGPathCreateWithRect(CGRectMake(0, 0, 50, 50), NULL);  

shadowPath 沒有設置時用 Instruments 檢測 FPS 基本在 20 以下(iPhone6設備),設置了 shadowPath 后基本維持在 55 左右,性能提升十分明顯。

下面來看一下光柵化的檢測,代碼如下,

  1. view.layer.shouldRasterize = YES; 
  2. view.layer.rasterizationScale = [UIScreen mainScreen].scale;  

勾選 Color Hits Green and Misses Red 選項后顯示如下: 

 

 

 

我們可以看到在靜止時緩存都生效了,在快速滑動時緩存基本不起作用,因此是否要開啟光柵化還是得根據具體場景,用 Instruments 檢測開啟前后的性能來決定。

總結

本文主要總結了性能調優的一些理論知識,后面還介紹了 Instruments 中 Core Animation 的一些性能檢測指標用法。性能優化最重要的是要使用工具來檢測而不是猜測,先查看是否有離屏渲染等問題,再用 Time Profiler 分析一下耗時的函數調用。修改后再用工具分析是否有改善,一步一步執行,小心仔細。

建議大家也實際動手分析一下自己的應用,加深一下印象,enjoy~

責任編輯:龐桂玉 來源: iOS大全
相關推薦

2013-01-22 15:27:23

WebWeb前端

2009-09-08 09:45:23

App Engine性

2013-12-17 16:21:17

iOSiOS性能優化

2021-07-29 14:20:34

網絡優化移動互聯網數據存儲

2021-11-29 11:13:45

服務器網絡性能

2022-02-16 14:10:51

服務器性能優化Linux

2018-01-09 16:56:32

數據庫OracleSQL優化

2019-12-13 10:25:08

Android性能優化啟動優化

2009-06-30 11:23:02

性能優化

2025-01-20 09:09:59

2011-07-11 15:26:49

性能優化算法

2023-07-19 12:24:48

C++constexpr?語句

2013-02-20 14:32:37

Android開發性能

2022-01-10 08:50:13

URL前端頁面

2016-08-12 10:23:28

javascriptChrome前端

2023-04-10 11:18:38

前端性能優化

2011-06-14 11:14:10

性能優化代碼

2021-07-16 23:01:03

SQL索引性能

2013-09-17 10:32:08

Android性能優化數據庫

2011-06-14 14:17:23

性能優化系統層次
點贊
收藏

51CTO技術棧公眾號

136fldh精品导航福利| 日韩视频免费观看高清完整版在线观看 | 性欧美一区二区| 黄色欧美视频| 亚洲国产三级在线| 亚洲精品在线观看免费| 亚洲国产999| 日韩精品一二三四| 欧美日韩成人在线观看| 在线观看日本中文字幕| 亚洲国产aⅴ精品一区二区| 色综合天天性综合| 亚洲一区 在线播放| 免费人成在线观看网站| 国产在线精品免费av| 欧美在线视频一区二区| 澳门黄色一级片| 成人同人动漫免费观看| 亚洲精品二三区| 国产调教打屁股xxxx网站| 欧美xo影院| 亚洲一区二区三区精品在线| 日韩色妇久久av| 欧美日韩国产亚洲沙发| 国产精品18久久久久久vr| 国产精品久久一区| 久久精品一二区| 在线看片成人| 久久99久久99精品免观看粉嫩| 久久日免费视频| 免费国产自久久久久三四区久久| 日韩欧美一区二区不卡| 亚洲综合日韩欧美| 日日夜夜天天综合| 懂色av一区二区三区| 国产高清不卡无码视频| 免费在线观看黄色| 国产精品女同一区二区三区| 久久青青草原| 无码国产精品一区二区色情男同| 国产不卡视频在线播放| 亚洲最大福利视频| 国产理论片在线观看| 美女性感视频久久| 国产精品一区=区| 国产精品51麻豆cm传媒| 首页亚洲欧美制服丝腿| 日本一区二区不卡| 青草视频在线观看免费| 在线亚洲激情| 欧洲成人免费aa| 久久青青草原亚洲av无码麻豆 | 中文字幕在线观看一区| 亚洲国产精品综合| 3d成人动漫在线| 中文字幕日本乱码精品影院| 亚洲最新在线| yellow91字幕网在线| 亚洲色图在线播放| av日韩在线看| 99riav视频在线观看| 午夜不卡在线视频| 日本www在线播放| 美女100%一区| 欧美性猛交xxxxxxxx| 爱情岛论坛成人| 久久91超碰青草在哪里看| 欧美日本精品一区二区三区| 手机精品视频在线| 91精品尤物| 日韩电影大片中文字幕| 久久精品国产亚洲AV熟女| 精品日韩毛片| 久久av在线播放| 日韩高清免费av| 久久久久国产精品一区三寸 | 免费一级欧美片在线观看网站| 日韩欧美卡一卡二| 中文字幕一区三区久久女搜查官| 久久不见久久见国语| 色妞欧美日韩在线| 国产小视频在线看| 丝袜亚洲精品中文字幕一区| 91精品国产综合久久香蕉的用户体验 | 久久久久久久久久久久久久久久av| 涩爱av在线播放一区二区| 久久精品一区二区三区不卡| 香蕉精品视频在线| h片在线观看下载| 一本久道久久综合中文字幕| www.色欧美| 牛牛影视久久网| 少妇高潮 亚洲精品| 久久久久久天堂| 日韩—二三区免费观看av| 91精品网站| 精品无人乱码| 亚洲一二三四在线观看| www.色就是色| 奇米影视777在线欧美电影观看| 这里只有精品视频| 国产精品第72页| 久久精品国产秦先生| 国产精品乱子乱xxxx| 成人18在线| 无吗不卡中文字幕| 日韩欧美色视频| 欧美日韩在线二区| 久久久亚洲影院你懂的| 亚洲图片在线播放| 91视频观看免费| 欧美黄网在线观看| 欧美日韩伦理一区二区| 亚洲午夜激情免费视频| 亚洲精品视频在线观看免费视频| 激情文学综合插| 欧美重口乱码一区二区| 成人性生交大片免费看在线播放| 欧美体内she精视频| 又黄又爽的网站| 欧美精品首页| 成人黄色av网| av资源种子在线观看| 欧美日韩美女在线| 亚洲图片欧美另类| 亚洲女同另类| 91精品国产综合久久久久久蜜臀 | 日本一本a高清免费不卡| 丰满肥臀噗嗤啊x99av| 亚洲欧洲成人精品av97| 自拍偷拍21p| 不卡在线一区| 国产va免费精品高清在线观看| 狠狠综合久久av一区二区| 亚洲欧美激情视频在线观看一区二区三区 | 免费av不卡在线观看| 91精品欧美久久久久久动漫| 熟女少妇内射日韩亚洲| 玖玖在线精品| 日韩av在线电影观看| 中文字幕色婷婷在线视频| 日韩av在线网站| 久久免费激情视频| 久久欧美一区二区| av片中文字幕| 激情五月综合网| 国产精品露脸av在线| 激情福利在线| 色94色欧美sute亚洲线路一ni | 国产99在线|中文| 男女视频在线观看免费| 色诱亚洲精品久久久久久| 在线观看日韩精品视频| 午夜在线视频观看日韩17c| 精品久久久久久中文字幕动漫| 黄色视屏在线免费观看| 亚洲精品第一页| 高潮毛片又色又爽免费| 国产丝袜欧美中文另类| 亚洲污视频在线观看| 91一区二区三区四区| 成人免费福利在线| 怡红院在线观看| 亚洲成人网在线观看| 日本熟女一区二区| 久久色在线视频| 小泽玛利亚视频在线观看| 午夜免费一区| 国产精品久久久久免费| 成人欧美magnet| 中文字幕精品国产| 成人h动漫精品一区二区无码| 亚洲一区二区欧美| 自拍偷拍中文字幕| 麻豆精品蜜桃视频网站| 精品久久久无码人妻字幂| 欧洲精品一区| 成人国产精品色哟哟| 国产天堂在线播放视频| 亚洲免费高清视频| 国产精品久久久久久久久毛片 | 日韩天堂av| 日韩视频在线观看国产| 国产精品一站二站| 欧美在线国产精品| 哥也色在线视频| 日韩av在线网页| 国产精品视频在线观看免费| 亚洲国产一区二区视频| аⅴ天堂中文在线网| 国产**成人网毛片九色 | 欧美片网站免费| 日本中文字幕不卡免费| a免费在线观看| 亚洲免费av片| 国精产品一品二品国精品69xx| 色就色 综合激情| 久久久精品视频在线| 国产清纯在线一区二区www| 黑人巨大猛交丰满少妇| 视频一区欧美日韩| 少妇人妻大乳在线视频| 91久久夜色精品国产按摩| 狠狠久久综合婷婷不卡| 男女啪啪999亚洲精品| 欧美一级电影久久| 日本大片在线播放| www.欧美精品| 精品999视频| 日韩av在线高清| 精品人妻aV中文字幕乱码色欲| 91久久精品一区二区| 青青青在线视频| 中文字幕五月欧美| 韩国女同性做爰三级| www.日本不卡| 亚洲欧美综合视频| 国产在线视频一区二区三区| 成人在线激情网| 国产精品美女久久久浪潮软件| 免费国产成人看片在线| av亚洲免费| 欧美高清一区二区| 欧美调教在线| 精品国产_亚洲人成在线| 日本精品在线播放 | 奇米影视777在线欧美电影观看 | 激情综合网俺也去| 国产精品久久久久久模特| www.国产在线播放| 欧美日一区二区三区在线观看国产免| 在线播放豆国产99亚洲| 精品国产美女| 日韩av一级大片| 欧美日韩一二三四| 性欧美精品一区二区三区在线播放 | 污软件在线观看| 亚洲视频香蕉人妖| 波兰性xxxxx极品hd| 亚洲国产精品成人综合色在线婷婷| 无套内谢大学处破女www小说| 9久草视频在线视频精品| 最新国产精品自拍| 国产福利电影一区二区三区| 古装做爰无遮挡三级聊斋艳谭| 黄页视频在线91| 手机免费看av网站| 狠狠色狠狠色综合系列| 国产精品嫩草影视| 国产剧情一区二区| 激情小说欧美色图| 99久久精品免费| 四虎永久免费影院| 国产欧美精品一区| 亚洲天堂精品一区| 亚洲欧美日韩中文播放| 久久精品第一页| 亚洲不卡在线观看| 九九九在线观看| 91久久精品一区二区三区| 中文字幕人成人乱码亚洲电影| 欧美日韩一区 二区 三区 久久精品| 中文字幕91爱爱| 91麻豆精品国产自产在线观看一区 | 一本久久a久久精品vr综合| 天堂美国久久| 免费网站在线观看视频| 国产精品一卡| 天天插天天操天天射| 国精品**一区二区三区在线蜜桃 | 国产亚洲欧美激情| 亚洲女人毛茸茸高潮| 亚洲精品欧美专区| 在线观看亚洲欧美| 欧美日韩一区二区在线观看| 99久久99久久久精品棕色圆| 亚洲成人亚洲激情| www在线免费观看| 欧美日韩成人网| 性感美女一区二区在线观看| 成人xxxx视频| 欧美成人午夜77777| 天堂va久久久噜噜噜久久va| 亚洲一区在线| 成人久久久久久久久| 极品少妇一区二区| www.88av| 亚洲乱码国产乱码精品精可以看 | 精品国产一区二区三区av性色 | 四虎5151久久欧美毛片| 亚洲高清资源综合久久精品| 欧美99在线视频观看| 中国丰满人妻videoshd| 国产在线看一区| 五月婷婷综合在线观看| 亚洲欧美日韩一区二区| 91video| 精品少妇一区二区三区日产乱码| 国内三级在线观看| 久久久久久久国产| 日本a人精品| 免费成人av网站| 欧美日韩国产高清| 91国内在线播放| 久久亚洲欧美国产精品乐播| 曰本女人与公拘交酡| 在线这里只有精品| 五月天婷婷视频| 欧美贵妇videos办公室| 久久女人天堂| 欧美一区二区福利| 亚洲黄色av| 日本55丰满熟妇厨房伦| 中文字幕巨乱亚洲| youjizz在线视频| 亚洲精品av在线播放| 午夜dj在线观看高清视频完整版| 国产精品久久久久av免费| 国产三级精品三级在线观看国产| 在线观看成人一级片| 日日摸夜夜添夜夜添国产精品| 欧美日韩人妻精品一区在线| 亚洲男同1069视频| 在线观看xxxx| 夜夜嗨av色综合久久久综合网| 国产黄大片在线观看| 鬼打鬼之黄金道士1992林正英| 图片区亚洲欧美小说区| 欧美性猛交xxx乱久交| 久久蜜桃香蕉精品一区二区三区| 日本熟妇成熟毛茸茸| 精品99一区二区三区| 在线观看av免费| 91视频婷婷| 欧美日韩国产欧| 日本人妻一区二区三区| 亚洲免费观看高清完整版在线| 国产又粗又猛又黄| 久久精品国产亚洲精品2020| 欧美日韩亚洲国产| 日韩精品在在线一区二区中文| 久久国产免费| 日韩精品电影一区二区| 色悠悠久久综合| 国产人成在线视频| 国产成一区二区| 国内精品视频在线观看 | 丁香桃色午夜亚洲一区二区三区| 欧美国产日韩综合| 精品欧美乱码久久久久久1区2区| 性网站在线观看| 国产日韩欧美一区二区三区四区| 亚洲久久一区二区| 老牛影视av老牛影视av| 色成人在线视频| 免费观看成人高潮| 亚洲自拍在线观看| 黄色在线成人| 在线观看日韩精品视频| 欧美中文字幕一二三区视频| 成人精品福利| 91免费在线视频| 亚洲成人直播| 国产亚洲精品熟女国产成人| 欧美三级韩国三级日本三斤| 精品美女在线观看视频在线观看 | 538国产视频| 日本高清不卡一区| 麻豆网站视频在线观看| 成人欧美一区二区三区视频xxx| 亚洲欧洲日本一区二区三区| 四虎永久免费影院| 777亚洲妇女| 女海盗2成人h版中文字幕| 欧美少妇一区| 久久99国产精品成人| 久久这里只有精品国产| 亚洲精品自在久久| 久久91超碰青草在哪里看| 18禁裸男晨勃露j毛免费观看| 久久精品一区二区三区av| 国产乱淫av片免费| 午夜伦理精品一区| 日韩免费特黄一二三区| 一级全黄裸体片| 91成人网在线| 999av小视频在线| 亚洲在线欧美| 97成人超碰视| 国产绳艺sm调教室论坛| 欧美中文在线字幕| 欧美不卡高清| 中国女人特级毛片| 欧美精品一区二区三区久久久| 先锋欧美三级| 国产日韩欧美精品在线观看| 国产精品视频九色porn| 手机看片1024日韩| 亚洲一区二区免费在线| 石原莉奈在线亚洲二区|