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

從CPU冒煙到絲滑體驗:算法SRE性能優化實戰全揭秘

開發 架構
本文分享的場景和實操經驗,旨在拋磚引玉,幫助各位同學掌握深度性能分析的方法論,避免走彎路,更高效地解決工程難題。希望每位研發和SRE同學,都能從微妙的細節中捕捉優化機會,讓應用在極致性能的路上穩步前進。?

一、引言

在算法工程中,大家一般關注四大核心維度:穩定、成本、效果、性能。

其中,性能尤為關鍵——它既能提升系統穩定性,又能降低成本、優化效果。因此,工程團隊將微秒級的性能優化作為核心攻堅方向。

本文將結合具體案例,分享算法SRE在日常性能優化中的寶貴經驗,助力更多同學在實踐中優化系統性能、實現業務價值最大化。

二、給浮點轉換降溫

算法工程的核心是排序,而排序離不開特征。特征大多是浮點數,必然伴隨頻繁的數值轉換。零星轉換對CPU無足輕重,可一旦規模如洪水傾瀉,便會出現CPU瞬間飆紅、性能斷崖式下跌的情況,導致被迫堆硬件,白白抬高成本開銷。

例如:《交易商詳頁相關推薦 - neuron-csprd-r-tr-rel-cvr-v20-s6》 特征處理占用CPU算力時間的61%。其中大量工作都在做Double浮點轉換,如圖所示:

圖片圖片

優化前CPU時間占比 18%

Double.parseDouble、Double.toString是JDK原生原子API了,還能優化?直接給答案:能!

浮點轉字符串:Ryu算法

https://github.com/ulfjack/ryu

Ryu算法,用“查表+定長整數運算”徹底摒棄“動態多精度運算+內存管理”的重開銷,既正確又高效。

算法的完整正確性證明:https://dl.acm.org/citation.cfm? doid=3296979.3192369

 偽代碼說明 

// ——“普通”浮點到字符串(高成本)——
void convertStandard(double d, char *out) {
    // 1. 拆分浮點:符號、指數、尾數
    bool sign = (d < 0);
    int  exp  = extractExponent(d);    // 提取二進制指數
    uint64_t mant = extractMantissa(d);
    
    // 2. 構造大整數:mant × 2^exp —— 可能要擴容內存
    BigInt num = BigInt_from_uint64(mant);
    num = BigInt_mul_pow2(num, exp);    // 多精度移位,高開銷
   
    // 3. 逐位除以 10 生成十進制,每次都是多精度除法
    //    ——每次 divMod 都要循環內部分配和多精度運算
    char buf[32];
    int  len = 0;
    while (!BigInt_is_zero(num)) {
        BigInt digit, rem;
        BigInt_divmod(num, 10, &digit, &rem);  // 慢:多精度除法
        buf[len++] = '0' + BigInt_to_uint32(digit);
        BigInt_free(num);
        num = rem;
    }
    
    // 4. 去除多余零、插入小數點和符號
    formatOutput(sign, buf, len, out);
}




// ——Ryu 方法(低成本)——
void convertRyu(double d, char *out) {
    // 1. 拆分浮點:符號、真實指數、尾數(隱含1)
    bool sign = (d < 0);
    int  e2   = extractBiasedExponent(d) - BIAS;
    uint64_t m2 = extractMantissa(d) | IMPLIED_ONE;
    
    // 2. 一次查表:獲得 5^k 和對應位移量
    //    ——預先計算好,運行時無動態開銷
    int      k     = computeDecimalExponent(e2);
    uint64_t pow5  = POW5_TABLE[k];        // 只讀數組(cache 友好)
    int      shift = SHIFT_TABLE[k];
    
    // 3. 單次 64×64 位乘法 + 右移 —— 固定時間
    __uint128_t prod = ( __uint128_t )m2 * pow5;
    uint64_t    v    = (uint64_t)(prod >> shift);
    
    // 4. 固定最多 ~20 次小循環,v%10 生成每位數字
    //    ——循環次數上限,與具體數值無關
    char buf[24];
    int  len = 0;
    do {
        buf[len++] = '0' + (v % 10);
        v /= 10;
    } while (v);
   
    // 5. 去零、插小數點、加符號:輕量字符串操作
    formatShort(sign, buf, len, k, out);
}

