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

用戶說“App 卡死了”,你卻查不到原因?可能是監控方式錯了

安全 數據安全
卡頓監控方案的核心目標在于精準捕獲并定位導致用戶操作中斷、體驗顯著下降的“阻塞型”卡頓。當卡頓發生時,不僅包括識別卡頓事件的發生,更需追溯具體代碼行級的執行路徑以定位問題根源。

背景介紹

當用戶使用 App 時產生不好的體驗,問題往往出現在以下場景:

  • 打開復雜頁面時出現黑屏/白屏延遲
  • 列表滑動時偶發性卡頓
  • 圖片加載時界面響應滯后
  • 網絡請求密集時出現操作卡死等現象

這些場景不僅出現在低端設備上,在中高端機型中同樣存在。如果主線程無法響應用戶的交互就會造成卡頓,卡頓時間比較長是比較影響 App 的功能和用戶體驗的。在移動應用開發中,卡頓問題也始終是影響用戶體驗的核心痛點。

通常情況下,導致主線程阻塞并引發卡頓的原因主要有以下幾種:

  • 繁重的 UI 渲染:當界面包含復雜的視圖層級、大量的圖文混排內容時,計算布局和繪制到屏幕上的工作量會急劇增加,超出單次刷新周期的處理能力。
  • 主線程同步網絡請求:在主線程中發起同步的網絡調用,意味著整個應用必須等待網絡數據返回后才能繼續執行,期間無法響應任何用戶操作。
  • 大量的文件讀寫(I/O):在主線程上直接進行大規模的數據讀取或寫入操作,例如讀寫數據庫或本地文件,會因為磁盤速度的限制而消耗大量時間。
  • 高負荷的計算任務:將復雜的算法或大量數據的處理邏輯直接放在主線程執行,會導致 CPU 持續處于高占用狀態,無暇顧及 UI 事件。
  • 線程鎖使用不當:當主線程需要等待其他線程釋放某個鎖資源時,它會被掛起,如果等待時間過長,便會造成卡頓。在極端情況下,不同線程間的相互等待還會引發“死鎖”,導致應用徹底無響應。

由于這些問題的偶發性和環境依賴性,傳統的線下調試手段往往難以奏效。為了能夠精確、高效地定位并解決這些線上卡頓,我們進行一些卡頓監控技術的探索。

主流卡頓監控方案

在 iOS 開發中,以下是幾種常見的主流卡頓監控方案:

  • Ping 線程方案
  • FPS 監控方案
  • RunLoop 監控方案

Ping 線程方案簡介

Ping 線程方案的核心思想是:

  • 創建一個子線程,通過子線程來“探測”主線程的響應能力。
  • 子線程每次 ping 主線程時設置標記位為 YES,然后派發任務到主線程中,主線程把標記位設置為 NO。
  • 子線程 sleep 指定時間,超時后判斷標記位是否設置為 NO,如果沒有說明主線程發生了卡頓。

如下圖所示:

圖片圖片

關鍵實現步驟:

1. 創建子線程:啟動一個獨立的監控線程。

2. 定時派發任務:子線程定期向主線程派發一個簡單的任務,并設置一個等待標記。

3. 等待主線程響應:主線程執行該任務時,會回調子線程,并清除等待標記。

4. 超時判斷:如果子線程在派發任務后的一小段時間內,發現等待標記仍未被清除,則判定主線程卡頓。

5. 捕獲與上報:執行堆棧捕獲和上報流程。

Ping 線程的方案邏輯相對比較簡單,也比較容易理解。但精度較差,Ping 之間可能存在漏查的情況。同時,Ping 線程會不停喚醒主線程 RunLoop,也會存在一定的性能損耗。

FPS 監控方案簡介

通常情況下屏幕會保持 60Hz/s 的刷新速度(新的 iOS 設備甚至會保持 120Hz/s 的刷新速度),每次刷新時會發出一個屏幕刷新信號,CADisplayLink 允許開發者注冊一個與刷新信號同步的回調處理。

