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

性能優化知多少

移動開發 開發
性能優化是一個老生常談的問題了,典型的性能問題如頁面響應慢、接口超時,服務器負載高、并發數低,數據庫頻繁死鎖等。而造成性能問題又有很多種,比如磁盤I/O、內存、網絡、算法、大數據量等等。我們可以大致把性能問題分為四個層次:代碼層次、數據庫層次、算法層次、架構層次。

 

[[196882]]
1. 引言

最近一段時間,系統新版本要發布,在beta客戶測試期間,暴露了很多問題,除了一些業務和異常問題外,其他都集中在性能上。有幸接觸到這些性能調優的機會,當然要學習總結了。

性能優化是一個老生常談的問題了,典型的性能問題如頁面響應慢、接口超時,服務器負載高、并發數低,數據庫頻繁死鎖等。而造成性能問題又有很多種,比如磁盤I/O、內存、網絡、算法、大數據量等等。我們可以大致把性能問題分為四個層次:代碼層次、數據庫層次、算法層次、架構層次。
所以下面我會結合實際性能優化案例,和大家分享下性能調優的工具、方法和技巧。

2. 先說心態

說到性能問題,你可能首先就想到的是麻煩或者頭大,因為一般性能問題都比較緊急,輕則影響客戶體驗,重則宕機導致財務損失,而且性能問題比較隱蔽,不易發現。因此一時間無從下手,而這時我們就很容易從心底開始去排斥它,不愿接這燙手的山芋。

而恰巧,性能調優是體現程序員水平的一個重要指標。

因為處理bug、崩潰、調優、入侵等突發事件比編程本身更能體現平庸程序員與理想程序員的差距。當面對一個未知的問題時,如何定位復雜條件下的核心問題、如何抽絲剝繭地分析問題的潛在原因、如何排除干擾還原一個最小的可驗證場景、如何抓住關鍵數據驗證自己的猜測與實驗,都是體現程序員思考力的最好場景。是的,在衡量理想程序員的標準上,思考力比經驗更加重要。

所以,若你不甘平庸,請擁抱性能調優的每一個機會。當你擁有一個正確的心態,你所面對的性能問題就已經解決了一半。

3. 再說技巧

拿到一個性能問題,不要忙著先上工具,先了解問題出現的背景,問題的嚴重程度。然后大致根據自己的經驗積累作出預估。比如客戶來了個性能問題說系統宕機了,已經造成資金損失了。這種涉及到錢的問題,大家都比較敏感,根據自己的level,決定是否要接這個鍋。這不是逃避,而是自知之明。

了解問題背景之后,下一步就來嘗試問題重現。如果在測試環境能夠重現,那這種問題就很好跟蹤分析。如果問題不能穩定重現或僅能在生產環境重現,那問題就相對比較棘手,這時要立刻收集現場證據,包括但不限于抓dump、收集應用程序以及系統日志、關注CPU內存情況、數據庫備份等等,之后不妨再嘗試重現,比如恢復客戶數據庫到測試環境重現。

不管問題能否重現,下一步,我們就要大致對問題進行分類,是代碼層次的業務邏輯問題還是數據庫層次的操作耗時問題,又或是系統架構的吞吐量問題。那如何確定呢?而我傾向于先從數據庫動手。我的習慣做法是,使用數據庫監控工具,先跟蹤下Sql耗時情況。如果監控到耗時較長的SQL語句,那基本上就是數據庫層次的問題,否則就是代碼層次。若為代碼層次,再研究完代碼后,再細化為算法或架構層次問題。

確定問題種類后,是時候上工具來精準定位問題點了:

  • Sql耗時問題,推薦使用免費的Plan Explorer分析執行計劃。
  • 代碼問題定位,優先推薦使用VS自帶的Performance Analysis,其次是RedGate的性能分析套件.NET Developer Bundle;然后還有Jet Brains的dotTrace -- .NET performance profiler,dotMemory-- .NET memory profiler;再然后就是反人類的Windbg;等等。

精準定位問題點后,就是著手優化了。相信到這一步,就是優化策略的選擇了,這里就不展開了。

優化后,最后當然要進行測試了,畢竟優化了多少,我們也要做到心里有譜才行。

以上啰啰嗦嗦有點多,下面我們直接上案例。