傳統方法 vs. Ryu算法對比:

算法比較

“普通”算法


Ryu算法


內存分配

BigInt動態擴容 + 釋放 →heap分配/回收成本高



全/靜態表 + 棧數組,無malloc→ 零動態分配

算術成本

頻繁多精度除法

(數百納秒)

單次64位乘法+位移

(約30-40納秒)

循環次數

取決于浮點數數值

難以預測

固定次數

易于優化和預測

緩存友好

內存分散

不利CPU緩存

棧上集中

CPU緩存友好

字符串轉浮點:Fast_Float算法

https://github.com/wrandelshofer/FastDoubleParser

相比Java自帶的Double.parseDouble使用復雜狀態機(如BigDecimal或 BigInteger)來處理各種情況,FastDoubleParser使用以下優化策略。

FastDoubleParser 優化策略

※  分離階段
  • 將輸入拆分為三個部分:significand、exponent、special cases(如 NaN, Infinity)。
  • 解析時直接處理整數位和小數位的組合。
※  整型加速 + 倍數轉換
  • 在范圍允許的情況下使用“64位整數直接表示”有效位。
  • 再通過預計算的“冪次表(10? 或 2?)”進行快速縮放,避免慢速浮點乘法。
※  避免慢路徑
  • 避免使用BigDecimal或字符串轉高精度,再轉回double的慢路徑。
  • 對于大多數輸入,整個解析過程不涉及任何內存分配。
※  SIMD加速(原版 C++)

在C++中使用SIMD指令批量處理字符,Java版受限于JVM,但仍通過循環展開等技術盡量進行優化。

 轉換思路 

Input: "123.45e2"
1. 拆分成:
   significand = 12345 (去掉小數點)
   exponent = 2 - 2 = 0  // 小數點后兩位,但有 e2
2. 快速轉換:
   result = 12345 * 10^0 = 12345.0
3. 最終使用 Double.longBitsToDouble 構造結果

壓測報告

Double 字符解析相對JDK原生API 4.43倍 加速Double 字符解析相對JDK原生API 4.43倍 加速

代碼優化樣例

通過多層判斷,盡可能不讓Object o做toString()操作。

減少toString觸發的可能減少toString觸發的可能

工具類 替換浮點轉換算法工具類 替換浮點轉換算法

工具類 替換浮點轉換算法

性能實測效果

啟用Ryu、Fast_Float算法替換JDK原生浮點轉換,效果如下:

優化后CPU時間占比 0.19%【性能提升(18-0.19)/18=98%】優化后CPU時間占比 0.19%【性能提升(18-0.19)/18=98%】

CPU實際獲得50%收益CPU實際獲得50%收益

RT實際獲得25%左右性能收益RT實際獲得25%左右性能收益


小結

告別原生JDK浮點轉換的高昂代價,擁抱Ryu與FastDoubleParser,讓CPU從繁忙到清閑,性能“回血”,節約的成本大家可以吃火鍋。

三、拔掉詭異的GC毛刺

小堆GC問題

特征維度多時內存壓力大,GC問題可以預期。但很多同學可能沒有見過,小堆場景,GC也可能頻繁觸發,甚至引發異常。

如圖所示:18GB堆 擴容 -> 30GB堆,均出現RT99周期脈沖,致使5~6%的失敗率。

社區瀑布流廣告投放-Neuron精排   因GC導致錯誤社區瀑布流廣告投放-Neuron精排 因GC導致錯誤

GC問題分析

首先這是GC問題,其次增加了近1倍的內存,沒有絲毫緩解,判斷這應該是個偽GC問題。

Neuron主要功能就是拿著特征轉向量做排序。一般特征量都是億起步,多的達十億,因此特征緩存必不可少。但是這個場景,僅僅是將1700個左右的廣告特征信息進行了緩存,為什么對象內存會出現周期性的脈沖?

年輕代+老年代 周期共振脈沖年輕代+老年代 周期共振脈沖

如圖所示,關鍵的問題在于“共振”。因此要用放大鏡看問題,再如圖所示:

共振點 放大共振點 放大