圖片圖片

我們可以通過計算它 1 秒內調用多少次來查看界面的流暢度。雖然 CADisplayLink 更輕量,但需要在 CPU 稍微清閑時才能夠回調,嚴重卡頓的堆棧獲取不一定及時,并且就算 50fps 以下通過肉眼來看也是連貫的。所以,簡單的通過監控 FPS 很難確定是否出現了卡頓問題。

RunLoop 方案簡介

基于 RunLoop 的監控方案,是目前比較主流的可用于生產環境的監控方案。其原理是利用 CFRunLoopObserver來觀察主線程 RunLoop的狀態變化。這里通過引用戴銘關于 RunLoop 原理的圖,來對 RunLoop 方案的原理進行簡單介紹:

圖片圖片

  • 通知 observers:RunLoop 即將開始“進入 loop”
  • 隨后,會開啟一個 do while 來保活線程

通知 obersers:RunLoop 會觸發 Timer、Source0 回調,緊接著執行加入的 block

如果 Source1 是 ready 狀態,會跳轉到“處理消息”流程

  • 通知 observers:RunLoop 即將進入休眠狀態
  • 等待 mach_port 消息,以再次喚醒

基于 port 的 Source 事件

Timer 時間到

RunLoop 超時

被調用者喚醒

  • 通知 observers:RunLoop 被喚醒
  • 處理消息
  • 繼續下一個 loop

基于 RunLoop 的方案實現中,一般會包含下面幾個關鍵步驟:

1. 注冊 Observer:向主線程 RunLoop 注冊 Observer 來監聽其狀態。

2. 創建監控線程:用于監控主線程切換狀態。

3. 狀態標記與超時判斷:子線程根據 RunLoop 的狀態變化來設置標記,并循環檢測該標記是否在預設的閾值內被更新,否則判定為卡頓。

4. 堆棧捕獲與上報:判定為卡頓時,捕獲主線程的調用堆棧,并上報服務器進行分析。

基于 RunLoop 的方案能夠精準捕獲到由主線程阻塞導致的各類卡頓,適用于線上卡頓問題的監控和診斷分析。

方案對比

基于主流方案對比分析,三種性能監控策略分別聚焦不同維度,如下表:

圖片圖片

  • Ping 線程方案通過子線程周期性探測主線程響應時間識別卡頓,但精度低于 RunLoop 方案。
  • FPS 監控作為全局性能指標,通過幀率波動反映應用流暢度并判斷卡頓,卻無法定位性能瓶頸。
  • RunLoop 方案則介入主線程事件循環機制,實現單次阻塞事件的毫秒級捕捉,可精準識別主線程阻塞源。

卡頓監控方案實現

卡頓監控方案的核心目標在于精準捕獲并定位導致用戶操作中斷、體驗顯著下降的“阻塞型”卡頓。當卡頓發生時,不僅包括識別卡頓事件的發生,更需追溯具體代碼行級的執行路徑以定位問題根源。

相較于其他主流方案,RunLoop 監控方案通過持續追蹤主線程任務執行耗時,能夠精確捕獲卡頓事件并同步采集完整的上下文調用堆棧信息。盡管其技術實現復雜度較高,但考慮到可部署于線上環境,以及對卡頓根因的診斷價值,最終被選定為核心實現方案。

上文中已經對 RunLoop 的原理有過大致的介紹,下文中將主要介紹如何具體實現。

監控 RunLoop 狀態

基于 RunLoop 實現卡頓監控方案,需要先監控 RunLoop 的狀態切換。如下圖,通過注冊的 Observer 可以監聽到主線程 RunLoop 狀態的切換事件,并通過 running 和 startTime 來記錄關聯的狀態和時間戳信息。監控線程通過讀取 running 狀態,以及 startTime 來判斷是否產生了狀態超時:

