91av视频导航_日韩av网站在线_日韩av最新在线_理论片在线不卡免费观看_亚洲91精品在线_亚洲伊人一本大道中文字幕_午夜精品一区二区三区av_国产福利精品在线_欧美老女人在线视频_精品成人在线视频_欧美日韩美女在线观看_国产精品视频99_亚洲欧美日本伦理_亚洲欧洲av一区二区_国产日韩一区在线_国产精品偷伦一区二区

400-650-1086
首頁 > 最新資訊 > 企業(yè)新聞 > 正文

談?wù)効蛻舳诵阅軆?yōu)化的一些最好實(shí)踐

admin 2015-01-21 09:10:45 0

體系界面與功用

先來看看本來的體系界面是如何子的:
?

功用如下,我新寫的客戶端增加了支持生成OCX控件的功用:

全部體系的物理架構(gòu)是這樣的:

原體系存在的疑問

  • 加載主頁面慢

跟著界面數(shù)量的增加,會(huì)需求更多的加載時(shí)刻
跟著地址和設(shè)備的增加,加載會(huì)需求更多的時(shí)刻

  • 頁面之間切換卡
  • 數(shù)據(jù)顯現(xiàn)慢
  • 地址的報(bào)警狀況顯現(xiàn)不精確且存在推遲
  • 報(bào)警并發(fā)較多時(shí)卡頓更嚴(yán)峻

客戶端性能優(yōu)化的底子辦法

咱們來看看經(jīng)過一些啥辦法能夠處理本來的體系存在的這些疑問。

按需獲取

大多數(shù)的狀況下,咱們本來所能看到的東西都是極端有限的,不管體系是多么巨大,功用多么的豐厚,本來呈現(xiàn)給用戶的都是極端有限的。

監(jiān)控界面的按需獲取

前面說了,監(jiān)控主界面里的界面都是組態(tài)的,是由工程師拖拉控件上去完結(jié)的,咱們也看到上面圖形還算豐厚,主要是運(yùn)用了許多的圖像,因而咱們體系中在保留這些組態(tài)界面的時(shí)分,一同也保留了界面圖像的字節(jié)省。大型的數(shù)據(jù)中心由于界面較多,這些界面加起來是也許會(huì)超越1G巨細(xì)的。這么大的界面,假如都是直接加載到界面中,首要就要費(fèi)不少的時(shí)刻,即便是在內(nèi)網(wǎng)的狀況下,假定你網(wǎng)絡(luò)能夠1s下載20M擺布,也要50秒,接近1分鐘,遇上網(wǎng)絡(luò)頂峰,花個(gè)1~2分鐘并不奇怪。

咱們是不是有必要把一切界面都加載進(jìn)來呢,當(dāng)然沒有。咱們只需加載第一個(gè)界面,其他界面在需求的時(shí)分(用戶點(diǎn)擊或許發(fā)作告警需求跳轉(zhuǎn)的時(shí)分)才加載,這樣咱們的速度里邊就提高了,這即是按需加載!

當(dāng)然說的輕盈,實(shí)踐做的會(huì)有許多疑問。比方,如何完結(jié)不完結(jié)頁面又能曉得該頁面是不是告警(有必要解析每個(gè)界面上的控件,才干曉得某個(gè)界面包含了哪些控件,才曉得監(jiān)控目標(biāo)告警在哪個(gè)界面上)?

我的進(jìn)程如下:

  • 保留界面的時(shí)分,把界面上的控件的Id列表存儲(chǔ)到設(shè)備記載中
  • 加載時(shí)只加載一切的設(shè)備記載(稱號+控件Id列表)
  • 把對應(yīng)的信息附加到樹形節(jié)點(diǎn)中
  • 依據(jù)對應(yīng)的樹形節(jié)點(diǎn)的告警信息在需求顯現(xiàn)界面時(shí)生成界面

按需改寫界面上的數(shù)據(jù)

做監(jiān)控體系,除了告警頁面有必要實(shí)時(shí)告訴到客野外,監(jiān)控?cái)?shù)據(jù)界面,本來只需展示當(dāng)時(shí)顯現(xiàn)頁面的數(shù)據(jù)即可。

如何做呢,咱們能夠供給一個(gè)獨(dú)自的程序來辦理一切接收到的數(shù)據(jù),然后再供給一個(gè)獲取當(dāng)時(shí)數(shù)據(jù)的接口給客戶端,具體請看下面更改的架構(gòu)。