共振點CPU峰值水位:28%共振點CPU峰值水位:28%

GC 暫停時間GC 暫停時間


線索

矛盾點


疑惑點

老年代回收 3GB

老年代3GB回收,對于C4垃圾回收器,應該毫無壓力


年輕代徒增 9GB


老年代GC,為什么年輕代會同步往上飚?

年輕代瞬間回收 9GB


年輕代內存飚升后,為什么瞬間又把內存釋放?

共振點CPU無壓力

兩代整體回收12GB,對于C4垃圾回收器,應該毫無壓力



GC窗口期間,CPU算力充足,為什么會導致 RT99 成倍往上飚?

到這里,其實問題已經很明顯了:

  • C4作為世界頂級垃圾回收器,GC的能力不用懷疑,STW(Stop-The-World)的時間理論是亞毫秒級。
  • 如果GC能力沒問題,算力又充足,那么造成RT99翻倍的原因:要么是線程在等數據,要么是線程忙不過來。
  • Neuron堆內存大頭是緩存,那么老年代回收的數據一定是緩存數據,年輕代一定是在回補緩存缺口。

為什么會有這個邏輯?因為緩存命中率一直是 99.9%【1700個廣告條目】,如圖所示:

圖片圖片

在極高緩存命中率的場景下,僅清理少量緩存條目,也可能造成“緩存缺口”。緩存缺口本質上也是一次“中斷”,線程被迫等待或執行數據回補,導致性能抖動。

為方便理解,類比“缺頁中斷”(Page Fault):當程序訪問未加載的內存頁時,操作系統必須中斷執行、加載數據,再繼續運行。

解決方案

首先是緩存命中率一定是越高越好,99.9%的命中率沒毛病。問題出在1700條廣告緩存條目,究竟為何必須如此頻繁地設置過期?【TTL: 60~90s】

原因是:業務期望廣告特征,能夠盡可能實時更新。

緩存失效策略緩存失效策略

失效時間 60~90s失效時間 60~90s

關鍵在于,緩存條目必須及時失效,卻又不能因GC過度而引發性能問題。從觀察結果來看,年輕代的GC沒有對RT99的性能產生明顯影響,這說明年輕代GC的力度恰到好處,不會造成頻繁的“緩存缺口”。既然如此,我們考慮:如果能徹底規避老年代GC,性能瓶頸的問題是否就能迎刃而解?

因此,我們嘗試大幅提高對象晉升到老年代的門檻,直接提升了幾個數量級。

增加JVM參數:


-XX:GPGCTimeStampPromotionThresholdMS # 對象晉升老年代前的時間閾值
默認值:2000  調整為:6000000 (1.6小時)


-XX:GPGCOldGCIntervalSecs # 老年代固定GC時間推薦。注意:并不是關閉 OldGC
默認值:600 調整為:600000

在這個場景中,實際有效的對象并不多,最多不過5GB。 其余大部分都是生命周期不超過2分鐘的短期廣告特征條目(約1700條)。這種短生命周期、低占用的場景完全靠年輕代GC就能輕松支撐,根本不需要啟用分代GC。

實際測試一天后,完全印證了這一判斷:GC抖動、RT99抖動以及錯誤率抖動全都徹底消失,同時內存也沒有出現任何泄漏。

GC 毛刺消失GC 毛刺消失

RT99失敗率 毛刺峰值降至 1/10 +RT99失敗率 毛刺峰值降至 1/10 +

小結

C4的分代GC對大堆確實有奇效,但放在小堆場景里,非要套個復雜架構,就成了典型的“形式主義”

大堆適用,小堆不行。

四、是誰偷走了RT時間

業務瓶頸的卡點

最近算法特征多了,推理成本就高了;RT一長,用戶體驗就垮了;產品一急,秒開優化就立項了。

全業務鏈路都已鎖定 RT 優化目標,社區個性化精排也在其中,可這一鏈路優化阻力最大——RT99長期卡在120ms 以上,始終難以突破。

圖片圖片

活用三昧真火

性能分析必看CPU火焰圖。一看圖就是GC問題。

GC日志分析,年輕代+老年代,堆積起來約150GB,而堆內存才給108GB,怎么做到的?->>> 頻繁GC!