當主線程在執行某個任務的耗時較長時,RunLoop 的狀態切換就會延時。通過在子線程監控 RunLoop 關鍵狀態之間的時間差,就可以判斷主線程是否發生了阻塞。

圖片圖片

方案實現中:

  • 當 Observer 收到 kCFRunloopBeforeTimers、kCFRunloopBeforeSource、kCFRunLoopAfterWaiting 通知時,會把 running 狀態置為 YES,并通過 startTime 記錄當前時間戳。
  • 當 Observer 收到 kCFRunloopBeforeWaiting 和 kCFRunLoopExit 通知時,把 running 狀態置為 NO。
  • 監控線程需要持續讀取 running 狀態和 startTime 時間戳,通過判斷當前時間與 startTime 的差異來確定是否發生了卡頓,如下圖:

圖片圖片

堆棧提取

當 RunLoop 狀態超時,即檢測到卡頓時,需要提取主線程堆棧并保存到內存中。堆棧的提取方案基于業界知名的 KSCrash 實現。相比通過系統函數獲取堆棧,通過 KSCrash 獲取的堆棧可以配合 dSYM 進行符號還原,能夠定位到具體的代碼位置,而且性能消耗也不大。

圖片圖片

耗時堆棧提取

當監控線程監測主線程 RunLoop 時,會獲取主線程的線程快照作為卡頓堆棧。但是,這個主線程堆棧不一定是最耗時的堆棧,也不一定是導致主線程超時的主要原因。為了對這個問題進行優化,需要在檢測到主線程發生卡頓時,通過對保存在循環隊列中的堆棧進行回溯(間隔 50ms 獲取一次),獲取最近最耗時堆棧。

圖片圖片

如上圖所示,通過以下特征找出最近最耗時堆棧:

  • 以棧頂函數為特征,棧頂函數相同的,整個堆棧就是相同的,如:

堆棧 A 的棧頂調用函數為 FuncA

堆棧 B 的棧頂調用函數為 FuncB

棧頂函數 FuncA 與 FuncB 不同,因此堆棧 A 和堆棧 B 為不同的堆棧

  • 獲取堆棧間隔相同,堆棧的重復次數近似作為堆棧的調用耗時,重復越多耗時越多,如:

堆棧 A 重復一次,近似耗時為 50ms

堆棧 B 重復一次,近似耗時為 50ms

堆棧 C 重復三次,近似耗時為 150ms

堆棧 C 為最耗時堆棧

  • 重復次數相同的堆棧中,取最近的一個作為最耗時堆棧

監控線程退火算法

卡頓檢測機制在無異常場景下性能開銷可忽略,但遭遇持續數秒級卡頓時,頻繁采集主線程堆棧信息時將引發顯著性能損耗。且連續重復的堆棧記錄無分析價值,完全沒有必要。為了降低卡頓監測帶來的性能損耗,SDK 采用了退火算法遞增時間間隔,避免因同一個卡頓問題帶來的性能問題。

圖片圖片

  • 每次子線程檢測到主線程卡頓,會先獲取主線程的堆棧,并保存到內存中
  • 把獲得的主線程堆棧與上次卡頓獲得的線程堆棧進行比對

不同:獲得當前線程快照并寫入到文件

相同:跳過,并按照斐波那契數列把檢測時間遞增,直到沒有卡頓或卡頓堆棧不同

以上算法可以避免同一個卡頓寫入多個文件的情況,避免檢測線程遇到主線程卡死的情況下,不斷寫線程快照文件。

性能開銷

任何一個監控工具的首要原則是不能影響被監控對象的性能。因此,我們還需要測量基于 RunLoop 的卡頓監控方案對應用性能的實際影響。性能測量的核心是進行 A/B 對比測試。我們需要準備兩個幾乎完全相同的 App 版本:

  • A 版本(基準版本):卡頓監控功能完全禁用。
  • B 版本(監控版本):卡頓監控功能完全開啟。