有些人也許會(huì)疑問,為何不直接在采集器中供給這個(gè)接口呢?由于這是組態(tài)界面,界面上的控件要取哪個(gè)采集器的數(shù)據(jù)是未知的,所以把數(shù)據(jù)放在一同統(tǒng)一辦理會(huì)愈加便利。并且采集器能夠7*24小時(shí)作業(yè),而客戶端是常常要翻開封閉的……

VS2010中的反例

假如用過VS2010開發(fā)自定義的Winform組件,那么咱們對它的工具箱加載自定義組件這個(gè)功用必定形象深入,每次挑選增加項(xiàng),然后挑選自定義控件dll的時(shí)分,都十分苦楚,特別我電腦比照忙而又裝了不少插件的狀況下,為了一個(gè)十分簡略的功用,我需求花費(fèi)4分多的時(shí)刻來翻開那個(gè)挑選文件的界面,這個(gè)界面加載了一大堆我絕大多數(shù)時(shí)分都用不上的COM組件,我真實(shí)無法幻想開發(fā)這個(gè)功用的程序猿是如何想的。還好,在VS2013中微軟總算是改進(jìn)了這個(gè)功用,可是做得還不行。按我的主意,徹底能夠把COM組件部分異步加載,給出正在加載的提示即可,能夠當(dāng)即顯現(xiàn)“挑選”按鈕,這樣領(lǐng)會(huì)性當(dāng)即上升了一個(gè)層次。

推遲加載

推遲加載是指用到的時(shí)分,再去進(jìn)行實(shí)踐的構(gòu)建。

樹形菜單的推遲加載

樹形菜單的樹形節(jié)點(diǎn)的構(gòu)建即是一個(gè)最適合解說的比如。咱們能夠測驗(yàn)加載1000個(gè)樹形節(jié)點(diǎn)然后構(gòu)建成一棵樹,看看在Winform中需求多長的時(shí)刻。咱們的實(shí)踐中有沒有必要這么去做呢?

各位能夠思考下自個(gè)檢查樹形導(dǎo)航的時(shí)分,是不是從根節(jié)點(diǎn)到子節(jié)點(diǎn)終究到葉子節(jié)點(diǎn)這樣一步步看下去的,大多數(shù)的時(shí)分,本來咱們只需首要看到根節(jié)點(diǎn)即可。例如下面這個(gè):

關(guān)于這種狀況,咱們徹底能夠把樹形節(jié)點(diǎn)都獲取,可是先只創(chuàng)立只要根節(jié)點(diǎn)的一棵樹,在用戶點(diǎn)擊以后加載子節(jié)點(diǎn),假如已判別過,則不履行加載的操作。底子的辦法是在Tag中附加一個(gè)字段指示子節(jié)點(diǎn)是不是現(xiàn)已加載,參閱代碼如下:

private void TreeDevices_BeforeSelect(object sender, TreeViewCancelEventArgs e)
{
    var myNode = e.Node.Tag as NTier.Model.MyTreeNode;
    if (myNode == null) return;
 
    if (myNode.IsSubNodeLoaded == false)
    {
        //還沒有加載數(shù)據(jù),主要是指機(jī)房節(jié)點(diǎn)
        LoadNodesOfSubMainForm(e.Node, myNode); //加載樹形子節(jié)點(diǎn)
    }
 
    //已加載了數(shù)據(jù),則生成相應(yīng)的界面
    LoadFormModel(myNode);
}

 

這兒推遲加載與按需加載有點(diǎn)相似,區(qū)別是,推遲加載有必要把一切數(shù)據(jù)加載進(jìn)來,可是并不構(gòu)建成一棵UI樹,而是在用到的時(shí)分再去生成。

右鍵推遲初始化

另一個(gè)當(dāng)?shù)丶词敲總€(gè)控件的右鍵菜單。由于每個(gè)右鍵菜單顯現(xiàn)的內(nèi)容是需求依據(jù)控件的類型以及有關(guān)的權(quán)限來判別的,可是咱們看到右鍵菜單的時(shí)分一定是人為進(jìn)行操作才干顯現(xiàn)出來,因而沒有必要再界面生成的進(jìn)程中去為每個(gè)控件生成對應(yīng)的右鍵菜單,而是在彈出右鍵菜單時(shí)進(jìn)行有關(guān)的判別,推遲右鍵菜單的生成。

化曲為直

