• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    基于移動(dòng)平臺(tái)的應(yīng)用軟件性能優(yōu)化技術(shù)研究

    2014-12-31 00:00:00何偉文

    摘 要:面對(duì)日益復(fù)雜的智能移動(dòng)應(yīng)用,多核處理器已成為高性能移動(dòng)計(jì)算的一個(gè)有效解決方案。對(duì)于多核系統(tǒng)中的應(yīng)用軟件性能優(yōu)化也是其中的研究重點(diǎn)。本文研究了并行程序設(shè)計(jì)算法和并行程序性能優(yōu)化技術(shù)。通過(guò)對(duì)程序進(jìn)行優(yōu)化,可以使它充分的發(fā)揮多核的計(jì)算能力,其方法包括增加任務(wù)數(shù)量改善負(fù)載均衡,選擇最優(yōu)的線程與處理核之間關(guān)聯(lián)策略,從而能夠大幅提高系統(tǒng)的整體性能。

    關(guān)鍵詞:移動(dòng)智能多核系統(tǒng);多線程;并行計(jì)算;分治法;GPA

    中圖分類號(hào):TP311.52

    由于移動(dòng)智能系統(tǒng)是一個(gè)資源受限的系統(tǒng),它對(duì)程序的運(yùn)行空間和時(shí)間要求比桌面系統(tǒng)更為苛刻,因此,應(yīng)用軟件的優(yōu)化對(duì)移動(dòng)智能系統(tǒng)來(lái)說(shuō)尤顯必要和緊迫[1]。

    本文主要研究的性能優(yōu)化是主要指運(yùn)行速度的優(yōu)化。應(yīng)用軟件對(duì)其運(yùn)行速度進(jìn)行優(yōu)化是指在充分掌握軟、硬件特征的基礎(chǔ)上,通過(guò)應(yīng)用程序結(jié)構(gòu)調(diào)整等手段來(lái)縮短完成指定任務(wù)所需的運(yùn)行時(shí)間,主要應(yīng)用在對(duì)實(shí)時(shí)性要求比較高的場(chǎng)合。

    目前,移動(dòng)智能系統(tǒng)的處理器在物理上也支持多線程的并發(fā)執(zhí)行,采用適當(dāng)數(shù)量的并發(fā)線程可以獲得比單一線程高的運(yùn)行速度[2]。對(duì)于多核系統(tǒng)中的應(yīng)用軟件性能優(yōu)化,本文研究了基于Android系統(tǒng)的并行程序設(shè)計(jì)算法和并行程序性能優(yōu)化技術(shù)。

    1 我們通過(guò)一個(gè)實(shí)際應(yīng)用來(lái)分析、研究基于移動(dòng)平臺(tái)的應(yīng)用軟件優(yōu)化的技術(shù)

    包括并行處理技術(shù)、多線程優(yōu)化技術(shù)以及利用GPA(Graphics Performance Analyzers)工具輔助分析技術(shù)。

    本例是一個(gè)求圓周率π的應(yīng)用。有如下數(shù)學(xué)公式:

    將積分公式表示為極限:

    實(shí)際上Δx不可能做到無(wú)窮小,只能讓?duì)盡可能小,這樣求出的結(jié)果越接近π。我們用step表示一個(gè)Δx,則num_step=1/step盡量地大。考慮到f(x)=1/(x2+1)是一個(gè)凸函數(shù),這里取一個(gè)中值來(lái)求和,即使用f[(i+0.5)/(num_steps)]來(lái)代替f[i/(num_steps)]求和,這樣求出的和不會(huì)總是比實(shí)際值偏小。最后可以得出編寫程序依據(jù)的公式為:

    根據(jù)上面公式我們編寫出相應(yīng)的計(jì)算程序。

    2 原始應(yīng)用(未經(jīng)優(yōu)化)研究與分析

    我們首先根據(jù)上述公式直接推導(dǎo)出應(yīng)用的計(jì)算代碼,此代碼是沒(méi)有經(jīng)過(guò)優(yōu)化的,我們稱其為“原始應(yīng)用”,將其命名為SerialPi。

    該應(yīng)用設(shè)計(jì)思路是:讓計(jì)算π的任務(wù)放在輔助線程(這里稱為任務(wù)線程)中運(yùn)行,主活動(dòng)上設(shè)置按鈕來(lái)控制線程的運(yùn)行,并用一個(gè)TextView來(lái)顯示任務(wù)線程的結(jié)果。應(yīng)用運(yùn)行的界面如圖1所示。

    應(yīng)用啟動(dòng)后的界面如圖1(a)所示。當(dāng)我們點(diǎn)擊“開始計(jì)算”按鈕后,界面所有的按鈕都變成灰色,直到計(jì)算π的線程運(yùn)算完成。這時(shí),界面顯示π的計(jì)算結(jié)果以及線程運(yùn)行的總時(shí)間,如圖1(b)所示。

    從上述運(yùn)行界面可知,此應(yīng)用計(jì)算π的時(shí)間大約為22秒多。多次運(yùn)行此應(yīng)用,其顯示的計(jì)算時(shí)間也大約為此時(shí)長(zhǎng)。

    圖1 SerialPi應(yīng)用運(yùn)行的界面

    2.1 在原始應(yīng)用 中 新 建 線 程 類MyTaskThread,讓其計(jì)算π的值。編輯源文件

    MyTaskThread.java,主要代碼如下:

    1 package com.example.serialpi;

    2 public class MyTaskThread extends Thread {

    3 private Handler mainHandler;

    4 public static final int MSG_FINISHED = 1; //定義表示\"計(jì)算結(jié)束\"的消息類型

    5 private static final long num_steps = 200000000;//公式中的 num_steps 變量,總步數(shù)

    6 private static final double step = 1.0 / num_steps;//公式中的step變量,步長(zhǎng)

    7 public static double pi = 0.0; //π的計(jì)算結(jié)果

    ……

    20 public void r u n ()

    21 {

    22 double x ,sum=0.0;

    23 long i;

    24 for ( i=0; i< num_steps; i++){

    25 x = ( i+ 0. 5) * s t e p ;

    26 sum=sum+ 4. 0 /(1.0 + x*x );

    27 }

    28 pI=step*sum;

    29 Messagemsg=new Message();

    30 msg.what=MSG _FINISHED;//定義消息類型

    31 main Hand ler.send Message(msg);//發(fā)送消息}

    第22行至第28行是根據(jù)計(jì)算公式書寫的計(jì)算π的代碼。這里x變量是函數(shù)f(x)=1/(x2+1)的自變量x,sum是Σ的累積變量。累積完Σ后,最后在第28行,讓?duì)?step×∑算出最后結(jié)果。【在線程的run函數(shù)中,一旦計(jì)算完成,在第29行開始,就向主線程發(fā)送計(jì)算完成的消息】

    2.2 編輯主程序的源代碼文件MainActivity.java,讓其控制線程的運(yùn)行,并顯示計(jì)算結(jié)果,其主要代碼如下:

    1 package com.example.serialpi;

    2 public class MainActivity extends Activity {

    ……

    13 private MyTaskThread myThread = 1;

    14 private TextView tv_TaskOutputInfo;// 顯示(計(jì)算)任務(wù)線程輸出

    15 private Handler mHandler;;

    16 private long end_time;

    17 private long time;

    18 private long start_time;

    ……

    38mHandler = new Handler() {

    39 public void handleMessage(Message msg) {

    40 switch (msg.what)

    41 {

    42 case MyTaskThread.MSG_FINISHED:

    43 end_time = System.currentTimeMillis();

    44 time = end_time - start_time;

    45 String s = \"運(yùn)行結(jié)束,Pi=\"+ MyTaskThread.pi+ \" 耗時(shí):\"

    46 + MyTaskThread.msTimeToDatetime(time);

    47 tv_TaskOutputInfo.setText(s);

    48 btn_ExitApp.setEnabled(true);

    49 break;

    50 default:break; } } };

    ……

    61 private void startTask() {

    62 myThread = new MyTaskThread(mHandler); //創(chuàng)建一個(gè)線程

    63if (! myThread.isAlive())

    64{

    65 start_time = System.currentTimeMillis();

    66 myThread.start(); // 啟動(dòng)線程 } }

    我們首先在16行-第18行定義了三個(gè)變量,任務(wù)的開始時(shí)間start_time,任務(wù)的結(jié)束時(shí)間end_time,以及任務(wù)的運(yùn)行時(shí)長(zhǎng)time。它們存在如下關(guān)系:time=end_time-start_time。

    在第65行,我們?cè)趩?dòng)任務(wù)線程的同時(shí),將機(jī)器的當(dāng)前時(shí)間記錄在start_time中。在第43行~第44行,當(dāng)收到任務(wù)線程運(yùn)行完畢的消息后,將機(jī)器的當(dāng)前時(shí)間記錄在end_time中,兩者相減得到任務(wù)的運(yùn)行時(shí)長(zhǎng)。

    2.3 使用GPA工具來(lái)驗(yàn)證與評(píng)估原始應(yīng)用的性能。上述工作完成后,我們將應(yīng)用部署到實(shí)際的智能設(shè)備上進(jìn)行測(cè)試。本例我們主要監(jiān)控分析兩個(gè)CPU的負(fù)載(即“CPU XX Load”指標(biāo))情況。在監(jiān)控期間,我們點(diǎn)擊“開始計(jì)算”按鈕開始運(yùn)行計(jì)算,記錄下GPA的監(jiān)控信息,分析的結(jié)果如圖2所示。

    (a)點(diǎn)擊“開始計(jì)算”按鈕后

    (b)線程計(jì)算運(yùn)行中 (c)線程計(jì)算結(jié)束

    圖2 原始應(yīng)用(SerialPi)GPA截圖

    圖2(a)是點(diǎn)擊“開始計(jì)算”按鈕,計(jì)算(任務(wù))線程運(yùn)行開始時(shí)的顯示。圖2(b)是計(jì)算(任務(wù))線程運(yùn)行中的顯示。圖2(c)是計(jì)算(任務(wù))線程運(yùn)行結(jié)束時(shí)的顯示。從圖中可知,計(jì)算線程沒(méi)有運(yùn)行或運(yùn)行結(jié)束后,CPU的負(fù)載停留在較低水平。而一旦計(jì)算線程運(yùn)行,CPU的負(fù)載急劇上升到100%的滿負(fù)荷水平。但是,在計(jì)算線程運(yùn)行時(shí),兩個(gè)CPU中始終只有一個(gè)CPU是滿負(fù)荷的,另一個(gè)處于低負(fù)載水平,也就是說(shuō)總的負(fù)載率(即負(fù)載之和)只有一個(gè)CPU處于滿負(fù)荷狀態(tài)。

    3 對(duì)原始應(yīng)用的性能優(yōu)化

    上面的例子,是從計(jì)算π的公式直接想到的代碼。這個(gè)例子有沒(méi)有可能實(shí)現(xiàn)優(yōu)化呢?怎么去優(yōu)化呢?在此,我們對(duì)算法進(jìn)行改進(jìn),充分利用多核處理器的硬件特點(diǎn)來(lái)進(jìn)行優(yōu)化,挖掘出多核處理器的性能潛力。

    多核處理器擁有多核、多線程技術(shù),支持多線程在物理上的并行運(yùn)行。例如,對(duì)于上例的運(yùn)行環(huán)境,這個(gè)多核處理器就可以支持兩個(gè)線程的并行運(yùn)行。這就是我們算法優(yōu)化的切入點(diǎn):我們采用“分治法”的思路,設(shè)法讓計(jì)算任務(wù)分?jǐn)偟蕉鄠€(gè)(本例是兩個(gè))線程中來(lái)運(yùn)行,這樣并行運(yùn)行的線程就可以加快運(yùn)行速度。

    首先,我們分析一下以上例子的MyTaskThread類的run函數(shù)代碼。為了計(jì)算積分面積的累計(jì)值,我們?cè)诘?4行讓計(jì)算步每次累計(jì)一步來(lái)計(jì)算。實(shí)際上,我們將積分累計(jì)區(qū)域分成“塊”,每個(gè)線程負(fù)責(zé)計(jì)算其中的一塊,最后將每個(gè)線程計(jì)算的累計(jì)面積匯總起來(lái),這樣既可以得到最后的結(jié)果,又能“分而治之”完成任務(wù)的分派執(zhí)行。這就是我們實(shí)現(xiàn)算法優(yōu)化的思路。

    我們把優(yōu)化后的應(yīng)用命名為ThreadPi。該應(yīng)用在計(jì)算積分面積的累計(jì)值時(shí),讓每個(gè)線程的計(jì)算步每次累計(jì)步長(zhǎng)增加總線程數(shù),這樣讓每個(gè)線程負(fù)責(zé)累計(jì)自己負(fù)責(zé)的條帶的面積。該應(yīng)用運(yùn)行的界面如圖3所示。

    圖3 ThreadPi應(yīng)用運(yùn)行的界面

    此應(yīng)用運(yùn)行的界面與原始應(yīng)用一致。從上述運(yùn)行界面可知,此應(yīng)用計(jì)算π的時(shí)間大約為13秒多。其時(shí)間幾乎縮短到原始應(yīng)用的一半。與原始應(yīng)用不一樣的是,本應(yīng)用使用兩個(gè)線程來(lái)計(jì)算π。

    3.1 本應(yīng)用是在修改原始應(yīng)用代碼的基礎(chǔ)上得到的,其關(guān)鍵的修改如下。修改計(jì)算任務(wù)線程類MyTaskThread的源代碼文件如下:

    1 package com.example.threadpi;

    ……

    4 public class MyTaskThread extends Thread{

    5 private Handler mainHandler;

    6 public static final int MSG_FINISHED = 1; // 定義表示\"計(jì)算結(jié)束\"的消息類型

    7 private static final long num_steps = 200000000;//公式中的 num_steps 變量,總步數(shù)

    8 private static final double step = 1.0 / num_steps;//公式中的step變量,步長(zhǎng)

    9 public static double pi = 0.0; //π的計(jì)算結(jié)果

    10 public static final int num_threads = 2; //線程數(shù)

    11private int myNum; //線程號(hào)

    12private static Object sharedVariable = new Object();//對(duì)pi變量的同步鎖變量

    13private static int finishedThreadNum = 0; //完成計(jì)算的線程數(shù)

    ……

    28 public void run()

    29 {

    30double x, partialSum = 0.0;

    31 long i;

    32for (i = myNum; i < num_steps; i += num_threads) {

    33 x = (i + 0.5) * step;

    34 partialSum += 4.0 / (1.0 + x * x);

    35 }

    36 synchronized (sharedVariable) {

    37 pi+=partialSum * step;

    38 finishedThreadNum++;

    39 if (finishedThreadNum >= num_threads){//等全部線程運(yùn)行結(jié)束發(fā)送消息

    40 Message msg = new Message();

    41 msg.what = MSG_FINISHED;//定義消息類型

    42 mainHandler.sendMessage(msg); //發(fā)送消息

    43 }}}

    上述代碼中陰影標(biāo)注文字是本應(yīng)用與原始應(yīng)用主要區(qū)別的地方。在第10行-第13行我們定義了多線程計(jì)算任務(wù)所需的變量。num_threads是計(jì)算任務(wù)開辟的線程數(shù)。

    本例運(yùn)行的設(shè)備為兩個(gè)邏輯CPU,故將此值設(shè)為2。myNum是計(jì)算線程的編號(hào),它從0到num_threads-1范圍內(nèi)選擇。sharedVariable變量是對(duì)pi變量施加同步鎖而引入的變量。finishedThreadNum是完成計(jì)算的線程數(shù),但是該值等于num_threads就認(rèn)為所有的計(jì)算線程都已運(yùn)行結(jié)束。

    第30行-第43行是計(jì)算線程的原型代碼。其中第30行-第35行是計(jì)算π的直接代碼。對(duì)于原始應(yīng)用的相應(yīng)代碼可知,原始應(yīng)用的sum變量被partialSum所代替,它表示本線程計(jì)算的和(面積)只是全部和(面積)的一部分。最重要的區(qū)別是第32行,這里步長(zhǎng)變量i累加的不是1,而是num_threads,即每一次都是向前移動(dòng)線程數(shù)步。而i起始位置也不是原始應(yīng)用的從0開始,而是從線程號(hào)開始。

    當(dāng)線程計(jì)算完自己的和之后,需要將此數(shù)據(jù)放到總的和(pi變量)中去。這是一個(gè)多線程共享的變量,因此需要加同步鎖。這一步驟對(duì)應(yīng)第36行~第44行。第36行加同步鎖,第37行將線程自己的計(jì)算結(jié)果加到公共結(jié)果pi中去。第38行將計(jì)算結(jié)束的線程數(shù)加一。第39行,通過(guò)比較完成計(jì)算的線程數(shù)與總的線程數(shù)來(lái)判斷全部計(jì)算線程是否都已結(jié)束,只有都結(jié)束了,才向主線程發(fā)送計(jì)算結(jié)束的消息。

    3.2 修改主程序MainActivity的源代碼文件MainActivity.java如下:

    1 package com.example.threadpi;

    ……

    12 public class MainActivity extends Activity{

    13 private MyTaskThread thrd[]=1;

    14 private long end_time;

    15private long time;

    16private long start_time;

    ……

    64 private void startTask() {

    65thrd = new MyTaskThread[MyTaskThread.num_threads];

    66 start_time = System.currentTimeMillis();

    67 for( int i=0; i < MyTaskThread.num_threads;i++){

    68 thrd[i] = new MyTaskThread(mHandler); //創(chuàng)建一個(gè)線程

    69 thrd[i].setStepStartNum(i);

    70 thrd[i].start();

    71 } }

    73 private void exitApp() {

    74 for (int i = 0; i < MyTaskThread.num_threads thrd != 1; i++) {

    75 try {

    76 thrd[i].join(); //等待線程運(yùn)行結(jié)束

    77 } catch (InterruptedException e) {

    78 }}

    ……

    上述代碼中陰影標(biāo)注文字是本應(yīng)用與原始應(yīng)用主要區(qū)別的地方。在第13行,原始應(yīng)用的單個(gè)線程對(duì)象變量改為了線程數(shù)組。在啟動(dòng)計(jì)算任務(wù)的第67行~第71行,原始應(yīng)用啟動(dòng)單個(gè)線程,改為啟動(dòng)數(shù)組中的全部線程,并在啟動(dòng)時(shí)設(shè)置線程的編號(hào)。在等待線程結(jié)束的第74行-第78行,原始應(yīng)用中等待單個(gè)線程結(jié)束,改為等待線程數(shù)組中的全部線程結(jié)束。

    上述工作完成后,我們同樣將應(yīng)用部署到原始應(yīng)用相同的目標(biāo)機(jī)上。我們單獨(dú)運(yùn)行該應(yīng)用,來(lái)測(cè)試一下優(yōu)化后的應(yīng)用運(yùn)行時(shí)間,結(jié)果是:時(shí)間幾乎縮短到原來(lái)的一半(由原來(lái)的22秒減少到13秒)。

    3.3 使用GPA工具來(lái)驗(yàn)證與評(píng)估優(yōu)化的應(yīng)用性能。下面使用GPA來(lái)分析此應(yīng)用,分析過(guò)程與原始應(yīng)用一致,分析的結(jié)果如圖4所示。

    (a)點(diǎn)擊“開始計(jì)算”按鈕后

    (b)線程計(jì)算運(yùn)行中 (c)線程計(jì)算結(jié)束

    圖4 優(yōu)化應(yīng)用(ThreadPi)的GPA截圖

    從圖中可以看出,點(diǎn)擊“開始計(jì)算”按鈕,計(jì)算(任務(wù))線程運(yùn)行開始后,兩個(gè)CPU的負(fù)載都從低負(fù)載立即上升到滿負(fù)荷狀態(tài)。計(jì)算完成后,兩個(gè)CPU的負(fù)載都重新回到低負(fù)荷狀態(tài)。與原始應(yīng)用不同是,在計(jì)算任務(wù)運(yùn)行期間,全部的CPU都處于滿負(fù)荷狀態(tài),不存在負(fù)載在兩個(gè)CPU中輪流的情況。這說(shuō)明該應(yīng)用的計(jì)算任務(wù)使兩個(gè)CPU并行工作在滿負(fù)荷狀態(tài),這是優(yōu)化后的應(yīng)用速度提高(本例提高將近100%)的內(nèi)在原因。

    4 結(jié)束語(yǔ)

    本文主要研究了基于移動(dòng)平臺(tái)的多核系統(tǒng)的應(yīng)用軟件優(yōu)化技術(shù)。其中,多線程、平行計(jì)算技術(shù)是移動(dòng)平臺(tái)系統(tǒng)的研究重點(diǎn)、難點(diǎn),合理正確的使用這些技術(shù),可以讓多個(gè)處理器處于均衡負(fù)載狀態(tài),以提高系統(tǒng)的整體運(yùn)行速度,從而達(dá)到性能優(yōu)化的目的,使我們的應(yīng)用軟件運(yùn)行更加流暢、體驗(yàn)更加好。

    今后,我們?cè)谝苿?dòng)智能多核系統(tǒng)實(shí)現(xiàn)上,還有一些方面需要不斷地完善和進(jìn)一步研究的地方,比如:進(jìn)一步完善移動(dòng)智能多核平臺(tái)上的并行編譯,支持更廣泛的并行模式,并且支持更廣泛的移動(dòng)智能多核結(jié)構(gòu)。

    參考文獻(xiàn):

    [1]Butler,M.Android:Changing the Mobile Landscape.PERVASIVE COMPUTING,IEEE,2011.

    [2]Ian K.T.Tan,Ian Chai,Poo Kuan Hoong.Dynamic threshold for imbalance assessment on load balancing for multicore systems[J].Computers and Electrical Engineering,2012.

    [3]R.Rakvic,Q.Cai,J.González,G.Magklis,P.Chaparro,A.González.Thread-management techniques to maximize efficiency in multicore and simultaneous multithreaded microprocessors[J].ACM Transactions on Architecture and Code Optimization(TACO),2010(02).

    [4]史莉雯,樊曉婭,張盛兵.單片多處理器的研究[J].計(jì)算機(jī)應(yīng)用研究,2007(09):46-49.

    [5]李濤,高德遠(yuǎn),樊曉婭.高性能微處理器性能模型設(shè)計(jì)[J].航空電子技術(shù)2011(02):25-28.

    [6]ShahidBokhari,JoelSaltz.Exploring the performance of massively multithreaded architectures[J].Concurrency Computat:Pract.Exper,2010(05).

    [7]Stijn Eyerman,Lieven Eeckhout.Modeling critical sections in Amdahl’s law and its implications for multicore design[J].ACM SIGARCH Computer Architecture News,2010(03).

    作者簡(jiǎn)介:何偉文(1970-),男,廣東廣州人,碩士,高級(jí)工程師,研究方向:網(wǎng)絡(luò)安全,系統(tǒng)工程,項(xiàng)目管理。

    作者單位:廣州涉外經(jīng)濟(jì)職業(yè)技術(shù)學(xué)院 信息學(xué)院,廣州 510540

    自拍欧美九色日韩亚洲蝌蚪91| 久9热在线精品视频| 国产欧美日韩综合在线一区二区| 午夜久久久久精精品| 黄片播放在线免费| 女性被躁到高潮视频| 少妇粗大呻吟视频| 国产蜜桃级精品一区二区三区| 久久精品人人爽人人爽视色| 国产欧美日韩一区二区精品| 国产精品 欧美亚洲| 波多野结衣巨乳人妻| 女同久久另类99精品国产91| 国产91精品成人一区二区三区| 黄频高清免费视频| 国产97色在线日韩免费| av电影中文网址| 亚洲专区中文字幕在线| АⅤ资源中文在线天堂| 亚洲国产精品成人综合色| 亚洲欧美激情综合另类| 久久伊人香网站| 亚洲欧美日韩高清在线视频| 久久香蕉精品热| 国产一区在线观看成人免费| 亚洲成av片中文字幕在线观看| 国产一区二区在线av高清观看| АⅤ资源中文在线天堂| 午夜福利在线观看吧| 男人的好看免费观看在线视频 | 中文亚洲av片在线观看爽| 欧美日本亚洲视频在线播放| 在线天堂中文资源库| 最近最新中文字幕大全免费视频| aaaaa片日本免费| 成人三级做爰电影| 亚洲自偷自拍图片 自拍| 亚洲精品国产区一区二| 精品国产美女av久久久久小说| 国产精品av久久久久免费| 欧美成狂野欧美在线观看| 精品一区二区三区四区五区乱码| 久久久久久久久中文| 身体一侧抽搐| 亚洲熟妇熟女久久| 99久久国产精品久久久| 亚洲欧美日韩高清在线视频| 久久久久久免费高清国产稀缺| 久久天堂一区二区三区四区| 免费看十八禁软件| 久久久久精品国产欧美久久久| 色婷婷久久久亚洲欧美| 在线观看免费视频网站a站| 日韩欧美免费精品| 少妇的丰满在线观看| 好看av亚洲va欧美ⅴa在| 色哟哟哟哟哟哟| 亚洲成人国产一区在线观看| 成年人黄色毛片网站| 正在播放国产对白刺激| 亚洲精品在线美女| 国产一区二区在线av高清观看| 一区在线观看完整版| 伦理电影免费视频| 亚洲va日本ⅴa欧美va伊人久久| 亚洲精品在线观看二区| or卡值多少钱| 亚洲人成伊人成综合网2020| 一本大道久久a久久精品| 国产亚洲精品第一综合不卡| 天天添夜夜摸| 中亚洲国语对白在线视频| 狂野欧美激情性xxxx| 午夜免费成人在线视频| av有码第一页| 久久久国产成人精品二区| 一级毛片高清免费大全| av中文乱码字幕在线| 日韩三级视频一区二区三区| 91国产中文字幕| 精品午夜福利视频在线观看一区| 又黄又爽又免费观看的视频| 日本欧美视频一区| 亚洲一码二码三码区别大吗| 欧美丝袜亚洲另类 | 欧美在线黄色| 一个人观看的视频www高清免费观看 | 十八禁人妻一区二区| 国产亚洲欧美精品永久| 国产精品1区2区在线观看.| 日韩成人在线观看一区二区三区| 久久久久久久精品吃奶| 法律面前人人平等表现在哪些方面| 成年版毛片免费区| 国产一卡二卡三卡精品| 大香蕉久久成人网| 国产日韩一区二区三区精品不卡| 免费在线观看影片大全网站| 国产欧美日韩精品亚洲av| 亚洲成av人片免费观看| 免费一级毛片在线播放高清视频 | 国内精品久久久久久久电影| 无限看片的www在线观看| 男女午夜视频在线观看| 国产成人精品无人区| 欧美日韩福利视频一区二区| 搡老熟女国产l中国老女人| 男女午夜视频在线观看| 满18在线观看网站| 91麻豆av在线| 麻豆成人av在线观看| 久久婷婷人人爽人人干人人爱 | 亚洲一区二区三区色噜噜| 人人妻人人爽人人添夜夜欢视频| 欧美日韩一级在线毛片| 在线观看舔阴道视频| 国产av在哪里看| 叶爱在线成人免费视频播放| 午夜久久久在线观看| 国产精品一区二区精品视频观看| 亚洲成人国产一区在线观看| 午夜精品在线福利| 真人做人爱边吃奶动态| 国产在线观看jvid| 日韩高清综合在线| 精品一区二区三区av网在线观看| ponron亚洲| 成在线人永久免费视频| 国内久久婷婷六月综合欲色啪| 日韩精品中文字幕看吧| 国产精品香港三级国产av潘金莲| 两性夫妻黄色片| 日日爽夜夜爽网站| 亚洲国产精品999在线| 大陆偷拍与自拍| 欧美中文日本在线观看视频| 欧美精品亚洲一区二区| 日本精品一区二区三区蜜桃| 国产麻豆成人av免费视频| 国产激情欧美一区二区| 男女午夜视频在线观看| 亚洲精品久久国产高清桃花| 中文字幕高清在线视频| av天堂在线播放| 日韩欧美免费精品| 最新美女视频免费是黄的| 亚洲中文字幕一区二区三区有码在线看 | 首页视频小说图片口味搜索| 精品福利观看| АⅤ资源中文在线天堂| 亚洲欧美精品综合久久99| 老熟妇乱子伦视频在线观看| 亚洲精品久久成人aⅴ小说| 高清毛片免费观看视频网站| 中文字幕久久专区| 此物有八面人人有两片| 人成视频在线观看免费观看| 黄片播放在线免费| 亚洲自拍偷在线| 母亲3免费完整高清在线观看| www.熟女人妻精品国产| 男人舔女人的私密视频| 搡老妇女老女人老熟妇| 欧美久久黑人一区二区| 999久久久精品免费观看国产| 欧美激情极品国产一区二区三区| 亚洲精品国产一区二区精华液| 在线观看免费视频日本深夜| 国产精品爽爽va在线观看网站 | 国产精品一区二区在线不卡| 亚洲av成人不卡在线观看播放网| 又黄又爽又免费观看的视频| 身体一侧抽搐| 久久精品国产亚洲av高清一级| 国产av一区在线观看免费| 色哟哟哟哟哟哟| 亚洲性夜色夜夜综合| 国产区一区二久久| 日韩精品中文字幕看吧| 国产精品九九99| 在线观看日韩欧美| 欧美激情久久久久久爽电影 | 亚洲国产欧美网| 亚洲自拍偷在线| 1024视频免费在线观看| 国产激情欧美一区二区| 在线视频色国产色| 十八禁人妻一区二区| 麻豆一二三区av精品| 国产在线观看jvid| 别揉我奶头~嗯~啊~动态视频| 又黄又粗又硬又大视频| 少妇被粗大的猛进出69影院| 午夜福利视频1000在线观看 | 满18在线观看网站| 国产精品一区二区精品视频观看| 一二三四社区在线视频社区8| 欧美色欧美亚洲另类二区 | 欧美成狂野欧美在线观看| 久久精品国产综合久久久| 无遮挡黄片免费观看| 人成视频在线观看免费观看| 国产亚洲精品综合一区在线观看 | 大型黄色视频在线免费观看| 叶爱在线成人免费视频播放| 怎么达到女性高潮| av在线播放免费不卡| 69av精品久久久久久| 久久伊人香网站| 999久久久国产精品视频| 淫秽高清视频在线观看| 一级毛片精品| 日本五十路高清| 国产精品久久视频播放| 美国免费a级毛片| 国产精品香港三级国产av潘金莲| 久久这里只有精品19| av电影中文网址| 午夜免费观看网址| 日韩一卡2卡3卡4卡2021年| 老司机深夜福利视频在线观看| 免费av毛片视频| x7x7x7水蜜桃| 成人特级黄色片久久久久久久| 成人亚洲精品一区在线观看| 亚洲情色 制服丝袜| www.自偷自拍.com| 1024视频免费在线观看| 国产亚洲精品一区二区www| 人人妻,人人澡人人爽秒播| 日韩大码丰满熟妇| 我的亚洲天堂| 啦啦啦免费观看视频1| 一区在线观看完整版| 在线十欧美十亚洲十日本专区| 男女床上黄色一级片免费看| 午夜福利成人在线免费观看| 午夜福利高清视频| 日韩av在线大香蕉| 91在线观看av| 日韩三级视频一区二区三区| 久久国产精品人妻蜜桃| 久久精品国产亚洲av香蕉五月| 18禁黄网站禁片午夜丰满| 亚洲专区国产一区二区| 黄频高清免费视频| 韩国av一区二区三区四区| 欧美老熟妇乱子伦牲交| 成人三级做爰电影| 久久国产乱子伦精品免费另类| 真人一进一出gif抽搐免费| 两性午夜刺激爽爽歪歪视频在线观看 | 亚洲欧美日韩另类电影网站| 国产一区二区三区在线臀色熟女| 窝窝影院91人妻| 久久狼人影院| 夜夜夜夜夜久久久久| 久久精品91蜜桃| 精品免费久久久久久久清纯| 精品久久久精品久久久| 午夜福利免费观看在线| 人妻丰满熟妇av一区二区三区| 男人舔女人下体高潮全视频| 女警被强在线播放| 国产亚洲精品久久久久久毛片| 性色av乱码一区二区三区2| 亚洲欧美日韩高清在线视频| 国产精品,欧美在线| 国产亚洲欧美98| 国产99白浆流出| 母亲3免费完整高清在线观看| 91九色精品人成在线观看| 99热只有精品国产| 亚洲天堂国产精品一区在线| 人人妻人人澡欧美一区二区 | 无遮挡黄片免费观看| 69精品国产乱码久久久| 黑人操中国人逼视频| 国产精品免费一区二区三区在线| 午夜久久久在线观看| 欧美日本亚洲视频在线播放| 亚洲欧美激情综合另类| 麻豆久久精品国产亚洲av| 国产精品久久久久久人妻精品电影| 国产亚洲精品av在线| 十八禁网站免费在线| www国产在线视频色| 91字幕亚洲| 高清毛片免费观看视频网站| 女同久久另类99精品国产91| 欧美成人一区二区免费高清观看 | 日日摸夜夜添夜夜添小说| a在线观看视频网站| avwww免费| 色在线成人网| 欧美人与性动交α欧美精品济南到| 99国产精品一区二区蜜桃av| 国产精品免费一区二区三区在线| 变态另类丝袜制服| 国产私拍福利视频在线观看| 成在线人永久免费视频| 国产一区二区激情短视频| 一个人观看的视频www高清免费观看 | 91精品三级在线观看| 亚洲熟女毛片儿| 美女国产高潮福利片在线看| 色婷婷久久久亚洲欧美| 在线观看舔阴道视频| 午夜精品国产一区二区电影| 国产1区2区3区精品| 精品国产国语对白av| 免费在线观看影片大全网站| 亚洲精品一卡2卡三卡4卡5卡| 每晚都被弄得嗷嗷叫到高潮| 国产野战对白在线观看| 国产精品二区激情视频| 亚洲精品中文字幕一二三四区| 国产精品日韩av在线免费观看 | 在线观看www视频免费| 无限看片的www在线观看| 亚洲va日本ⅴa欧美va伊人久久| 色播在线永久视频| 啦啦啦观看免费观看视频高清 | 狂野欧美激情性xxxx| 国产熟女午夜一区二区三区| av福利片在线| 欧美日韩一级在线毛片| 这个男人来自地球电影免费观看| 日本欧美视频一区| 美女午夜性视频免费| 久久中文看片网| 男女做爰动态图高潮gif福利片 | 亚洲av五月六月丁香网| 日韩精品中文字幕看吧| 大型黄色视频在线免费观看| 久久香蕉精品热| 亚洲精品一区av在线观看| av天堂在线播放| 一区二区日韩欧美中文字幕| 精品一品国产午夜福利视频| 大陆偷拍与自拍| 黑丝袜美女国产一区| 亚洲第一青青草原| 99re在线观看精品视频| 精品人妻在线不人妻| av欧美777| 亚洲av成人不卡在线观看播放网| 一区二区三区高清视频在线| 一区二区三区高清视频在线| 国产精品综合久久久久久久免费 | 亚洲国产精品久久男人天堂| 中亚洲国语对白在线视频| 久久久久九九精品影院| 久久午夜亚洲精品久久| 高清毛片免费观看视频网站| 亚洲五月天丁香| 夜夜爽天天搞| 欧美在线一区亚洲| 黄色视频不卡| 欧美日本中文国产一区发布| 免费在线观看完整版高清| 国产蜜桃级精品一区二区三区| 亚洲av美国av| 中文字幕人成人乱码亚洲影| 人人妻人人澡欧美一区二区 | 在线观看免费视频日本深夜| 手机成人av网站| 成人国产综合亚洲| 日日爽夜夜爽网站| 人妻丰满熟妇av一区二区三区| 怎么达到女性高潮| 在线观看舔阴道视频| netflix在线观看网站| 9191精品国产免费久久| 久久热在线av| 黄色丝袜av网址大全| 成人18禁在线播放| 91大片在线观看| 最近最新中文字幕大全电影3 | 午夜免费激情av| 久久伊人香网站| 国产人伦9x9x在线观看| 91老司机精品| 欧美日本视频| 女性被躁到高潮视频| 侵犯人妻中文字幕一二三四区| 韩国精品一区二区三区| 999久久久国产精品视频| 熟妇人妻久久中文字幕3abv| 777久久人妻少妇嫩草av网站| 精品福利观看| 日韩中文字幕欧美一区二区| 精品人妻在线不人妻| 女人精品久久久久毛片| 久久人人爽av亚洲精品天堂| 黄片播放在线免费| 国产成人啪精品午夜网站| xxx96com| 多毛熟女@视频| 精品一区二区三区av网在线观看| 可以在线观看毛片的网站| 国产亚洲av高清不卡| 久久国产精品影院| 成人国产综合亚洲| 丝袜在线中文字幕| 丁香欧美五月| 欧美激情 高清一区二区三区| 一进一出好大好爽视频| 亚洲成av片中文字幕在线观看| 天堂动漫精品| 高清黄色对白视频在线免费看| 1024视频免费在线观看| 一进一出抽搐动态| 成年女人毛片免费观看观看9| 99精品久久久久人妻精品| 亚洲在线自拍视频| 精品国产乱子伦一区二区三区| 女人爽到高潮嗷嗷叫在线视频| 精品福利观看| 欧美一区二区精品小视频在线| 久热这里只有精品99| 亚洲狠狠婷婷综合久久图片| 女警被强在线播放| 日本在线视频免费播放| 国产精品野战在线观看| 亚洲va日本ⅴa欧美va伊人久久| 自线自在国产av| 少妇 在线观看| 无限看片的www在线观看| 少妇 在线观看| 亚洲伊人色综图| 久久精品aⅴ一区二区三区四区| 国产精品一区二区三区四区久久 | АⅤ资源中文在线天堂| 极品教师在线免费播放| 18美女黄网站色大片免费观看| 波多野结衣一区麻豆| 亚洲免费av在线视频| 日本三级黄在线观看| 国产精品国产高清国产av| 9191精品国产免费久久| 美国免费a级毛片| 亚洲五月色婷婷综合| 亚洲自拍偷在线| 岛国视频午夜一区免费看| 国产亚洲欧美在线一区二区| 男女之事视频高清在线观看| 国产亚洲av嫩草精品影院| 午夜老司机福利片| www.精华液| 久久久国产成人精品二区| 国产日韩一区二区三区精品不卡| 精品久久久精品久久久| 日韩国内少妇激情av| 搞女人的毛片| 色播在线永久视频| 少妇熟女aⅴ在线视频| 妹子高潮喷水视频| 精品人妻在线不人妻| 亚洲欧美一区二区三区黑人| 三级毛片av免费| 日本三级黄在线观看| 色婷婷久久久亚洲欧美| 成人av一区二区三区在线看| 久久国产精品男人的天堂亚洲| 亚洲精品粉嫩美女一区| 午夜福利视频1000在线观看 | 亚洲精品粉嫩美女一区| 欧美黄色片欧美黄色片| 久热这里只有精品99| av视频在线观看入口| 国产精品亚洲av一区麻豆| 高潮久久久久久久久久久不卡| 国产亚洲av高清不卡| 精品人妻在线不人妻| 色播亚洲综合网| 国产麻豆69| 国产日韩一区二区三区精品不卡| 国产免费男女视频| 久久精品aⅴ一区二区三区四区| 午夜福利在线观看吧| 黄色a级毛片大全视频| 亚洲一区二区三区色噜噜| 亚洲精品国产精品久久久不卡| 免费在线观看亚洲国产| 丝袜美足系列| 亚洲国产精品999在线| 亚洲av第一区精品v没综合| 乱人伦中国视频| 亚洲激情在线av| 国产精品 国内视频| 在线av久久热| 亚洲自偷自拍图片 自拍| 男人舔女人下体高潮全视频| 亚洲精品久久国产高清桃花| 亚洲欧美精品综合久久99| 欧美激情久久久久久爽电影 | 亚洲精品美女久久久久99蜜臀| 国产亚洲av嫩草精品影院| 一级毛片女人18水好多| 午夜激情av网站| 欧美在线黄色| 俄罗斯特黄特色一大片| 热99re8久久精品国产| 亚洲欧美日韩高清在线视频| 亚洲人成网站在线播放欧美日韩| 精品久久久久久,| 久久人妻熟女aⅴ| 一卡2卡三卡四卡精品乱码亚洲| 欧美精品啪啪一区二区三区| 欧美亚洲日本最大视频资源| 神马国产精品三级电影在线观看 | 国产高清视频在线播放一区| 国产男靠女视频免费网站| 国产男靠女视频免费网站| 欧美+亚洲+日韩+国产| 宅男免费午夜| 亚洲欧美一区二区三区黑人| 国产精品久久电影中文字幕| 久久国产精品影院| 午夜福利,免费看| 国产一区二区激情短视频| 欧美激情高清一区二区三区| 欧美黄色淫秽网站| 老司机深夜福利视频在线观看| 日本欧美视频一区| 亚洲精华国产精华精| 久久午夜综合久久蜜桃| 老汉色∧v一级毛片| 国产一区二区三区综合在线观看| 18美女黄网站色大片免费观看| 人人澡人人妻人| av免费在线观看网站| 日韩欧美一区二区三区在线观看| 禁无遮挡网站| 午夜日韩欧美国产| 啦啦啦免费观看视频1| 欧美乱妇无乱码| 国产成人欧美在线观看| 一级黄色大片毛片| 中文字幕人成人乱码亚洲影| 国产精品 国内视频| 日韩欧美国产在线观看| 国产精品综合久久久久久久免费 | 精品国产亚洲在线| 亚洲国产看品久久| 免费看美女性在线毛片视频| 国产精品久久电影中文字幕| 精品福利观看| 久久精品aⅴ一区二区三区四区| 丝袜人妻中文字幕| 亚洲天堂国产精品一区在线| 亚洲五月色婷婷综合| 亚洲第一青青草原| 三级毛片av免费| 天天一区二区日本电影三级 | 国产在线观看jvid| 啪啪无遮挡十八禁网站| 女人被狂操c到高潮| 黑人操中国人逼视频| 亚洲美女黄片视频| 一个人观看的视频www高清免费观看 | 久久香蕉激情| 窝窝影院91人妻| av中文乱码字幕在线| 51午夜福利影视在线观看| 日本在线视频免费播放| 黑人巨大精品欧美一区二区mp4| 男女午夜视频在线观看| 高清黄色对白视频在线免费看| 精品久久蜜臀av无| 国产精品98久久久久久宅男小说| 国产av一区二区精品久久| 91国产中文字幕| 性少妇av在线| 亚洲国产精品成人综合色| 亚洲国产中文字幕在线视频| 久久精品亚洲熟妇少妇任你| 亚洲少妇的诱惑av| 欧美日韩中文字幕国产精品一区二区三区 | 久久中文字幕人妻熟女| 国产激情久久老熟女| 国产日韩一区二区三区精品不卡| 精品福利观看| 人人妻,人人澡人人爽秒播| 99国产精品一区二区蜜桃av| 久久人妻av系列| 乱人伦中国视频| 99国产精品一区二区蜜桃av| 成熟少妇高潮喷水视频| 9色porny在线观看| 欧美日韩黄片免| 极品教师在线免费播放| 日韩欧美在线二视频| 亚洲精品在线美女| 淫秽高清视频在线观看| 国产精品 欧美亚洲| 丝袜在线中文字幕| 精品国产乱码久久久久久男人| 一卡2卡三卡四卡精品乱码亚洲| 日韩中文字幕欧美一区二区| 国产精品爽爽va在线观看网站 | 国产成人啪精品午夜网站| 国产亚洲精品一区二区www| 欧美在线黄色| 电影成人av| 亚洲精品国产色婷婷电影| 999久久久国产精品视频| 大型av网站在线播放| 丰满人妻熟妇乱又伦精品不卡| 国产精品综合久久久久久久免费 | 在线观看www视频免费| 天天添夜夜摸| 亚洲精品国产色婷婷电影| 免费看a级黄色片|