然后在完全相同的設備和環境下,對這兩個版本執行相同的操作,并測量關鍵性能指標的差異。這個差異就是卡頓監控帶來的性能開銷。

測試設備:iPhone 12 Pro

測試系統:iOS 18.7

卡頓監控功能沒有開啟的情況下,App 持續運行一段時間并主動觸發卡頓,App 整體的 CPU 占用如下圖:

圖片圖片

卡頓監控功能開啟的情況下,App 持續運行一段時間并主動觸發卡頓,App 整體的 CPU 占用如下圖:

圖片圖片

在卡頓監控開啟情況下,監控線程的 CPU 占用如下。

有卡頓發生時:

圖片圖片

無卡頓發生時:

圖片圖片

綜上分析,App 引入卡頓監控能力后:

  • 無卡頓發生時,對 App 性能幾乎無影響
  • 有卡頓發生時,App 整體 CPU 占用增加約 0.33%(不同設備的測試值會略有差異)

總結

本文主要介紹了當下主流的 iOS 卡頓監控方案,和基于 RunLoop 的卡頓監控實現細節,包括 RunLoop 狀態的處理,堆棧以及耗時堆棧的提取,持續卡頓場景下的退火處理等。卡頓監控方案的實現過程中,通過融合行業成熟優秀的方案思路,實現了主線程阻塞卡頓的檢測能力。卡頓監控能力還在持續進化,后續還有不少可以優化和提升的點,如支持高 CPU 占用卡頓、啟動卡頓等的檢測。目前這套方案已經應用在阿里云 ARMS 用戶體驗監控 iOS SDK 中,您可以參考接入文檔[1]體驗使用。相關問題可以加入“RUM 用戶體驗監控支持群”(釘釘群號:67370002064)進行咨詢。

相關鏈接:

[1] 接入文檔

https://help.aliyun.com/zh/arms/user-experience-monitoring/monitor-ios-apps/

責任編輯:武曉燕 來源: 阿里云云原生
相關推薦

2023-06-14 07:23:57

打印文檔打印機

2017-10-17 12:43:17

前端CSS布局

2018-07-16 10:10:43

WiFi上網網速

2017-11-06 16:06:05

大數據Hadoop打開方式

2018-11-12 00:16:21

云計算行業科技

2019-03-11 11:17:29

偶發服務逆優化GC

2020-12-30 19:19:35

ARM架構X86架構芯片

2022-08-26 16:31:28

蘋果iPhone14印度

2021-10-11 20:52:20

微軟Windows 11Windows

2017-03-31 10:56:51

機器人蠕動方式

2023-05-09 16:02:14

人工智能ChatGPT

2017-06-19 08:47:49

Hadoop大數據HDFS

2019-09-02 09:30:13

LinuxNASAApple

2021-08-11 15:13:54

數字化

2022-05-13 23:35:19

Java編程語言開發

2021-11-08 07:41:15