咱們曉得,假如要檢查一棵樹的一切節(jié)點(diǎn),常用的辦法即是運(yùn)用遞歸進(jìn)行廣度遍歷或許深度遍歷。可是,在樹形節(jié)點(diǎn)較多的時(shí)分,遍歷本來是十分耗時(shí)的。在咱們這個(gè)體系中,告警是有必要要最早處理的,因而,我在體系中運(yùn)用Dictionary類型緩存了每個(gè)特點(diǎn)節(jié)點(diǎn)與它有關(guān)聯(lián)的數(shù)據(jù)類型(ID),然后能夠在發(fā)作告警時(shí)立刻定位到指定樹形節(jié)點(diǎn)。

緩存,仍是緩存

緩存界面

咱們體系是組態(tài)的界面,這就約束了界面的生成有必要是動(dòng)態(tài)的。假如咱們選用按需加載的辦法,那么界面的生成即是實(shí)時(shí)的,如何能夠做到疾速的進(jìn)行頁面的切換呢?

var tempPanel = _panelCache.CreatePanel(this, formModel, myNode.AgentBm); //創(chuàng)立Panel

在這兒,我專門寫了一個(gè)界面的緩存類,假如沒有緩存,則動(dòng)態(tài)創(chuàng)立,假如有緩存,就直接回來緩存的界面。一同,依據(jù)界面的最新的翻開時(shí)刻和點(diǎn)擊次數(shù),對緩存的界面進(jìn)行辦理。咱們曉得,全部大型體系中,本來用戶重視的界面也是有限的,通常他們只會(huì)重視最重要的幾個(gè)界面,最常用的也是這幾個(gè)界面。經(jīng)過緩存的辦理,不但能夠完結(jié)界面之間的疾速切換,一同也減少了體系占用的內(nèi)存。我全部客戶端程序文件巨細(xì)緊縮以后在500k以內(nèi),而運(yùn)轉(zhuǎn)期間占用內(nèi)存底子維持在50M擺布

緩存數(shù)據(jù)

檢查上面改造過后的架構(gòu),咱們曉得如今獲取數(shù)據(jù)是在翻開界面以后再去獲取,直到樹立銜接并獲得數(shù)據(jù)以后,才干在界面上顯現(xiàn),這個(gè)進(jìn)程通常會(huì)耗時(shí)1~2秒,網(wǎng)絡(luò)差的狀況會(huì)更糟。如何才干讓用戶更為疾速的斷定咱們的體系現(xiàn)已運(yùn)轉(zhuǎn)了呢?這兒咱們經(jīng)過一個(gè)簡略的辦法,集中服務(wù)端經(jīng)過守時(shí)把當(dāng)時(shí)監(jiān)控到的數(shù)據(jù)寫入控件的特點(diǎn)中,在體系加載控件的一同把這個(gè)值顯現(xiàn)出來,這樣能夠看起來好像是體系立刻獲取到了數(shù)據(jù)。而由于緩存的值是守時(shí)把最新值寫入進(jìn)入的,這種做法在很大程度上保證了緩存中的數(shù)值是準(zhǔn)確的。

異步,仍是異步

異步是進(jìn)步程序響應(yīng)和用戶領(lǐng)會(huì)的不貳法寶。C#中的控件和大多數(shù)流操作類等都供給了支持異步操作的辦法:BeginXXX和EndXXX.它的原理也十分簡略,運(yùn)用BeginXXX時(shí),把操作參加線程池,履行完結(jié)以后調(diào)用一個(gè)回調(diào)函數(shù)。

一個(gè)用戶領(lǐng)會(huì)杰出的體系,應(yīng)當(dāng)能夠合理的運(yùn)用異步操作,保證履行UI更新時(shí)以及履行耗時(shí)的操作時(shí)不會(huì)堵塞。大多數(shù)人在寫代碼的時(shí)分,老是直接進(jìn)行調(diào)用,在控件較少或許完結(jié)簡略使命的時(shí)分,你通常都感受不出來,可是在控件數(shù)量多的時(shí)分,咱們很簡略就感受到界面卡,不流通。

我在新體系開發(fā)的時(shí)分,就有認(rèn)識(shí)的在控件加載、控件數(shù)據(jù)改寫、控件告警狀況切換等操作中運(yùn)用了異步的操作,讓體系在翻開界面時(shí)徹底感受不到卡的跡象。

不過運(yùn)用異步要時(shí)刻記住,異步能夠進(jìn)步用戶領(lǐng)會(huì)性,可是不會(huì)有性能上的本質(zhì)提高,假如感受到數(shù)據(jù)響應(yīng)有推遲,你仍是得花功夫找到底子的緣由。