GC算力消耗占比 超50%GC算力消耗占比 超50%

至少要 150GB 勉強夠用至少要 150GB 勉強夠用

高頻GC

看看哪里分配內存比較瘋狂,如圖內存分配火焰圖所示:

圖片圖片

內存分配壓力指向兩大熱點

※  Dump

業務剛需,大量序列化點對象帶來的瞬時垃圾情有可原。

※  特征

真正的“吞金獸”——獨占超過50%的堆。業務方解釋:當前500萬特征才勉強把命中率抬到80%,想繼續往上,只能指數級內存擴容,總特征數10億+。堆已拉到128GB,找不到更大規格的機器。

也就是說內存主要被特征吞掉了,優化空間基本沒有。

如果優化止步于此,顯然無法滿足業務方的期望,于是我們進一步深入到Wall火焰圖進行更精細的分析。

圖片圖片

Wall火焰圖同時捕獲了CPU執行與IO等待,因此不能簡單地以棧頂寬度判斷性能瓶頸。否則只會發現線程池空閑的等待任務,看似正常,但真正的性能瓶頸卻隱藏在細節中。

因此,我們需要放大視角,聚焦到具體的業務邏輯堆棧位置。在這個案例中,一旦放大便能發現顯著問題:特征讀取階段的IO等待時間,竟然超過了遠程DML推理與Kafka Dump的總耗時。這直接說明,所謂的80%特征緩存命中率存在明顯的緩存擊穿現象,大量請求可能被迫穿透至遠端Redis或C引擎進行加載,其耗時成本遠高于本地緩存命中的場景。

逐幀跟蹤確認逐幀跟蹤確認

通過進一步的Trace跟蹤分析,我們的猜測得到了驗證。

圖片圖片

通過和C引擎團隊聯合排查發現,現有架構采用了早期的部署模式,其中為索引分片路由而設立的中間Proxy層成為性能瓶頸,其RT999甚至超過100ms。這種架構帶來的問題在于,上游業務對特征數量需求極大,即使緩存已擴大到500萬條目,也僅能達到80%的命中率。算法工程團隊通過對特征請求進行多層拆分及異步并發查詢優化,但仍有少量長尾特征無法命中緩存,只能依靠C引擎響應。一旦任何一批次特征查詢觸發了C引擎的慢查詢,這一請求的整體RT勢必大幅提升,甚至可能超時。

好在C引擎同時提供了一種更先進的垂直多副本部署模式,能夠去除Proxy這一中心化的瓶頸組件。未來的新架構仍會保留索引分片設計,但會利用旁路方式實現完全的去中心化。

圖片圖片

小結

通過Wall火焰圖深入分析RT性能瓶頸,并結合Trace工具驗證猜想,是優化系統性能不可或缺的關鍵步驟。

五、結語:性能優化無止盡

性能優化沒有終點,只有下一個起點。每次性能的提升,不僅是對技術邊界的突破,更是為業務創造了更多可能性。本文分享的場景和實操經驗,旨在拋磚引玉,幫助各位同學掌握深度性能分析的方法論,避免走彎路,更高效地解決工程難題。希望每位研發和SRE同學,都能從微妙的細節中捕捉優化機會,讓應用在極致性能的路上穩步前進。

責任編輯:武曉燕 來源: 得物技術
相關推薦

2021-11-17 08:16:03

內存控制Go

2024-09-12 14:51:27

2022-08-16 08:37:09

視頻插幀深度學習

2018-03-30 18:17:10

MySQLLinux

2021-01-18 18:42:33

工具調優開發

2022-12-20 09:09:27

ViteWebpack

2025-10-27 02:11:00

2025-06-03 02:55:00

2025-02-20 09:27:46

2009-07-08 15:11:58

JVM GC調整優化

2009-04-20 08:51:50

MySQL查詢優化數據庫

2017-03-29 14:44:20

網絡性能優化

2022-05-17 09:02:30

前端性能優化

2019-12-10 08:10:35

LinuxCPU性能優化

2022-08-14 14:32:06

接口優化

2024-05-30 11:44:37

2025-08-29 01:45:00

2025-04-18 08:24:22

2009-07-07 22:33:49