WiFi信號(AP

2024-09-27 11:38:49

2022-07-12 15:23:38

勒索軟件網絡攻擊

2012-08-30 09:44:27

2021-07-14 08:31:08

Java反射機制Class類
點贊
收藏

51CTO技術棧公眾號

欧美极品xxx| 国产一区二区亚洲| 午夜私人影院久久久久| 久久精品magnetxturnbtih| 免费的毛片视频| 杨幂一区二区三区免费看视频| 欧洲精品在线观看| 国产成人一区二区三区别| 五月婷婷六月色| 秋霞午夜鲁丝一区二区老狼| 欧美老女人性视频| 亚洲成人黄色av| 精品一区二区三区视频在线播放| 欧美日韩激情网| 樱空桃在线播放| 国产最新视频在线观看| 国产精品1区2区3区| 亲子乱一区二区三区电影| 污污的视频在线免费观看| 日韩精品社区| 欧美大片在线观看一区二区| 丁香婷婷激情网| 岛国片av在线| 亚洲人一二三区| 欧美日韩亚洲一区二区三区四区| www.com在线观看| 麻豆精品一区二区三区| 45www国产精品网站| 青青草原国产视频| 国产精品久久占久久| 亚洲欧美另类人妖| 艳妇乳肉亭妇荡乳av| 草草久久久无码国产专区| 污污网站免费在线观看| 激情亚洲综合在线| 国产精品一级黄| 亚洲成av人乱码色午夜| www.com黄色片| 成人美女大片| 欧美日韩国产一区在线| 丁香六月激情网| 亚洲夜夜综合| 亚洲品质自拍视频| 一区二区不卡视频| aⅴ在线视频男人的天堂 | 国产原创精品在线| 六月婷婷综合| 日本久久精品电影| 美女av免费在线观看| 多野结衣av一区| 亚洲va欧美va人人爽| www.日本在线视频| 亚洲男同gay网站| 一区二区三区波多野结衣在线观看| 国产亚洲精品一区二区| 黄色正能量网站| av高清一区| 日本高清不卡视频| 91视频免费版污| 国产在线|日韩| 欧美在线一二三| 性欧美极品xxxx欧美一区二区| **欧美日韩在线观看| 在线一区二区三区四区| 色多多视频在线播放| 成人国产激情在线| 欧美精选一区二区| 日日夜夜精品视频免费观看| 玖玖玖视频精品| 日韩一级理论片| xxxx 国产| 伊人久久大香线蕉综合热线| 欧美黑人xxxⅹ高潮交| 久热这里只有精品在线| 一区精品久久| 日本高清+成人网在线观看| 免费污污视频在线观看| 日韩成人dvd| 91精品综合久久久久久五月天| 91精品国自产| 国产成人精品aa毛片| 国产偷国产偷亚洲高清97cao| 无码国产精品96久久久久| 久久久久99精品国产片| 亚洲人一区二区| 污片视频在线免费观看| 黄色一区二区在线| 黄色手机在线视频| 一区二区三区在线免费看 | 综合婷婷亚洲小说| 欧美一区二区激情| 精品欧美一区二区三区在线观看| 欧美精品国产精品| 欧美一区二区免费在线观看| 国产欧美日韩在线观看视频| 久热在线中文字幕色999舞| 男人的天堂一区| 久久精品国产99国产| 91视频免费进入| 番号集在线观看| 亚洲一区二区三区视频在线 | 久久超碰97中文字幕| 国产精品一区视频| 欧美综合激情| 丰满人妻一区二区三区四区| 国产一区二区三区免费播放| 粉嫩av一区二区三区| 国产欧美在线观看| 日本精品一二区| 国产精品萝li| www.com毛片| 精品国产乱码一区二区三区| 中文字幕不卡在线观看| 亚洲一卡二卡区| 爱情岛论坛亚洲品质自拍视频网站| 色噜噜狠狠成人网p站| 一本色道久久亚洲综合精品蜜桃| jizz性欧美23| 亚洲成在线观看| 爆乳熟妇一区二区三区霸乳| 青草伊人久久| 欧美视频一区在线| 亚洲啪av永久无码精品放毛片 | 亚洲一区电影在线观看| 国产乱码精品| 99re在线播放| 日本蜜桃在线观看| 91精品福利视频| 日本护士做爰视频| 国语对白精品一区二区| 成人a视频在线观看| 国产在线电影| 欧美视频一区二区三区…| 中文字幕一二三| 天天射综合网视频| 国产精品视频精品| 国产永久av在线| 日韩欧美在线字幕| 国产精品无码在线| 日韩午夜免费| 好吊色欧美一区二区三区 | 韩国av中国字幕| 亚洲影视一区二区三区| 国产中文字幕日韩| 午夜免费播放观看在线视频| 欧美性做爰猛烈叫床潮| 人妻少妇无码精品视频区| 香蕉国产精品偷在线观看不卡| 国产精品一区二区三区免费观看| 美足av综合网| 精品国产一区a| 精品一级少妇久久久久久久| 国产高清在线观看免费不卡| 国产香蕉一区二区三区| 精品国产鲁一鲁****| 欧美夫妻性视频| 亚洲欧美激情在线观看| 亚洲成av人片| 日韩av一二区| 三级欧美在线一区| 亚洲电影一二三区| 欧美一级做一级爱a做片性| 北条麻妃在线一区二区| 国产亲伦免费视频播放| 亚洲在线观看免费视频| 亚洲最大免费视频| 日日夜夜一区二区| 亚洲免费久久| 老司机亚洲精品一区二区| 欧美片一区二区三区| 狠狠躁日日躁夜夜躁av| 欧美性极品少妇精品网站| 免费人成又黄又爽又色| 精品一区二区三区在线播放视频| 国内外成人激情免费视频| 又黄又爽又色的视频| 久久视频社区| 久久久久久久久久久网站| 少妇一区二区三区四区| 久久久久久久久久久久久女国产乱 | 99精品免费| av成人在线电影| av男人的天堂在线观看| 亚洲九九九在线观看| 亚洲精品国产一区| 日韩成人久久| 欧美孕妇性xx| 免费a级毛片在线播放| 日韩精品专区在线影院重磅| 国产无套丰满白嫩对白| 日韩一区欧美小说| 国产一级二级视频| 免费看欧美女人艹b| 男人天堂手机在线视频| 欧美最新另类人妖| 97人人香蕉| 日韩av免费| 久久久亚洲福利精品午夜| 国产特黄在线| 精品粉嫩aⅴ一区二区三区四区 | 亚洲在线视频| 黑人巨大国产9丨视频| 人人精品视频| 91在线在线观看| 国模视频一区| 91精品国产99久久久久久| 黄色动漫在线观看| 亚洲无亚洲人成网站77777| 亚洲xxx在线| 精品视频一区 二区 三区| 日本一区二区三区免费视频| 国产精品不卡在线| 美女洗澡无遮挡| 懂色中文一区二区在线播放| 国产理论在线播放| 国产亚洲成人一区| www.九色.com| 911精品美国片911久久久| 日韩成人在线资源| 丝袜美腿综合| 国产精品久久久久久久免费大片 | 电影天堂国产精品| 久久久久久久久91| 91亚洲天堂| 日韩一区二区三区国产| 九色视频网站在线观看| 日韩精品免费看| 韩国av在线免费观看| 欧美一级艳片视频免费观看| 中文字幕一二三四| 欧美制服丝袜第一页| 好看的av在线| 欧美日韩另类在线| 日韩 欧美 综合| 亚洲一二三四在线观看| 欧美高清视频一区二区三区| 国产精品视频在线看| 欧美一区二区三区粗大| 久久久久久久网| 免费看污黄网站在线观看| jizz一区二区| 中国一级特黄录像播放| caoporen国产精品视频| 人妻 丝袜美腿 中文字幕| 国产传媒日韩欧美成人| 手机看片国产精品| 国产精品99久久久久久有的能看| aaa一级黄色片| 国产乱码精品一区二区三| 亚洲精品在线视频播放| 国产在线精品一区二区三区不卡 | 国产精品久久久久久久久久久久久久久 | 欧美精品手机在线| 亚洲丝袜一区| 国产综合在线看| 理论片午夜视频在线观看| 欧美亚洲国产另类| 91精品xxx在线观看| 国产欧美精品va在线观看| 日本欧美在线| 亚洲自拍偷拍一区| 国产成人高清精品免费5388| 国产一区二区不卡视频在线观看| 日韩一级电影| 欧美日韩国产高清视频| 日韩www.| av久久久久久| 亚洲另类自拍| 青青草精品视频在线观看| 精品亚洲国产成人av制服丝袜| 国产成人强伦免费视频网站| 国产99久久精品| 国产艳俗歌舞表演hd| 国产日韩欧美精品电影三级在线| 国产又粗又长又黄的视频| 亚洲天堂成人在线观看| 免费毛片一区二区三区| 色综合久久久久久久久久久| 一区精品在线观看| 欧美大片在线观看一区| 国产在线一二三| 欧美精品情趣视频| 免费日韩电影| 亚洲综合中文字幕在线| 欧美自拍一区| 国产精品夜夜夜爽张柏芝| 在线看片欧美| 天天干天天玩天天操| 国产91精品精华液一区二区三区| 亚洲成人日韩在线| 亚洲色图制服诱惑| 久久亚洲精品国产| 制服丝袜在线91| 欧美一区二区视频| 久久综合伊人77777蜜臀| 性xxxxfreexxxxx欧美丶| 国产日本欧美在线观看| 久久人人爽人人爽人人片av不| 亚洲精品视频一区二区三区| 日韩一级免费| 中文字幕avav| 欧美激情一区二区三区四区| 久久精品人妻一区二区三区| 欧美日韩一区在线| 亚欧洲精品视频| 欧美成人午夜激情在线| 欧亚一区二区| 蜜桃精品久久久久久久免费影院| 欧美成熟视频| y111111国产精品久久婷婷| 亚洲国产精品嫩草影院久久av| 中文字幕在线亚洲三区| 久久久人人人| 亚洲成a人无码| 国产精品美女久久久久久久网站| 91精品国产乱码在线观看| 欧美一区二区三区在线观看视频 | 国产精品丝袜在线播放| 国产日韩视频在线播放| 蜜臀精品一区二区三区在线观看 | 午夜免费看毛片| 北条麻妃国产九九精品视频| 美女的奶胸大爽爽大片| 欧美日韩一区成人| 国产在线视频资源| 日本免费在线精品| 日韩三级视频| 18禁网站免费无遮挡无码中文| 国产美女视频一区| 熟女少妇a性色生活片毛片| 欧美在线不卡视频| 国产人成在线视频| 日本欧美爱爱爱| 国产成人调教视频在线观看 | 暴力调教一区二区三区| 久久久久久av无码免费网站| 4438亚洲最大| 国产成人午夜| 3d蒂法精品啪啪一区二区免费| 欧美第一精品| 一区二区xxx| 欧美国产精品久久| 黄色一区二区视频| 最新的欧美黄色| 四虎精品一区二区免费| 综合视频在线观看| 国产在线精品一区二区夜色| 成熟的女同志hd| 日韩精品一区二区三区四区| 女子免费在线观看视频www| 99在线看视频| 亚洲欧洲日本mm| 欧美精品黑人猛交高潮| 日韩欧美999| 天堂影院在线| 国产精品第100页| 日韩av久操| 91在线第一页| 亚洲国产色一区| 香港三日本三级少妇66| 日韩美女写真福利在线观看| 国产一区99| 韩国一区二区在线播放| 一区二区三区高清不卡| 污视频在线免费观看| 国产不卡视频在线| 日韩精品诱惑一区?区三区| 美女被艹视频网站| 午夜激情一区二区| 国产在线一在线二| 2020国产精品久久精品不卡| 亚洲激情欧美| 在线观看免费小视频| 4438成人网| 男人久久天堂| 一区二区在线观看网站| 国产91丝袜在线播放九色| 国产性猛交╳xxx乱大交| 在线精品高清中文字幕| 无人区乱码一区二区三区| 国产精品极品| 久久大大胆人体| 日韩精品一区二区三区中文在线| 精品人妻大屁股白浆无码| 99久久久无码国产精品| 波多野结衣mp4| 久久福利视频网| 欧美wwwwww| www.com黄色片| 亚洲第一在线综合网站| 玖玖综合伊人| 91久久综合亚洲鲁鲁五月天| 伊人成人在线视频| 中文字幕精品亚洲| 亚洲第一区中文99精品| 成人深夜福利| 青娱乐自拍偷拍| 国产精品国产自产拍在线| 人妻精品无码一区二区| 国产精品视频免费观看www|