歸并處理

界面數(shù)據(jù)改寫歸并處理

咱們來看看本來界面是如何改寫數(shù)據(jù)的:

翻開界面->改寫數(shù)據(jù)->新建一個(gè)線程->守時(shí)改寫數(shù)據(jù)->封閉界面->封閉線程。

對Windows體系有滿足了解的人都曉得,新開一個(gè)線程都是十分消耗資本的。這種狀況,咱們是能夠在全部體系中,供給一個(gè)統(tǒng)一辦理的改寫線程,只需對當(dāng)時(shí)需求改寫的界面進(jìn)行改寫即可:

改寫線程->判別當(dāng)時(shí)界面是不是存在->守時(shí)改寫數(shù)據(jù)

聯(lián)系上述的異步操作,咱們的控件在改寫數(shù)據(jù)的時(shí)分十分的流通。

告警跳轉(zhuǎn)歸并處理

上面咱們提到了,在體系發(fā)作告警時(shí),有必要要跳轉(zhuǎn)到報(bào)警的頁面,這個(gè)機(jī)制在許多告警并發(fā)的時(shí)分,就會(huì)有十分大的疑問,很也許咱們的體系就會(huì)在不一樣的界面中進(jìn)行跳轉(zhuǎn)而卡死。關(guān)于體系的用戶來說,在1~3秒內(nèi)的多個(gè)告警,咱們本來能夠處理為一個(gè)告警,咱們只需往終究一個(gè)告警發(fā)作的頁面跳轉(zhuǎn)即可,這樣既達(dá)到了相應(yīng)的作用,也減少了體系的壓力。這即是告警并發(fā)時(shí)的歸并處理。

視覺詐騙

在一些狀況中,咱們確實(shí)短時(shí)刻沒有辦法對性能進(jìn)行提高了,花費(fèi)的時(shí)刻卻要要這么多,這種狀況下,咱們有些啥好的做法呢?

給出提示信息或許進(jìn)展條

假如咱們常常用手機(jī)登入微博、微信等,必定對這些app加載圖像有過一些領(lǐng)會(huì),特別假如你是在網(wǎng)絡(luò)較差的狀況下,同樣是要等1分鐘才干加載出圖像,假如這個(gè)app沒有任何提示,那么,過了30秒或許20秒,你就有也許受不了把他點(diǎn)掉了,由于你感受它好像現(xiàn)已過了幾分鐘,還有也許遙遙無期;而假如這個(gè)app能夠提示當(dāng)時(shí)下載的字節(jié)數(shù)、當(dāng)時(shí)下載的進(jìn)展,那么,1分鐘的等候,你好像也能承受,這畢竟是網(wǎng)絡(luò)致使的疑問。這即是一種視覺上的詐騙。

在一個(gè)體系的加載進(jìn)程中,有提示信息和沒FF;"> ?提示信息,有進(jìn)展條和沒進(jìn)展條,給人感受的速度是不一樣的,即便從實(shí)踐的狀況來看這兩者沒有任何不同。

悄悄加載

許多時(shí)分,咱們體系的運(yùn)轉(zhuǎn)需求從服務(wù)器中獲取一些最新的數(shù)據(jù),以支持底子的運(yùn)轉(zhuǎn)。這部分時(shí)刻是你必不可少的,許多人都認(rèn)為這是沒有任何辦法??;"> ?98化的,本來不然。咱們許多程序本來都供給了一個(gè)用戶名和暗碼的輸入框,本來在用戶輸入的進(jìn)程中,咱們?nèi)允悄軌蜻\(yùn)用的。在彈出登入窗到輸入賬號和暗碼到登入體系的進(jìn)程中,通常都會(huì)有3~5秒的時(shí)刻。

我看到許多人寫程序,彈出登錄框就老老實(shí)實(shí)的彈出,然后在輸入完用戶名和暗碼以后在進(jìn)行數(shù)據(jù)的獲取和加載?F;"> ?F??實(shí)踐上,咱們現(xiàn)已浪費(fèi)了這些時(shí)刻。假如你能有用運(yùn)用這3~5秒,那么,你就現(xiàn)已贏在了起跑線。

簡化數(shù)據(jù)