2025-07-29 02:00:00

點贊
收藏

51CTO技術棧公眾號

精品不卡在线| 久久久久久久久久国产精品| 天天干天天综合| 无遮挡动作视频在线观看免费入口| 精品一区二区在线免费观看| 欧美另类在线观看| 黄色片视频免费观看| 欧美日韩亚洲国产| 一区二区三区中文字幕在线观看| 国产精品播放| 少妇一级淫片日本| 午夜精品视频| 亚洲区中文字幕| 欧美日韩理论片| 性感女国产在线| ●精品国产综合乱码久久久久| 国产精品视频500部| chinese国产精品| 午夜精品影院| 中文字幕亚洲一区二区三区五十路 | 久久久精品高清| 国产无遮挡裸体视频在线观看| 国产精品色噜噜| 精品久久久久久中文字幕动漫| 亚洲午夜激情视频| 免费日韩av| 欧美大片免费观看在线观看网站推荐| 久久久久久久久久久久| 91精品日本| 欧美高清视频在线高清观看mv色露露十八| 男女激情无遮挡| 成人看av片| 中文字幕精品一区二区精品绿巨人 | 国产91porn| 在线免费观看的av网站| 91丨九色porny丨蝌蚪| 91情侣偷在线精品国产| 国产裸体美女永久免费无遮挡| 亚洲精品婷婷| 萌白酱国产一区二区| 影音先锋男人在线| 久久av电影| 亚洲精品720p| 中文字幕无人区二| 久久av网站| 51久久夜色精品国产麻豆| 在线免费av播放| 欧美日韩五码| 色菇凉天天综合网| www.亚洲天堂网| 天堂av中文在线观看| 亚洲高清一区二区三区| 日韩免费在线观看av| 午夜影院免费在线| 亚洲激情在线播放| 成人免费看片视频在线观看| 黄色一级片在线观看| 国产精品污www在线观看| 欧美日韩大片一区二区三区| 四虎影视在线播放| 99精品欧美一区二区三区综合在线| 成人免费91在线看| www日本在线| 国产成人在线视频免费播放| 97影院在线午夜| 亚洲成人一二三区| av日韩在线网站| 久久涩涩网站| 国产系列电影在线播放网址| 国产亚洲婷婷免费| 亚洲精品一区二区三区樱花| 黄色大片在线免费观看| 国产欧美一二三区| 色香蕉在线观看| 成人影欧美片| 亚洲高清在线视频| av免费播放网址| 主播大秀视频在线观看一区二区| 欧美视频一区在线观看| 伊人色在线视频| 国产精品17p| 亚洲精品午夜精品| 亚洲一二三四视频| 亚洲成av人电影| 国模精品视频一区二区| 青青青国产在线| 亚洲女人av| 国产精品视频99| 国产高清精品软件丝瓜软件| 99久久精品情趣| 欧洲国产精品| 久做在线视频免费观看| 亚洲一区二区三区爽爽爽爽爽| 妞干网在线视频观看| 亚洲mmav| 日韩欧美在线不卡| 久久精品一区二区免费播放| 99精品在线| 国内精品视频一区| 中文字幕+乱码+中文乱码www | 国产精品免费在线免费| 国产黄色av网站| 久久综合av免费| 手机看片日韩国产| 91精品产国品一二三产区| 欧美日韩高清一区二区不卡| 蜜臀av粉嫩av懂色av| 第一sis亚洲原创| 欧美激情一二三| 中文字幕av在线免费观看| 粉嫩嫩av羞羞动漫久久久 | 国产精品欧美风情| 欧美77777| 中文字幕视频一区二区三区久| 蜜臀av色欲a片无码精品一区| 一二区成人影院电影网| 欧美精品一区二区在线播放| 任我爽在线视频| 亚洲永久在线| 97欧洲一区二区精品免费| 春暖花开成人亚洲区| 亚洲第一福利一区| 999在线观看| 怕怕欧美视频免费大全| 久久久久久久久久久网站| 亚洲午夜激情视频| 国产性天天综合网| 9久久9毛片又大又硬又粗| 色妞ww精品视频7777| 自拍亚洲一区欧美另类| 亚洲综合久久网| 99久久99久久精品国产片果冻| 自拍偷拍一区二区三区| 国产精品天堂蜜av在线播放 | 日本最黄一级片免费在线| 欧美性色xo影院| 国产精品久久久久久亚洲色| 欧美黄污视频| 91天堂在线视频| 中文字幕在线免费| 在线视频一区二区三| 极品粉嫩小仙女高潮喷水久久| 国产精品videosex极品| 91亚洲精品一区二区| 调教视频免费在线观看| 欧美性猛交一区二区三区精品| 在线免费观看黄色小视频| 91久久午夜| 国产精品免费一区二区| 欧美高清另类hdvideosexjaⅴ| 日韩欧美在线网站| 精品国产欧美日韩不卡在线观看 | 亚洲成av人片一区二区| 日批视频免费看| 欧美特黄一级| 国产福利不卡| 91视频欧美| 日韩电影视频免费| 男人天堂2024| 久久九九久久九九| 欧美自拍小视频| 欧美亚洲在线日韩| 国产日本欧美视频| 米奇777四色精品人人爽| 欧美日韩精品一区二区三区蜜桃 | 欧美精品a∨在线观看不卡| 精品久久久久久亚洲精品| 免费a在线观看播放| 亚洲综合日韩| 婷婷精品国产一区二区三区日韩 | 久久精品老司机| 日韩黄色免费网站| 亚洲图片小说在线| 高清一区二区| 久久久久国色av免费观看性色| 男人天堂综合网| 日韩欧美在线网址| 国产三级黄色片| 国产乱一区二区| 日本精品久久久久久久久久| 私拍精品福利视频在线一区| 国产精品678| 国产cdts系列另类在线观看| 精品国产乱码久久久久久闺蜜| 中文字幕激情小说| 中文字幕的久久| 青青草原播放器| 国产亚洲综合精品| 亚洲欧美日韩在线综合 | 91精品国产手机| 日韩免费视频网站| 亚洲国产成人在线| 杨幂一区二区国产精品| 亚洲在线免费| 中文字幕一区二区三区四区五区人 | 给我看免费高清在线观看| 蜜芽一区二区三区| 999一区二区三区| 欧美日韩一区二区综合| 91久久大香伊蕉在人线| 卡通欧美亚洲| 欧美区二区三区| 韩日在线视频| 精品国产亚洲在线| 91theporn国产在线观看| 亚洲成av人片一区二区| 91视频免费看片| 99久久精品99国产精品| www.51色.com| 久久久久91| 搞av.com| 亚洲成人免费| 日韩影片在线播放| 精品成人自拍视频| 91免费欧美精品| 国产在线|日韩| 97激碰免费视频| h网站久久久| 永久免费精品影视网站| 午夜国产在线观看| 欧美成人vps| 一区二区三区播放| 欧洲av一区二区嗯嗯嗯啊| 日本三级理论片| 亚洲免费在线看| 激情无码人妻又粗又大| 91性感美女视频| 韩国三级hd两男一女| 国产美女精品在线| 亚洲人视频在线| 免费成人在线网站| 日本男人操女人| 在线亚洲欧美| 天堂8在线天堂资源bt| 91成人国产| 在线国产伦理一区| 成人中文视频| 人偷久久久久久久偷女厕| 欧美电影完整版在线观看| 成人av免费在线看| 日韩三级久久| 成人动漫在线观看视频| 日韩精品成人在线观看| 91免费精品国偷自产在线| 97精品资源在线观看| 国产精品一区二区久久久久| 韩国女主播一区二区| 国产成人福利网站| 写真福利精品福利在线观看| 日本亚洲欧洲色| 欧美日韩国产v| 日本午夜在线亚洲.国产| 91精品xxx在线观看| 国产精品a久久久久久| 成人精品三级| 国产在线拍偷自揄拍精品| 粉嫩一区二区三区在线观看| 97人人澡人人爽| 成人免费在线电影网| 国产一区二区三区四区五区加勒比| 狼人精品一区二区三区在线| 久久久久国产精品视频| 国产调教一区二区三区| 亚洲成人第一| 91精品在线观看国产| 黄黄视频在线观看| 在线看片一区| avav在线看| 日本不卡123| 亚洲美女性囗交| 国产suv一区二区三区88区| 男人的天堂影院| 国产亚洲精品免费| 日韩精品一区二区三区在线视频| 一区二区在线观看免费视频播放| 久久亚洲av午夜福利精品一区| 亚洲v中文字幕| 欧美brazzers| 91精品在线免费| 熟妇人妻系列aⅴ无码专区友真希| 国产丝袜精品视频| 日本不卡视频| 久久久久久久一区二区三区| 成人欧美大片| 国产日韩欧美中文在线播放| 51社区在线成人免费视频| 欧美不卡在线一区二区三区| 999久久久免费精品国产| 韩国无码av片在线观看网站| 性色一区二区三区| 玖玖爱视频在线| 成年人午夜久久久| 亚洲色图第四色| 亚洲黄色小视频| 无码人妻av一区二区三区波多野 | 青青精品视频播放| 亚洲欧洲二区| 九九九九九精品| 999成人精品视频线3| 国产v片免费观看| 国内精品视频一区二区三区八戒| 久久人妻少妇嫩草av无码专区| 国产精品久久久久久久久免费樱桃| 九九精品在线观看视频| 91福利视频久久久久| 精品国产av鲁一鲁一区| 亚洲天堂第一页| 美洲精品一卡2卡三卡4卡四卡| 国产成人黄色av| 超碰97成人| dy888午夜| 日韩制服丝袜先锋影音| 三上悠亚 电影| 国产精品美女久久久久久 | 免费的黄网站在线观看| 欧美一级电影免费在线观看| 日本在线视频一区二区三区| 日韩亚洲视频在线| 国产婷婷精品| 精品久久久久一区二区| 亚洲精品日产精品乱码不卡| 欧美成人精品网站| 国产丝袜一区二区三区| 91www在线| 亚洲在线一区二区| 欧美激情另类| 中文字幕在线导航| 久久欧美中文字幕| 日韩三级一区二区三区| 日韩欧美一区二区在线视频| 黄av在线免费观看| 国产精品自在线| 精品高清久久| 成年网站在线免费观看| 99在线热播精品免费| 国产亚洲色婷婷久久99精品| 3d成人动漫网站| 黄色一级大片在线免费看产| 国产精品视频久久| 日本激情一区| 欧美男女交配视频| 欧美高清在线一区| 中文字幕一区2区3区| 国产亚洲精品久久久| 欧美黑人巨大xxxxx| 麻豆蜜桃91| 久久九九免费| b站大片免费直播| 色女孩综合影院| 九色视频成人自拍| 国产精品高潮呻吟视频| av一区二区在线观看| 久久久久国产一区| 国产精品高潮呻吟| 99产精品成人啪免费网站| 久久精品最新地址| 免费精品一区| a级免费在线观看| av亚洲精华国产精华精华| 天天操天天爽天天干| 亚洲视频在线免费观看| 先锋欧美三级| 国产卡一卡二在线| 国产成人超碰人人澡人人澡| 国产污视频在线观看| 日韩hd视频在线观看| av有声小说一区二区三区| 五月天亚洲综合情| 国产主播一区二区| 久久久久免费看| 精品一区二区三区三区| 久久亚洲精品爱爱| 日韩精品福利片午夜免费观看| 粉嫩嫩av羞羞动漫久久久| 亚洲AV无码成人精品区东京热| 一区二区在线视频播放| 91精品福利观看| 国产夫妻自拍一区| 久久美女艺术照精彩视频福利播放| 性高潮视频在线观看| 九色成人免费视频| 秋霞影视一区二区三区| 亚洲最大综合网| 一区二区三区在线视频免费观看| 神马午夜一区二区| 国产精品视频在线观看| 欧美另类亚洲| 国产成人精品无码免费看夜聊软件| 欧美美女喷水视频| 成人影音在线| 亚洲欧洲日本国产| 成人白浆超碰人人人人| 337p粉嫩色噜噜噜大肥臀| 超碰91人人草人人干| 欧美日本成人| 免费在线观看日韩av| 欧美视频一区二区在线观看| 俺来也官网欧美久久精品| 无遮挡亚洲一区| av在线播放成人|