4. 案例分享

下面就分享下我針對代碼層面、數據庫層面和算法層面的優化案例。

4.1. SQL優化案例

案例1:客戶反饋某結算報表統計十天內的數據耗時10mins左右。

由于前幾天剛學會用RedGate的分析工具,拿到這個問題,本地嘗試重現后,就直接想使用工具分析。然而,這工具在使用webdev模式起站點時,總是報錯,而當時時一根筋,老是想解決這個工具的報錯問題。結果,白白搞了半天也沒搞定。最后不得已放棄工具,轉而選擇使用sql server profiler去監控sql語句耗時。一跟蹤不要緊,問題就直接暴露了,整個全屏的重復sql語句,如下圖。

這下問題就很明顯了,八成是代碼在循環拼接sql執行語句。根據抓取到sql關鍵字往代碼中去搜索,果然如此。

#region更新三張表數據結合的中間臨時表數據,有上游單據的直接調撥單分多次下推時,只計算一次的調撥數量和價稅合計
string sSql = string.Format(@
"SELECT FENTRYID FROM {0} GROUP BY FENTRYID HAVING COUNT(FENTRYID) > 1", sJoinDataTempTable);
using(IDataReader reader = DBUtils.ExecuteReader(this.Context, sSql)) {
    while (reader.Read()) {
        sbSql.AppendFormat(@"
UPDATE {0} SET FDIRECTQTY = 0,FALLAMOUNT = 0 
WHERE FSEQ NOT IN (
SELECT TOP 1 FSEQ FROM {0} WHERE FENTRYID = {1}) AND FENTRYID = ({1});"
, sJoinDataTempTable, Convert.ToInt32(reader["FENTRYID"]));
        listSqlObj.Add(new SqlObject(sbSql.ToString(), new List < SqlParam > ()));
        sbSql.Clear();
    }
}
#endregion

看到這段代碼,咱先不評判這段代碼的優劣,因為畢竟代碼注釋清晰,省了我們理清業務的功夫。這段sql主要是想做去重處理,很顯然選用了錯誤的方案。改后代碼如下:

string sqlMerge = string.Format(@"
merge into {0} t1
using(
select min(Fseq) fseq,Fentryid from {0} t2 group by fentryid
) t3 on (t1.fentryid = t3.fentryid and t1.fseq <> t3.fseq)
when matched then
update set t1.FDIRECTQTY = 0, t1.FALLAMOUNT = 0
", sJoinDataTempTable);

listSqlObj.Add(new SqlObject(sqlMerge, new List < SqlParam > ()));
sbSql.Clear();

改后測試相同數據量,耗時由10mins降到10s左右。

4.2. 代碼優化案例

案例2:客戶反饋銷售訂單100條分錄行,保存進行可發量校驗時,耗時7mins左右。

拿到這個問題后,本地重現后,監控sql耗時沒有異常,那就著重分析代碼了。因為可發量校驗的業務邏輯極其復雜,又加上又直接再一個類文件實現該功能,3500+行的代碼,加上零星注釋,真是讓人避之不及。逃避不是辦法,還是上工具分析一把。
這次我選用的時VS自帶的Performance Profiler,開發環境下極其強大的性能調優工具。針對我們當前案例,我們僅需要跟蹤指定服務對應的dll即可,使用步驟如下:

  1. Analyze-->Profiler-->New Performance Session
  2. 打開Performance Explorer
  3. 找到新添加的Performance Session,右鍵Targets,然后選擇Add Target Binary,添加要跟蹤的dll文件即可
  4. 將應用跑起來
  5. 選中Performance Session,右鍵Attach對應進程即可跟蹤分析性能了
  6. 在跟蹤過程中,可隨時暫停跟蹤和停止跟蹤

跟蹤結束后本案例跟蹤到的采樣結果如下圖:

同時Performance Profiler也給出了問題的建議,如下圖:

其中第1、4條大致說明程序I/O消耗大,第一代的GC上存在未及時釋放的垃圾占比過高。而根據上圖的采樣結果,我們可以直接看出是由于再代碼中頻繁操作DataTable引起的性能瓶頸。走讀代碼發現的確如此,所有的數量統計都是在代碼中循環遍歷DataTable進行處理的。而最終的優化策略,就相當于一次大的重構,將所有代碼中通過遍歷DataTable的計算邏輯全部挪到SQL中去做。由于代碼過多,就不再放出。

案例3:客戶反饋批量引入1000張訂單,耗時40mins左右,且容易中斷。

同樣,我們還是先嘗試本地重寫。經測試批量引入101張單據,就耗時5mins左右。下一步打開Sql監控工具也未發現耗時語句。但考慮到是批量導入操作,雖然單個耗時不多,但乘以100這個基數,就明顯了。下面我們就使用RedGate的Ants Performance Profiler跟蹤一下。

該工具比較直觀,可以同時監控代碼和SQL執行情況。第一步,New Profiler Session,第二步進行設置,如下圖。根據自己的應用程序類別,選擇相應的跟蹤方式。

針對這個問題,我們跟蹤到的調用堆棧和SQL耗時結果如下圖:

首先從調用堆棧中的Hit Count,我們可以首先看出它是一個批量過程,因為入口函數僅調用一次;第二個我們可以代碼中是循環處理每一個單據,因為Hit Count與我們批量引入的單據數量相符;第三個,突然來了個10201,如果有一定的數字敏感性的話,這次性能問題的原因就被你找到了。這里就不賣關子了,101 x 101 = 10201。
是不是明白了什么,存在循環嵌套循環的情況。我們走讀代碼確定一下:

//Save.cs
public override void EndOperationTransaction(EndOperationTransactionArgs e) {
    //省略其他代碼
    foreach(DynamicObject dyItem in e.DataEntitys) {
        //反寫收款單
        WriteBackReceiveBill wb = new WriteBackReceiveBill();
        wb.WriteBackForSave(e, this.Context);
    }
}

//WriteBackReceiveBill .cs
public void WriteBackForSave(EndOperationTransactionArgs e, Context contx) {
    //省略其他代碼:
    foreach(DynamicObject item in e.DataEntitys) {
        //do something 
    }
}

好嘛,外層套了一個空循環卻什么也沒做。修改就很簡單了,刪除無效外層循環即可。

4.3. 算法優化案例

案例4:某全流程跟蹤報表超時。

這個報表是用來跟蹤所有單據從下單到出庫的業務流程數據流轉情況。而所有的流程數據都是按照樹形結果存儲在數據庫表中的,類似這樣:

圖中的流程為:
銷售合同-->銷售訂單-->發貨通知單-->銷售出庫單

為了構造流程圖,之前的處理方法是把流程數據取回來,通過代碼構造流程圖。這也就是性能差的原因。

而針對這種情況,就是考驗我們平時經驗積累了。對于樹形結構的表,我們也是可以通過SQL來進行直接查詢的,這就要用到了SQL Server的CTE語法來進行遞歸查詢。

5.總結

性能調優是一個循序漸進的過程,不可能一蹴而就,重在平時的點滴積累。關于工具的選擇和使用,本文并未展開,也希望讀者也不要糾結與此。當你真正想解決一個問題的時候,相信工具的使用是難不住你的。

最后就大致總結下我的調優思路:

  1. 調整心態,積極應對
  2. 了解性能背景, 收集證據, 嘗試重現
  3. 問題分類,先監控SQL耗時,大致確定是SQL或是代碼層次原因
  4. 使用性能分析工具,確定問題點
  5. 調優測試 
本文轉自博客園,版權歸作者和博客園共有。 作者:圣杰

 

責任編輯:張子龍 來源: 博客園
相關推薦

2012-06-28 13:44:55

測試性能測試并發

2012-06-26 09:20:49

性能測試

2024-08-06 10:07:15

2012-02-13 22:50:59

集群高可用

2013-03-21 11:20:00

性能測試性能調優測試

2021-12-04 11:17:32

Javascript繼承編程

2025-04-14 08:50:00

Google ADK人工智能AI

2010-08-16 09:15:57

2013-12-23 14:00:31

Windows 8.2Windows 8.1

2009-05-13 17:31:06

DBAOracleIT

2021-07-22 07:20:24

JS 遍歷方法前端

2012-09-10 16:38:40

Windows Ser

2020-09-08 10:56:55

Java多線程存儲器

2018-08-31 10:53:25

MySQL存儲引擎

2022-01-06 16:20:04

Java排序算法排序

2022-05-08 18:02:11

tunnel隧道云原生

2009-03-06 19:19:55

2024-07-01 12:30:09

2021-12-09 06:41:56

Python協程多并發

2010-09-29 09:28:04

DHCP工作原理
點贊
收藏

51CTO技術棧公眾號

国产福利视频在线观看| 国产美女免费视频| 日韩aaaa| 欧美一区二区三区色| www.av毛片| yw在线观看| 高清av一区二区| 国产精品久久久久久久一区探花| 国产精品99久久久久久成人| 久久精品色播| 欧美女孩性生活视频| 日韩一级性生活片| 免费成人黄色| 久久夜色精品国产欧美乱极品| 国产日产亚洲精品| 欧美一区二区激情视频 | 艳母动漫在线观看| 青青草免费在线| 国产激情视频一区二区三区欧美 | 国产美女精品视频免费播放软件| 精品久久久一区二区| 一区二区三区一级片| 日本福利片高清在线观看| 国产精一区二区三区| 国产ts一区二区| av资源吧首页| 午夜av一区| 在线视频亚洲欧美| 黄瓜视频污在线观看| 日韩欧美久久| 制服丝袜av成人在线看| 国产视频在线视频| 色网在线免费观看| 亚洲福利一区二区三区| 欧美少妇一区二区三区| 午夜免费福利在线观看| 久久综合给合久久狠狠狠97色69| 成人av资源| 99热这里只有精品66| 人人超碰91尤物精品国产| 91成品人片a无限观看| 久久精品国产亚洲av无码娇色 | 鲁一鲁一鲁一鲁一色| 青春草视频在线观看| 亚洲人被黑人高潮完整版| 欧美日韩中文国产一区发布| 在线观看xxx| 99久久精品免费看| 国产一区二区免费在线观看| 亚洲免费成人网| 成人午夜精品一区二区三区| 91亚洲精品在线| 国产免费黄色片| 国产精品一区二区视频| 999精品视频一区二区三区| 91午夜交换视频| 精久久久久久久久久久| 成人网在线免费观看| 国产又粗又长又大视频| 久久福利资源站| 91久久精品国产91久久| 国产人妖在线播放| 国产成人亚洲精品狼色在线| 99久久精品免费看国产一区二区三区| 99久久亚洲精品日本无码| 激情欧美一区二区三区在线观看| 91久久精品日日躁夜夜躁国产| 国产精品久久久久久久久久久久久久久久久久 | 久久中文字幕视频| 久久精品99国产精| 一区二区精品| 国产精品va在线| 一级片在线观看视频| 国产一区二区不卡| 国产综合精品一区二区三区| 男人的天堂av高清在线| 中文一区二区在线观看| av磁力番号网| av不卡高清| 婷婷久久综合九色综合绿巨人 | 亚洲在线视频一区二区| 黄色av电影在线播放| 亚洲国产成人va在线观看天堂| 女人和拘做爰正片视频| 成人在线高清| 欧美刺激脚交jootjob| 亚洲欧美日本一区| 欧美综合视频| 欧美激情中文字幕在线| 天天干天天色综合| 国产精品一区二区在线观看不卡 | 波多野结衣影院| 欧美一级精品| 久久久久久久影院| 99re热视频| 成人精品小蝌蚪| 日韩国产美国| 里番在线播放| 欧美影院午夜播放| 熟妇高潮一区二区| 欧美电影免费| 69视频在线播放| 国产精品九九九九| 久久久久久免费毛片精品| 中文字幕av久久| 三级成人黄色影院| 欧美成人性战久久| 国产伦精品一区二区三区视频女| 欧美日韩网站| 国产成人亚洲综合91精品| 亚洲黄色小说网址| 国产精品美女视频| 男人日女人bb视频| 中文字幕亚洲在线观看| 日韩在线中文字幕| 久久国产视频精品| 成人免费黄色大片| 91xxx视频| 国产经典一区| 亚洲欧美激情四射在线日| 国产亚洲第一页| 精品一区二区日韩| 日本一区二区在线视频观看| av有码在线观看| 欧美一区二区三区系列电影| 国产性猛交xx乱| 亚洲永久免费精品| 国产麻豆乱码精品一区二区三区 | 午夜精品影院在线观看| 日本成人xxx| 小小影院久久| 国产在线观看一区二区三区| 国产九色在线| 欧美午夜精品在线| 熟女人妻在线视频| 亚洲欧美日韩精品一区二区 | 久久人人爽人人片| 婷婷久久综合| 国产有码一区二区| 蜜桃视频网站在线| 欧美日韩大陆在线| 天天干天天操天天拍| 日韩高清一级片| 免费在线成人av| 成人va天堂| 亚洲人成欧美中文字幕| 久久久成人免费视频| 91丨九色丨蝌蚪丨老版| 春日野结衣av| 最新精品国偷自产在线| 国产z一区二区三区| 免费资源在线观看| 91精品办公室少妇高潮对白| 亚洲第一成人网站| 日韩不卡手机在线v区| 天天久久人人| 六九午夜精品视频| 欧美成人剧情片在线观看| 99热这里精品| 亚洲国产精品一区二区久久| 日韩av手机在线播放| 性色一区二区三区| 色综合666| 国产视频一区二区在线播放| 欧美成人免费一级人片100| 午夜精品久久久久久久96蜜桃| 亚洲一区二区三区四区五区中文| 熟妇高潮一区二区| 久久婷婷亚洲| 亚洲制服欧美久久| 亚洲国产中文在线| 26uuu久久噜噜噜噜| 国产小视频在线| 欧美日韩aaaaaa| 一区二区在线观看免费视频| 成人高清免费观看| 无码人妻丰满熟妇区毛片| 青青草原综合久久大伊人精品| 国产综合在线观看视频| 欧美人与禽猛交乱配| 日韩禁在线播放| 中文字幕有码视频| 亚洲一二三四久久| 精品国产成人亚洲午夜福利| 精品一区二区三区免费观看| 男人日女人视频网站| 国产精品欧美三级在线观看| 国产综合久久久久| 日本在线播放一二三区| 色偷偷噜噜噜亚洲男人的天堂| 亚洲第一成年人网站| 色呦呦日韩精品| 日本a级片视频| 久久免费午夜影院| 日本人dh亚洲人ⅹxx| 久久国产88| 国产人妻人伦精品| 波多野结衣在线观看一区二区| 91久久在线播放| 成人免费影院| 欧美日韩高清在线观看| 国际av在线| 精品国产乱码久久久久久牛牛| 无码人妻精品一区二区| 亚洲影院在线观看| 最新日韩免费视频| 95精品视频在线| 91精产国品一二三| 久久99久久久欧美国产| 那种视频在线观看| 国产精品v一区二区三区| 亚洲成人一区二区三区| 神马午夜久久| 99九九视频| 久久av网站| 国产精品男女猛烈高潮激情| 日韩脚交footjobhdboots| 久久国产精品亚洲| 蜜桃视频在线观看免费视频网站www| 亚洲精品乱码久久久久久按摩观| 国产又粗又黄又爽的视频| 色美美综合视频| 天堂网av手机版| 亚洲一区二区三区视频在线| www日韩在线| 亚洲国产精品成人久久综合一区| 极品白嫩丰满美女无套| 国产成人精品综合在线观看 | 久久一日本道色综合| 亚洲精品乱码久久久久久蜜桃欧美| 久久99精品久久久久久动态图| av网站在线观看不卡| 国产日韩亚洲| 青青草成人免费在线视频| 国产主播精品| 久久久天堂国产精品| 亚洲精品电影| 丰满女人性猛交| 天天做天天爱天天综合网| 亚洲精蜜桃久在线| 久久网站免费观看| 亚洲狠狠婷婷综合久久久| 不卡av一区二区| 日本视频一区在线观看| 精品久久成人| 亚洲精品一区二区三区av| 国产欧美日韩在线观看视频| 欧美日韩精品免费在线观看视频| 亚洲欧洲免费| 视频在线99re| 四虎成人精品永久免费av九九| 亚洲精品中文字幕在线| 99久久99热这里只有精品| 亚洲欧美丝袜| 欧美在线免费| 男人天堂av片| 国产精品日韩| 久久久久免费精品| 久久精品国产亚洲高清剧情介绍| jizz欧美性11| 国产精品一区免费视频| 丝袜熟女一区二区三区| 99精品国产一区二区三区不卡| 少妇精品无码一区二区三区| 97精品久久久午夜一区二区三区| 最新中文字幕视频| 国产精品三级av| 日韩影院一区二区| 亚洲国产日日夜夜| 毛片在线免费视频| 欧美日韩亚洲国产综合| 国产精品一级视频| 精品国产一区二区三区久久久蜜月 | 另类小说一区二区三区| 中文写幕一区二区三区免费观成熟| zzijzzij亚洲日本少妇熟睡| 欧美黄色一级生活片| 国产精品不卡视频| av资源吧首页| 欧美视频在线一区二区三区| 国内精品偷拍视频| 日韩激情视频在线| 日本www在线观看视频| 九九热最新视频//这里只有精品 | 欧美日韩精品在线观看| 免费黄色片视频| 欧美一区二区三区小说| 手机看片福利在线观看| 日韩中文字幕在线播放| caoprom在线| 国产日韩欧美黄色| 理论片一区二区在线| 性欧美大战久久久久久久免费观看 | 亚洲人在线视频| 91高清在线观看视频| 欧洲美女免费图片一区| 国产精品日韩精品在线播放 | 瑟瑟视频在线| 2023亚洲男人天堂| 激情不卡一区二区三区视频在线 | 美女欧美视频在线观看免费| 久久精品国产精品亚洲| 亚洲最新无码中文字幕久久| 亚洲在线观看视频| 欧美一二区在线观看| 黄色一级片播放| 国产精品123| 欧美成人久久久免费播放| 精品国产乱码久久久久久虫虫漫画| 亚洲天堂狠狠干| 亚洲免费精彩视频| 色呦呦在线观看视频| 国产精品揄拍500视频| 思热99re视热频这里只精品| 欧美一区二区三区综合| 青椒成人免费视频| 一道本在线观看| 欧美日韩国产一区在线| 亚洲男人天堂久久| 精品国产依人香蕉在线精品| 亚洲成人人体| 久久资源亚洲| 亚洲日韩成人| 91人人澡人人爽| 亚洲激情五月婷婷| 国产特黄一级片| 日韩在线免费观看视频| 99热播精品免费| 欧美日韩一区二区视频在线| 99riav国产精品| 五月天丁香社区| 午夜欧美在线一二页| 亚洲精品字幕在线| 欧美人与性动交| 中文无码日韩欧| 日本一道在线观看| 国产麻豆成人精品| 男人与禽猛交狂配| 欧美一级高清片| 香蕉成人app免费看片| 91久久国产综合久久91精品网站| 久久资源中文字幕| 伊人色在线观看| 亚洲丝袜另类动漫二区| 国产伦一区二区| 九色成人免费视频| 草草视频在线一区二区| 免费特级黄色片| av在线播放一区二区三区| 精品成人免费视频| 国产视频丨精品|在线观看| 欧美13videosex性极品| 欧美日韩高清在线一区| 日韩av成人高清| 侵犯稚嫩小箩莉h文系列小说| 3atv一区二区三区| 日韩三级免费| 九色91视频| 日韩一区精品视频| 国产大屁股喷水视频在线观看| 欧美久久久影院| 美女羞羞视频在线观看| 91在线看网站| 亚洲视频1区| 一级二级黄色片| 91精品国产福利在线观看| 黄网站在线观| 欧美日韩精品免费在线观看视频| 蜜桃av噜噜一区二区三区小说| 九九这里只有精品视频| 精品99久久久久久| 欧美极度另类| 青青草影院在线观看| 99久久精品免费看| 中文字幕在线播放日韩| 欧美xxxx18国产| 亚洲精品456| 日韩av福利在线观看| 午夜精品国产更新| 91在线看片| 国产精品福利视频| 日韩极品在线观看| 在线免费日韩av| 精品亚洲一区二区三区| 四虎国产精品免费久久| 日本国产在线播放| 日韩一区日韩二区| 欧美偷拍视频| 91久久久久久久一区二区| aa国产精品| 国语对白在线播放| 亚洲欧美变态国产另类| 日韩免费一级| 国产野外作爱视频播放| 午夜电影久久久| 麻豆传媒视频在线观看| 欧美精品一区在线发布| 国产精选一区二区三区| 国产无遮挡又黄又爽又色视频| 欧美激情视频网|