視覺詐騙的別的一個(gè)重要運(yùn)用,即是在曲線的烘托中。在機(jī)房監(jiān)控中,咱們有些設(shè)備的監(jiān)控比照頻頻,一天發(fā)生的數(shù)據(jù)高達(dá)幾萬條,把這么多的數(shù)據(jù)制作到一條24小?F;"> ?6??的曲線上,咱們將會(huì)看到許多鱗次櫛比的點(diǎn),制作這些點(diǎn)十分的耗時(shí)和耗資本。而咱們供給曲線給用戶檢查的意圖是啥呢,是想檢查一天的趨勢變化,過多密布的點(diǎn)本來是沒有必要的,咱們看看下圖,假如數(shù)據(jù)點(diǎn)更多的話,第二個(gè)曲線會(huì)愈加密布,看起來會(huì)像一條粗大的直線:

經(jīng)過簡略算法對曲線進(jìn)行緊縮以后,顯現(xiàn)前史趨勢的速度十分的快,十分的流通。咱們比照上面兩條曲線,本來對用戶來說,或許更喜愛第一條曲線,由于他反響的趨勢更為優(yōu)美,有木有?

運(yùn)用單元測驗(yàn)輔佐開發(fā)

在我的博文中,我一向著重運(yùn)用單元測驗(yàn),不管是開發(fā)仍是重構(gòu)。我覺得這個(gè)不管是如何著重都不為過的。

在開發(fā)的進(jìn)程,咱們應(yīng)當(dāng)有認(rèn)識(shí)的按單元測驗(yàn)的意圖來構(gòu)建咱們的函數(shù)、類、以及程序集,假如你的函數(shù)契合單元測驗(yàn)需求的話,通常都是比照簡略重構(gòu)和維護(hù)的。別的,咱們開發(fā)的進(jìn)程中,許多時(shí)分需求驗(yàn)證某個(gè)功用是不是可用,運(yùn)用單元測驗(yàn),將會(huì)很疾速的幫你完結(jié)這個(gè)驗(yàn)證操作。我看咱們許多程序員開發(fā)功率都不高,特別在開發(fā)一個(gè)大型體系的時(shí)分,喜愛把全部體系開起來調(diào)試,或許是在體系里邊加上各種裝備或許條件編譯來進(jìn)行調(diào)試,這種習(xí)氣十分欠好。在程序中參加裝備簡略讓程序結(jié)構(gòu)呈現(xiàn)紊亂,代碼的閱覽領(lǐng)會(huì)也欠好,許多時(shí)分假如咱們忘掉去掉這個(gè)裝備,很簡略就對發(fā)布的體系發(fā)生較大的影響。

運(yùn)用單元測驗(yàn)別的一個(gè)優(yōu)點(diǎn)是,咱們能夠隨時(shí)針對某個(gè)辦法進(jìn)行性能上的測驗(yàn),發(fā)現(xiàn)哪些代碼對咱們的體系造成了較大的影響。我習(xí)氣連私有的函數(shù)也一同參加測驗(yàn),以下是調(diào)用私有函數(shù)的一個(gè)輔佐辦法:

public static object InvokePMethod(Type type, string methodName, object classInstance,object[] @params)
{
    const BindingFlags flags = BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.Static;
    var methodInfo = type.GetMethod(methodName, flags);
    var result = methodInfo.Invoke(classInstance, @params);
    return result;
}

 

供給完善的日志信息

在平時(shí)的開發(fā)中,我一向跟我的搭檔著重日志的重要性。信任有一定開發(fā)經(jīng)歷的都曉得在體系中寫日志,可是,如何把日志寫好,許多人都掌握不了。在這兒我提幾點(diǎn)主張:

  • 按日志的重要性和具體程度區(qū)分等級
  • 供給調(diào)試等級和運(yùn)轉(zhuǎn)等級的日志
  • 留意記載體系信息和裝備信息
  • 在狀況變化時(shí)進(jìn)行記載
  • 把一樣的信息進(jìn)行兼并
  • 能夠反響程序運(yùn)轉(zhuǎn)的事務(wù)邏輯

之前咱們的體系是自個(gè)完結(jié)的日志組件,我用C#重寫時(shí),引入了NLog日志組件,我覺得這個(gè)日志組件十分好用。別的,我還專門供給了一個(gè)UI界面的調(diào)試窗,以便實(shí)施工程師在現(xiàn)場調(diào)試的時(shí)分能夠疾速定位疑問。

在實(shí)踐運(yùn)轉(zhuǎn)的進(jìn)程中,由于有杰出的日志信息,我很快能夠排查許多的疑問,而大多數(shù)的疑問都是由于裝備致使的。我一致跟研制的搭檔著重,盡也許的不要信任現(xiàn)場工程師給你的判別,應(yīng)當(dāng)要現(xiàn)場工程師供給依據(jù)給你,而要供給啥樣的依據(jù),作為一個(gè)研制,你才是最明白的。好的日志體系應(yīng)當(dāng)能夠依據(jù)日志信息精確的定位到疑問,在離線的狀況下能夠最大程度的反響當(dāng)時(shí)體系的裝備、運(yùn)轉(zhuǎn)狀況、以及錯(cuò)誤信息。

優(yōu)化的成果

終究用C#重寫的客戶端在各方面變現(xiàn)都十分的好,體系十分穩(wěn)定,全部體系進(jìn)入在2s擺布,頁面切換在1s擺布,最重要的是,客戶端跟體系的巨細(xì)沒有關(guān)系,習(xí)慣巨細(xì)的數(shù)據(jù)中心。咱們看看新老體系在加載進(jìn)程中的一個(gè)比照:

很明顯,經(jīng)過上述辦法進(jìn)行一些優(yōu)化以后,咱們的體系在各個(gè)進(jìn)程都有了提高,并且經(jīng)過異步、緩存、詐騙等辦法讓一些進(jìn)程能夠同步進(jìn)行,大大加馬上體系的加載和相應(yīng)。

總結(jié)

我希望經(jīng)過這篇文章,把客戶端優(yōu)化的一些辦法共享出來,供咱們參閱。這其間沒有啥深邃的常識(shí),也沒有說要你有必要選用如何的編程言語,僅僅是經(jīng)過一些簡略的辦法,并歸納應(yīng)用,就能把一個(gè)體系的響應(yīng)速度從4分鐘提高到只需兩秒。當(dāng)然,咱們還有其他許多的辦法,比方分布式……不管是啥樣的技巧,我覺得有一些底子的準(zhǔn)則是要遵循的:

  • 站在用戶的視點(diǎn)思考疑問
  • 永久不要把挑選交給用戶
  • 有必要思考最極端惡?
    來源:機(jī)房監(jiān)控 機(jī)房環(huán)境監(jiān)控 機(jī)房監(jiān)控系統(tǒng) http://www.ixsba.com
售前咨詢

專線:劉剛 13911133352

E-mail:112417434@qq.com

北京金恒智能系統(tǒng)工程技術(shù)有限責(zé)任公司 版權(quán)所有 Copyright 2007-2020 by Create-china.com.cn Inc. All rights reserved.

法律聲明:未經(jīng)許可,任何模仿本站模板、轉(zhuǎn)載本站內(nèi)容等行為者,本站保留追究其法律責(zé)任的權(quán)利!

電話:86+10-62104277/2248/4249 傳真:86+10-62104193-819 京ICP備10010038號-2網(wǎng)站XML

智慧機(jī)房

在線體驗(yàn)

CREATE·機(jī)房監(jiān)控 體驗(yàn)端  用戶名:Admin    密碼:12345 點(diǎn)擊體驗(yàn)
在線咨詢 電話咨詢
一区二区免费| 欧美xxxxxxxxx| 成人性生交大片免费看网站| 日本a级不卡| 一本色道亚洲精品aⅴ| 精品视频一区二区观看| 欧美jizz| 国产精品亚洲不卡a| 高清精品一区二区三区一区| 成人免费一区二区三区牛牛| 日本综合字幕| 欧美1o一11sex性hdhd| 国产精品一二三四五| 日本成人免费视频| 久久99精品国产一区二区三区| 黄a大片av永久免费| 日本一本草久在线中文| 91在线精品一区二区三区| 中文字幕日韩一级| 国产美女www爽爽爽视频| 欧美怡红院视频| 色七七在线观看| 精品久久久久久久久久久国产字幕| av电影在线网| 亚洲精选在线观看| 欧美日韩视频网站| 熟女少妇精品一区二区| 亚洲最新视频在线播放| 日本一区精品| 超碰97网站| 色呦呦一区二区| 久久久久一区二区三区| 日本一区二区三区视频免费看| 国产成人高清激情视频在线观看| 日本精品久久久久中文字幕| 国产在线精选视频| 国产毛片毛片毛片毛片| 久久久久亚洲av无码专区桃色| 久久不射网站| 色综合色狠狠综合色| 欧美精品羞羞答答| 亚洲精品**中文毛片| 先锋影音av在线资源| 成人黄色三级视频| 97成人资源站| avtt中文字幕| 日韩精品一区在线| 激情av一区| 国产福利第一视频在线播放| 2019男人天堂| 中文字幕高清在线观看| 真实乱偷全部视频| 91久久一区二区| 亚洲综合伊人久久大杳蕉| 99热这里都是精品| 在线观看亚洲欧美| 91天堂在线观看| 搞黄网站在线观看| 欧美日韩高清一区二区三区| 久久久婷婷一区二区三区不卡| 青娱乐精品视频| 51xtv成人影院| 欧美aaa一级片| 久久夜色精品国产欧美乱极品| 久久久老熟女一区二区三区91| 国产精品中文字幕亚洲欧美| 波多野结衣啪啪| 91高清一区| 91短视频在线观看| 91av在线视频观看| 风间由美一区| 久久久久久久久久久一区| 久久精品中文字幕| 日韩国产欧美在线视频| 日韩欧美精品| 久久天堂精品| 成人信息集中地欧美| 欧美孕妇性xxxⅹ精品hd| 免费h视频在线观看| www.在线欧美| 亚洲第一精品网站| 亚洲国产成人porn| 夜夜嗨av禁果av粉嫩avhd| 免费中国女人69xxxxx视频| 欧美在线免费视屏| 秋霞电影网一区二区| 九色在线网站| 精品一区二区久久| 国产毛片精品| 日韩激情片免费| 欧美第十八页| 日本一区二区不卡视频| 久久久无码精品亚洲国产| 精品国产乱码久久久久久果冻传媒| 日韩欧美午夜| 麻豆精品一区二区av白丝在线| 国产黄色美女视频| 韩日视频在线观看| 久久99热这里只有精品| 国产另类ts人妖一区二区| 中文永久免费观看| 亚洲理论电影网| 天堂在线视频免费观看| 狂野欧美激情性xxxx| 日本理论片午伦夜理片在线观看| 884aa四虎影成人精品一区| 国产精品久久久久久影院8一贰佰| 久久久久久久久一区| 99国产精品久久久久99打野战| 秋霞精品一区二区三区| 成人午夜剧场视频网站| 日本 片 成人 在线| 国产精品福利小视频| 日韩精品一区二区三区中文字幕| 爽爽爽爽爽爽爽成人免费观看| 日批视频免费在线观看| 成人黄色激情网| 人妻av一区二区三区| 99久久免费观看| 亚洲成人激情自拍| jizzjizz日本护士视频| 特黄视频免费看| 日韩黄色在线播放| 欧美精品第一页在线播放| 日本中文字幕伦在线观看| 精品少妇人妻av一区二区| 欧美性感一区二区三区| 你懂的在线观看视频网站| 国产乱码久久久久久| 国产吃瓜黑料一区二区| 午夜精品久久久| 国产成人禁片免费观看| 麻豆国产一区二区三区四区| av文字幕在线观看| 91精品国产一区二区三区| 国产精品大全| 美媛馆国产精品一区二区| 丝袜足控免费网站xx网站| 欧洲精品一区二区三区久久| 色综合久久久无码中文字幕波多| 五月激情婷婷网| 欧美色视频一区| 国产伦精品一区二区三区视频金莲| av高清不卡在线| 成人黄色综合网站| 欧美性猛交ⅹxxx乱大交免费| 国产伦精品一区二区三区在线| 欧美日韩国产bt| 99热精品国产| 天天成人综合网| 久久91亚洲精品中文字幕| 91精品一区二区三区四区| 日本深夜福利视频| 中文字幕在线永久| 97精品一区二区三区| 一区二区三区在线免费视频| 久久麻豆精品| 日韩69视频在线观看| av一区二区三区| 色偷偷在线观看| 欧美裸身视频免费观看| 亚洲一区二区免费视频| 蜜桃av久久久亚洲精品| 国产91足控脚交在线观看| hbad中文字幕| 97青娱国产盛宴精品视频| 最近日韩免费视频| 91精品国产一区二区三区蜜臀| 天堂中文av在线资源库| 人人九九精品| 中文字幕一区二区三区在线不卡| 丝袜美女在线观看| 国产伦精品一区二区三区视频女| 久久黄色精品视频| 精品人伦一区二区三区| 色先锋资源在线播放av| 久久久精品在线观看| 9lporm自拍视频区在线| 精品国产一区二区三区不卡在线| 久久国产成人精品| 国产精品久久久久av| 国产精品毛片无码| 插菊花综合1| 岛国毛片在线观看| 99九九99九九九视频精品| 亚洲第一区中文字幕| 成人国产精品免费观看动漫| 成人在线观看免费视频| 亚洲激情国产| 日韩肉感妇bbwbbwbbw| 久久久久久久久国产| 国产精品日韩精品| 尤物网址在线观看| 日韩av一区二区三区美女毛片| 久久久精品中文字幕| 97影院理论片在线播放| 中国xxxx自拍视频| 91久久精品| 日韩大片在线播放| 91青青国产在线观看精品| 在线观看精品视频一区二区三区| 日本特级黄色大片| 久久露脸国语精品国产91| 日韩欧美精品| 中文字幕欧美国内| a级片一区二区| 欧美国产日本| 日韩av免费电影| 五月天中文字幕| 纪美影视在线观看电视版使用方法| 国产3p在线播放| 日本三级电影在线播放| 欧美18—20岁hd第一次| 奇米777国产一区国产二区| 欧美日韩精品欧美日韩精品一综合| 日韩在线视频免费看| 色婷婷国产精品久久包臀| 国产精品一区二区三区精品| 16—17女人毛片毛片| 9l视频自拍九色9l视频成人| 精品国产乱码久久久久久1区二区| 欧洲视频在线免费观看| 在线观看视频一区二区| 精品久久免费看| 久久99国产精品免费网站| 中国女人内谢69视频| 韩日在线播放| av中文字幕在线| 亚洲国产成人精品一区二区| 国产精品女人久久久久久| 亚洲欧美一区二区原创| 成人动漫av在线| 亚洲影视九九影院在线观看| 黄瓜视频污在线观看| 免费在线观看一区二区| 日本一区二区三区电影| 日韩一区二区三区在线视频| 日本一二三不卡视频| 国产在线观看免费网站| 天天色天天爽| 香蕉视频污视频| www.26天天久久天堂| 免费成人看片网址| 日韩精品中文字幕一区二区| 蜜桃视频在线观看网站| 欧美日本在线视频中文字字幕| 永久免费看mv网站入口| 日韩欧美在线免费观看视频| 日本天堂在线视频| 国产一区喷水| 国产免费无码一区二区视频| 欧美成人精品在线视频| 在线看片一区| 免费97视频在线精品国自产拍| 老司机aⅴ在线精品导航| 国产午夜精品全部视频播放| 性欧美18~19sex高清播放| 2020国产成人综合网| 日韩视频一区二区三区在线播放| 黄页网站在线免费观看| 国产情侣在线视频| 成人免费毛片高清视频| 天使萌一区二区三区免费观看| 日韩精品一区二区亚洲av观看| 久久精品国产清高在天天线| 男人天堂avav| 黄色网址入口| 久久综合影院| 精品久久久久久亚洲国产300| 国产欧美va欧美不卡在线| 日本一二三区视频免费高清| 国产免费中文字幕| 国产精品入口麻豆免费| 极品校花啪啪激情久久| 在线看欧美日韩| 毛片av一区二区三区| 91精品国产综合久久男男| 在线欧美小视频| 一区二区三区无码高清视频| 一级中文字幕一区二区| 一区中文字幕电影| 搞黄视频在线观看| 国产福利热线视频| 日韩毛片免费观看| 欧美综合视频在线| 一级片视频免费| 黄页网址在线观看| 欧美另类videos粗暴黑人| av资源在线看| 狠狠色噜噜狠狠狠| 亚洲国产精品免费| 四虎精品一区二区永久在线观看| 久久国产免费视频| 最新国产精品拍自在线播放| 亚洲精品欧美日韩专区| 韩日在线一区| 国产成人精品亚洲777人妖| 中文字幕在线免费观看| 欧美激情久久久| 日韩欧美第一区| 日韩精品 欧美| 亚洲熟妇无码av在线播放| 国产精品小说在线| 九九99精品| 欧美高清3dfreexxxx性| 国产精品久久久久久| 中文字幕制服诱惑| 男人和女人做事情在线视频网站免费观看| 一区在线观看视频| 国产视频一区二区三| 免费在线观看av| 粉嫩欧美一区二区三区高清影视| 日韩aⅴ视频一区二区三区| 日韩成人午夜影院| 污视频网站在线观看| 在线人成日本视频| 无码人妻精品一区二区三区蜜桃91| 国产一级二级三级视频| 亚洲日本成人网| 美乳视频一区二区| 久久这里只精品最新地址| 欧美大人香蕉在线| 99热播在线观看| 欧美伦理视频网站| 精品日韩一区二区| 国产精品无码一区二区桃花视频| 久久69国产一区二区蜜臀| 91电影在线播放|