日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Unity性能优化 – 脚本篇

發布時間:2024/8/26 编程问答 75 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Unity性能优化 – 脚本篇 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

最近開始進行Unity性能優化的工作,主要分為三類:CPU、GPU和內存。由于我們游戲的核心戰斗是計算密集型,所以主要是受限于CPU。CPU的優化又分為渲染和腳本,本文將著重于腳本優化。

一般來說,優化必須要知道性能熱點在哪里,而知道性能熱點則需要在目標設備去進行深度的profile。如果不進行profile,而是靠臆測去進行優化,往往會事倍功半,甚至適得其反。

本文所講述的是已經經過驗證的,通用的優化方法和思路,可以為大家節約一些profile時間。以下將從Unity API、C#、Lua、數據結構和算法等方面來詳細闡述優化建議。

Unity API

GameObject.GetComponent

Unity是基于組合的開發方式,所以GetComponent是一個高頻使用的函數。每次調用GetComponent時,Unity都要去遍歷所有的組件來找到目標組件。每次都去查找是不必要的耗費,我們可以通過緩存的方式來避免這些不必要的開銷。

其中Transform是我們用到最多的組件,GameObject內部提供了一個.transform來獲取此組件。然而經過測試(2017.2.1p1)我們發現緩存的效率依然是最高的。所以若要經常訪問一個特定組件,將其緩存。
?

  • private Transform m_transform;
  • void Awake() {
  • ? ? m_transform = transform;
  • }
  • void Start () {
  • ? ? // 緩存的m_transform,耗時49ms
  • ? ? for (int i = 0; i < 1000000; i++)
  • ? ?? ???m_transform.position = Vector3.one;
  • ? ? // 內部屬性transform,耗時77ms
  • ? ? for (int i = 0; i < 1000000; i++)
  • ? ?? ???transform.position = Vector3.one;
  • ? ? // 采用GetComponent,耗時102ms
  • ? ? for (int i = 0; i < 1000000; i++)
  • ? ?? ???GetComponent<Transform>().position = Vector3.one;
  • }
  • 復制代碼

    GameObject.Find

    GameObject.Find會遍歷當前所有的GameObject來返回名字相符的對象。所以當游戲內對象很多時,這個函數將很耗時。

    可以通過緩存的方法,在StartAwake時緩存一次找到的對象,在后續使用中使用緩存的對象而非繼續調用GameObject.Find

    或者采用GameObject.FindWithTag來尋找特定標簽的對象。如果能在一開始就確定好對象,可以通過Inspector注入的方式,將對象直接拖到Inspector中,從而避免了運行時的查找。

    Camera.main

    Camera.main用來返回場景中的主相機,Unity內部是通過GameObject.FindWithTag來查找tag為MainCamera的相機。

    當需要頻繁訪問主相機時,我們可以將其緩存以獲得性能提升。
    ?

  • private Camera m_mainCamera;
  • void Awake() {
  • ? ? m_mainCamera = Camera.main;
  • }
  • void Start () {
  • ? ? // 直接使用Camera.main,耗時164ms
  • ? ? for (int i = 0; i < 1000000; i++)
  • ? ?? ???Camera.main.transform.position = Vector3.zero;
  • ? ? // 采用緩存,耗時74ms
  • ? ? for (int i = 0; i < 1000000; i++)
  • ? ?? ???m_mainCamera.transform.position = Vector3.zero;
  • }
  • 復制代碼

    GameObject.tag

    GameObject.tag常用來比較對象的tag,但是直接采用.tag ==來進行對比的話,每一幀會產生GC Alloc。通過GameObject.CompareTag來進行比較則可以避免掉這些GC,但是前提是比較的tag需在Tag Manager中定義。
    ?

  • // 46Bytes GC Alloc Per Frame
  • bool x = tag == "xxxxx";
  • // No GC Alloc, But Need to Define Tags in Tag Manager
  • bool y = CompareTag("xxxxx");
  • 復制代碼

    MonoBehaviour

    MonoBehaviour提供了很多內部的調用方法,諸如UpdateStartAwake等等,它們使用起來很方便,只要在一個繼承了MonoBehaviour的腳本中定義了Update函數,Unity便會在每一幀去執行這個函數,具體的執行順序見:Execution Order of Event Functions

    然而當有大量的MonoBehaviourUpdate需要執行時,在profiler中可以看到它們的耗時很高。因為在MonoBehaviour內部調用Update時需要做一系列檢查,如下圖所示:

    Update調用耗時


    我們可以自建一個MonoBehaviour管理器,里面維護一個List,然后將這些需要調用Update的MonoBehaviour扔進List中,并將它們的Update函數改成其他名字,比如MonoUpdate。然后在這個管理器的Update函數中循環遍歷所有的MonoBehaviour調用它們的MonoUpdate。結果可以獲得數量級上的提升,如下所示:
    ?

    1萬次調用差別


    詳細原理請閱讀:10000 Update() calls

    Transform.SetPositionAndRotation

    每次調用Transform.SetPosition或Transform.SetRotation時,Unity都會通知一遍所有的子節點。

    當位置和角度信息都可以預先知道時,我們可以通過Transform.SetPositionAndRotation一次調用來同時設置位置和角度,從而避免兩次調用導致的性能開銷。

    Animator.Set…

    Animator提供了一系列類似于SetTrigger、SetFloat等方法來控制動畫狀態機。例如:m_animator.SetTrigger(“Attack”)是用來觸發攻擊動畫。然而在這個函數內部,“Attack”字符串會被hash成一個整數。如果我們需要頻繁觸發攻擊動畫,我們可以通過Animator.StringToHash來提前進行hash,來避免每次的hash運算。
    ?

  • // Hash once, use everywhere!
  • private static readonly int s_Attack = Animator.StringToHash(“Attack”);
  • m_animator.SetTrigger(s_Attack);
  • 復制代碼

    Material.Set…

    與Animator類似,Material也提供了一系列的設置方法用于改變Shader。例如:m_mat.SetFloat(“Hue”, 0.5f)是用來設置材質的名為Hue的浮點數。同樣的我們可以通過Shader.PropertyToID來提前進行hash。
    ?

  • // Hash once, use everywhere!
  • private static readonly int s_Hue = Shader.PropertyToID("Hue");
  • m_mat.SetFloat(s_Hue, 0.5f);
  • 復制代碼

    Vector Math

    如果需要比較距離,而非計算距離,用SqrMagnitude來替代Magnitude可以避免一次耗時的開方運算。

    在進行向量乘法時,有一點需要注意的是乘法的順序,因為向量乘比較耗時,所以我們應該盡可能的減少向量乘法運算。
    ?

  • // 耗時:73ms
  • for (int i = 0; i < 1000000; i++)
  • ? ? Vector3 c = 3 * Vector3.one * 2;
  • // 耗時:45ms
  • for (int i = 0; i < 1000000; i++)
  • ? ? Vector3 c = 3 * 2 * Vector3.one;
  • 復制代碼



    可以看出上述的向量乘法的結果完全一致,但是卻有顯著的耗時差異,因為后者比前者少了一次向量乘法。所以,應該盡可能合并數字乘法,最后再進行向量乘。

    Coroutine

    Coroutine是Unity用來實現異步調用的機制,如果對其不夠了解可以參考我之前寫的文章:對Unity中Coroutines的理解

    當需要實現一些定時操作時,有些同學可能會在Update中每幀進行一次判斷,假設幀率是60幀,需要定時1秒調用一次,則會導致59次無效的Update調用。

    用Coroutine則可以避免掉這些無效的調用,只需要yield return new WaitForSeconds(1f);即可。當然這里的最佳實踐還是用一個變量緩存一下new WaitForSeconds(1f),這樣省去了每次都new的開銷。

    SendMessage

    SendMessage用來調用MonoBehaviour的方法,然而其內部采用了反射的實現機制,時間開銷異常大,需要盡量避免使用。

    可以用事件機制來取代它。

    Debug.Log

    眾所周知,輸出Log是一件異常耗時,而且玩家感知不到的事情。所以應該在正式發布版本時,將其關閉。

    Unity的Log輸出并不會在Release模式下被自動禁用掉,所以需要我們手動來禁用。我們可以在運行時用一行代碼來禁用Log的輸出:Debug.logger.logEnabled = false;。

    不過最好采用條件編譯標簽Conditional封裝一層自己的Log輸出,來直接避免掉Log輸出的編譯,還可以省去Log函數參數傳遞和調用的開銷。具體可以參見:Unity3D研究院之在發布版本屏蔽Debug.log輸出的Log

    C#

    反射

    反射是一項異常耗時的操作,因為其需要大量的有效性驗證而且無法被編譯器優化。

    而且反射在iOS下還可能存在不能通過AOT的情況,所以我們應該盡量避免使用反射。

    我們可以自己建立一個字符串-類型的字典來代替反射,或者采用delegate的方式來避免反射

    內存分配(棧和堆)

    在C#中,內存分配有兩種策略,一種是分配在棧(Stack)上,另一種是分配在堆(Heap)上。

    在棧上分配的對象都是擁有固定大小的類型,在棧上分配內存十分高效。

    在堆上分配的對象都是不能確定其大小的類型,由于其內存大小不固定,所以經常容易產生內存碎片,導致其內存分配相對于棧來說更為低效。

    值類型和引用類型

    在C#中,數據可以分為兩種類型:值類型(Value Type)和引用類型(Reference Type)。

    值類型包括所有數字類型、Bool、Char、Date、所有Struct類型和枚舉類型。其類型的大小都是固定,它們都在棧上進行內存分配。

    引用類型包括字符串、所有類型的數組、所有Class以及Delegate,它們都在堆上進行內存分配。
    ?

    Stack & Heap



    裝箱

    裝箱(Boxing)指的是將值類型轉換為引用類型,而拆箱(UnBoxing)的是將引用類型轉換為值類型。 Stack & Heap
    ?



    從上圖我們可以發現裝箱和拆箱存在著從棧到堆的轉移和內存開辟,所以它們本質是一項非常耗時的操作,我們應該盡量避免之。

    Mono之前的foreach導致每幀的GC Alloc,本質也是因為裝箱和拆箱導致的,此問題已經在Unity5.6后被修復。

    垃圾回收

    我們在上分配的內存,其實是由垃圾回收器(Garbage Collector)來負責回收的。垃圾回收算法異常耗時,因為它需要遍歷所有的對象,然后找到沒有引用的孤島,將它們標記為「垃圾」,然后將其內存回收掉。

    頻繁的垃圾回收不僅很耗時,還會導致內存碎片的產生,使得下一次的內存分配變得更加困難或者干脆無法分配有效內存,此時堆內存上限會往上翻一倍,而且無法回落,造成內存吃緊。

    所以我們應該極力避免GC Alloc,即需要控制堆內存的分配。

    字符串

    字符串連接會導致GC Alloc,例如string gcalloc = "GC" + "Alloc"會導致"GC"變成垃圾,從而產生GC Alloc。又比如:string c = string.Format("one is {0}", 1),也會因為一次裝箱操作(數字1被裝箱成字符串"1")而產生額外的GC Alloc。

    所以如果字符串連接是高頻操作,應該盡量避免使用+來進行字符串連接。C#提供了StringBuilder類來專門進行字符串的連接。

    虛函數

    虛函數的調用會比直接調用開銷更大,我們可以用sealed修飾符來修飾掉那些確保不會被繼承的類或函數。

    具體詳情可以參考:IL2CPP Optimizations: Devirtualization

    Lua

    我之前寫過一篇有關于純Lua性能優化的文章:編寫高性能的Lua代碼,以下是一些摘抄和補充。

    local

    Lua的默認變量都是全局變量,必須要加上local修飾才能變成局部變量。

    局部變量相對于全部變量有以下幾點好處: 1. 讀寫更快 2. 可以避免不經意的全局變量名污染 3. 在作用域結束時,會被自動標記為垃圾,避免了內存泄漏

    所以,雖然Lua的默認變量聲明都是全局變量,我們還是應該將其用local修飾為局部變量。

    table

    Lua中的表內部分為兩部分:hash部分和array部分。當創建一個空表時,這兩個部分都會默認初始化空間為0。隨著內容的不斷填充,會不斷觸發rehash。rehash是一次非常耗時的操作,所以應盡量避免之。

    如果同時需要創建較多的小表,我們可以通過預先填充表以避免rehash。

    string

    與C#類似,在Lua中的字符串連接的代價也很高昂,但是與C#提供了StringBuilder不同,Lua沒有提供類似的原生解決方案。

    不過我們可以用table來作為一個buffer,然后使用table.concat(buffer, '')來返回最終連接的字符串。

    與C#交互

    關于與C#的交互,不同的Lua解決方案有不同的策略,但是有些基本的點都是一樣的。

    首先,關于MonoBehaviour的三大Update的橋接,最佳策略是通過一個管理器繼承MonoBehaviour的Update,然后將其派發給Lua端,然后Lua端所有的Update都注冊于這個管理器當中。這樣可以避免了多次Lua與C#的橋接交互,可以大量節省時間。

    其次,需要考慮GC問題,默認的struct比如Vector3傳遞到Lua中都需要經歷一次裝箱操作,會帶來額外的GC Alloc,可以采用特殊配置的方式將其避免。XLua的方案可以參考:XLua復雜值類型(struct)gc優化指南

    最后,通用的優化思路可以參考用好Lua+Unity,讓性能飛起來——Lua與C#交互篇,作者針對實例做了較為詳盡的分析。

    數據結構

    容器類型

    容器應該針對不同的使用場合進行選擇,主要看使用場合哪種操作的頻率較高。例如:
    ?

    • 經常需要進行隨機下標訪問的場合,優先選擇數組(Array)或列表(List)
    • 經常需要進行查找的場合,優先選擇字典(Dictionary)
    • 經常需要插入或刪除的場合,優先選擇鏈表(LinkedList)

    還有一些特殊的數據結構,適用于特殊的使用場合。例如:
    ?

    • 不能存在相同元素的,可以選擇HashSet
    • 需要后進先出的,用來優化遞歸函數調用的,可以選擇Stack
    • 需要先進先出的,可以選擇Queue

    對象池

    對象池(Object Pool)可以避免頻繁的對象生成和銷毀。二手手機號碼轉讓平臺游戲對象的生成,首先需要開辟內存,其次還可能會引起GC Alloc,最后還可能會引發磁盤I/O。頻繁的銷毀對象會引發嚴重的內存碎片,使得堆內存的分配更加困難。

    所以在有大量對象需要重復生成和銷毀時,一定要采用對象池來緩存好創建的對象,等到它們無需使用時,不需要將其銷毀,而是將其放入對象池中,可以免去下次的生成。

  • public class ObjectPool<T> where T : new()
  • {
  • ? ? private Stack<T> objs;
  • ? ? public ObjectPool(){
  • ? ?? ???objs = new Stack<T>();
  • ? ? }
  • ? ? // 獲取對象池里的對象
  • ? ? public T GetObject(){
  • ? ?? ???T obj = objs.Count > 0 ? objs.Pop() : new T();
  • ? ?? ???return obj;
  • ? ? }
  • ? ? // 回收對象池里的對象
  • ? ? public void ReturnObject(T obj){
  • ? ?? ???if (obj != null)
  • ? ?? ?? ?? ?objs.Push(obj);
  • ? ? }
  • }
  • 復制代碼

    空間劃分

    在計算空間碰撞或者尋找最近鄰居時,如果空間很龐大,需要參與計算的對象太多的情況下,用兩層循環逐個遍歷去計算的復雜度為平方級。

    我們可以借助于空間劃分的數據結構來使復雜度降低到N*Log(N)。四叉樹一般用來劃分2D空間,八叉樹一般用來劃分3D空間,而KD樹則是不限空間維度。

    我之前寫過一篇介紹KD樹的原理和優化的文章:KD樹的應用與優化,內容比較詳盡,大家可以去讀一讀。

    算法

    循環

    循環的使用非常常見,也非常容易成為性能熱點。我們應該盡量避免在循環內進行耗時或無效操作,尤其是這個循環在每幀的Update調用中時。
    ?

  • void Update() {
  • ? ? for (int i = 0; i < count; i++)
  • ? ?? ???if (condition)
  • ? ?? ?? ?? ?excuteFunc(i);
  • }
  • 復制代碼

    以上的循環遍歷中,無論condition為真或者為假,循環都會執行count次,若condition為假,則相當于白跑了count次。
    ?

  • void Update() {
  • ? ? if (condition)
  • ? ?? ???for (int i = 0; i < count; i++)
  • ? ?? ?? ?? ?? ? excuteFunc(i);
  • }
  • 復制代碼

    將判斷條件提出循環外,則可以避免白跑了的問題。

    另一個需要注意的是小心多重循環的順序問題,應該盡量把遍歷次數較多的循環放在內層。
    ?

  • void Start()
  • {
  • ? ? // 耗時:37ms
  • ? ? for (int i = 0; i < 1000000; i++)
  • ? ?? ???for (int j = 0; j < 2; j++)
  • ? ?? ?? ?? ?int k = i * j;
  • ? ? // 耗時:13ms
  • ? ? for (int i = 0; i < 2; i++)
  • ? ?? ???for (int j = 0; j < 1000000; j++)
  • ? ?? ?? ?? ?int k = i * j;
  • }
  • 復制代碼

    當內外層循環數有較多數量級上的差別時,將忙的循環放在內層性能更高,因為其避免了更多次內層循環計數器初始化的調用。

    數學運算

    開方運算,三角函數這些都是耗時的數學運算,應盡量避免之。

    像之前提到的,如果只是單純比較距離而不是計算距離的話,就可以用距離的平方來表示,可以節約掉一次耗時的開方運算。

    三角運算可以通過簡單的向量運算來規避之,具體可以參考我之前寫的文章:向量運算在游戲開發中的應用和思考。

    又比如如果經常需要除一個常數,比如用萬分位整數來表示小數需要經常除10000,可以改成乘0.0001f,可以規避掉較乘法更為耗時的除法運算。?大霧,實際驗算證明,現代的編譯器會對此進行優化,所以沒有必要為此犧牲可讀性。很多時候還是要先測算再去寫代碼會比較好。

    緩存

    我最喜歡的一種優化思路就是緩存。緩存的本質就是用空間換時間。例如之前在Unity API中提到的很多耗時的函數,都可以用緩存來提升性能。

    包括對象池,也是緩存技術的一種。針對于需要依賴復雜運算而且后續要經常用到值,我們便可將其緩存起來,以避免后續的計算,從而獲取性能提升。

    總結

    以上是生活随笔為你收集整理的Unity性能优化 – 脚本篇的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    99日精品| 久久久久美女 | 又黄又爽的免费高潮视频 | 99热精品久久 | 最近中文字幕免费 | 中文字幕大全 | 久久精品99精品国产香蕉 | 97综合视频 | av在线观 | 欧美有色 | 97视频网站 | 亚洲综合爱 | av超碰在线观看 | 色视频网址| 亚洲天堂网视频 | 深爱五月激情网 | 97精品一区二区三区 | 国产精品毛片一区二区 | 黄色网www| 免费观看一级成人毛片 | 91av资源在线 | 超碰在线9 | 国产亚洲精品电影 | 91精品婷婷国产综合久久蝌蚪 | 欧美另类重口 | 久久久久国产精品午夜一区 | 国产日韩欧美网站 | 五月婷婷久草 | 精品视频123区在线观看 | 天堂av网在线 | 日躁夜躁狠狠躁2001 | 亚洲人毛片 | 久久精品99国产 | 黄色小网站免费看 | 亚洲区精品 | 日韩精品免费一区二区 | 在线国产一区二区三区 | 久久精品这里都是精品 | 人人干网 | 久久综合影音 | 色综合www | 亚洲综合少妇 | 成人电影毛片 | av福利资源 | 国产成人1区 | 国产真实在线 | 蜜臀91丨九色丨蝌蚪老版 | 欧美另类交在线观看 | 国产精品久久久久久电影 | 中文字幕黄色av | 亚洲六月丁香色婷婷综合久久 | 456免费视频| 特级西西444www高清大视频 | www.国产高清 | 国产精品成人免费一区久久羞羞 | 91精品爽啪蜜夜国产在线播放 | 国产在线精品区 | 欧美另类69 | 国产不卡一区二区视频 | 欧美a级成人淫片免费看 | 久久久免费在线观看 | 国产综合婷婷 | 国产一二三区在线观看 | 亚洲成人精品在线 | 一级黄色电影网站 | 久久成人一区二区 | 欧美俄罗斯性视频 | 天堂久久电影网 | 日韩视频免费播放 | 91精品视频观看 | 久久天天拍| 中文字幕在线看视频国产中文版 | 国产精品美女久久 | 国产.精品.日韩.另类.中文.在线.播放 | 97视频在线 | 美女很黄免费网站 | 国产亚洲婷婷 | 成人一区二区三区在线观看 | a特级毛片| 国产精品亚州 | 丁香婷婷深情五月亚洲 | 中文字幕视频一区二区 | 亚洲精品乱码久久久久久蜜桃动漫 | 久久精品99 | 国产精品一区二区久久 | av在线播放亚洲 | 亚洲国产精品传媒在线观看 | 国产字幕在线看 | 最近中文字幕国语免费高清6 | 日韩免费看片 | 免费看污的网站 | 色妞久久福利网 | 国产精品久久久久影视 | 精品在线你懂的 | 蜜臀av.com| 色婷婷综合久久久久 | 日韩精品专区 | 婷婷网站天天婷婷网站 | 在线视频一区观看 | 亚洲精品久久久久久国 | 亚洲自拍av在线 | 欧美午夜精品久久久久 | www.夜夜操.com | 精品天堂av | 中文字幕永久 | 精品在线视频一区二区三区 | 日本激情视频中文字幕 | 亚洲一二三久久 | 欧美另类人妖 | 丁香激情综合久久伊人久久 | 久久国产精品99国产 | 国产在线综合视频 | 日韩欧美精品在线视频 | 日韩在线观看你懂的 | 国产一区二区三区午夜 | 国产字幕av | 国产91aaa | 在线视频你懂得 | 久久99精品国产99久久6尤 | 天天色天天射天天干 | 免费看污片 | 91久久奴性调教 | 天天综合天天综合 | 婷婷伊人五月天 | 91cn国产在线| 91九色视频在线观看 | 国产一级免费观看 | 国产精品九九久久99视频 | 98超碰在线观看 | 日韩精品一区二区三区电影 | 丁香婷婷色综合亚洲电影 | av无限看 | 国产美女免费视频 | a级国产乱理伦片在线播放 久久久久国产精品一区 | 欧美久草网 | 欧美日韩在线播放一区 | 一区二区中文字幕在线观看 | 极品国产91在线网站 | 亚洲最新av在线网址 | a级国产乱理伦片在线观看 亚洲3级 | 国产97在线观看 | 色婷婷在线观看视频 | 爱情影院aqdy鲁丝片二区 | 992tv在线观看网站 | 日韩av免费一区 | 国产精品 中文字幕 亚洲 欧美 | 九九久久国产精品 | 天天狠狠操 | 日韩超碰 | 日本激情中文字幕 | 精品久久影院 | 免费 在线 中文 日本 | 永久免费av在线播放 | 91精品视频在线播放 | 日本最新中文字幕 | 国产免费一区二区三区网站免费 | 一区二区三区日韩在线 | 97精品国自产拍在线观看 | 色综合久久99 | 国产人成看黄久久久久久久久 | 成人在线观看免费视频 | 久久久婷 | 欧美999 | 人人狠 | 精品高清美女精品国产区 | 四虎国产精品免费 | 久久男人中文字幕资源站 | 探花在线观看 | 波多野结衣日韩 | 五月婷在线观看 | 成人黄色片在线播放 | 一级片黄色片网站 | 国内99视频 | 在线视频观看亚洲 | 激情深爱.com | 精品影院一区二区久久久 | 免费看的黄色片 | 国模精品一区二区三区 | 亚洲精品系列 | 亚洲另类视频在线观看 | 狠狠天天 | 91在线免费观看网站 | 国产 字幕 制服 中文 在线 | 亚洲午夜久久久影院 | 亚洲国产成人精品在线观看 | 中文字幕视频一区 | 国产一级h| 亚洲精品久久久久中文字幕二区 | 日韩中文字 | 人成电影网 | 亚洲精品美女在线 | 中文字幕a在线 | 日韩,中文字幕 | 亚洲一区二区精品3399 | 在线观看视频你懂 | 久久久久久久久久久福利 | 在线综合色| www.狠狠色.com | 五月婷婷综合激情网 | 日本中文字幕系列 | 国产无套视频 | 五月天欧美精品 | 久久国产精品一二三区 | 深夜免费福利网站 | 在线观看视频黄色 | 五月婷婷天堂 | 免费视频一区二区 | 国偷自产中文字幕亚洲手机在线 | 欧美精品v国产精品v日韩精品 | 99精品视频免费看 | 国产三级精品三级在线观看 | www.av小说| 中文字幕国产在线 | 一区二区三区在线电影 | 亚洲成熟女人毛片在线 | 国产精品久久久av久久久 | 欧美激情h | 日韩免费 | 免费看片网页 | 免费观看的av网站 | 欧美在线一二 | 亚洲视频在线免费观看 | 天天色天天草天天射 | 免费成人短视频 | 91精品国产三级a在线观看 | 国产精品综合av一区二区国产馆 | 日韩a级黄色片 | 亚洲午夜精品久久久久久久久 | 黄色1级毛片 | 国产精品色婷婷视频 | 国产高清久久久 | 日韩欧美精品在线观看视频 | 欧美久久久久久久久久久 | 亚洲精品456在线播放乱码 | www在线观看视频 | 一二三精品视频 | 911久久| 99热99热| 天堂视频一区 | 久久tv视频 | 成人av一区二区三区 | 亚洲精品乱码白浆高清久久久久久 | 久久国产免费视频 | 成人国产精品电影 | 亚州五月| 久久99亚洲网美利坚合众国 | a成人v在线 | 五月天久久综合网 | 欧美日韩69 | 欧美日韩视频网站 | 欧美少妇xx | 久久夜色精品国产欧美乱 | 高清一区二区三区av | 美女久久网站 | 99r在线播放 | 久久国产乱 | 亚洲国产精品99久久久久久久久 | 亚洲小视频在线 | 亚洲影视九九影院在线观看 | 日本中文字幕电影在线免费观看 | 国产精品1区2区3区在线观看 | 久久电影国产免费久久电影 | 国产亚洲aⅴaaaaaa毛片 | 精品美女在线观看 | 麻豆影视在线免费观看 | 中文字幕乱码亚洲精品一区 | 午夜精品久久久久久久99 | 一级免费黄视频 | 亚洲人成综合 | 91xav| 国产成人一区二区三区久久精品 | 国产99爱| 国产一区二区视频在线播放 | 色婷婷久久久综合中文字幕 | 日韩精品一卡 | 麻豆免费观看视频 | 亚洲欧美日韩在线看 | 国产精品一区二区三区在线免费观看 | 中文字幕一区二区三区久久 | 日韩影视大全 | 伊人婷婷综合 | 国产在线一区二区三区播放 | 国产a视频免费观看 | 日韩午夜小视频 | 嫩嫩影院理论片 | 99久久久久免费精品国产 | 中文字幕精 | 97在线免费观看 | 色视频 在线 | 这里只有精彩视频 | a√天堂中文在线 | 五月花丁香婷婷 | 天天综合操 | 午夜精品久久久久久99热明星 | 免费观看国产视频 | 亚洲美女视频网 | 免费人做人爱www的视 | 欧美在线视频一区二区三区 | 国产在线播放一区 | 久久精品视频在线 | 亚洲精品美女视频 | 久久精品中文字幕少妇 | 黄色在线网站噜噜噜 | 狠狠久久 | 91免费观看视频网站 | 久久国产免费看 | 日日操日日插 | 日韩欧美国产成人 | 在线精品视频免费观看 | 麻豆传媒一区二区 | 蜜臀久久99精品久久久无需会员 | 一区二区三区四区五区在线 | 欧美福利视频 | 欧美极品少妇xbxb性爽爽视频 | 在线观看韩国av | www五月| 欧美一级激情 | 天堂av在线中文在线 | 日韩三级视频 | 国产女教师精品久久av | 成人av在线影院 | 永久免费观看视频 | 欧美三级高清 | 国产美女黄网站免费 | 久草在线免费在线观看 | 亚洲最大的av网站 | 丁香婷婷色月天 | 97高清免费视频 | 国产精品va视频 | 午夜美女wwww | 中国成人一区 | 日韩av一区二区在线播放 | 亚洲做受高潮欧美裸体 | 国产亚洲精品久久久久5区 成人h电影在线观看 | 色之综合网 | 国产高清不卡av | 久久久国产精品网站 | 日韩成人免费在线电影 | 免费在线观看成人小视频 | 免费在线视频一区二区 | av成人资源| 精品久久久久免费极品大片 | 亚洲五月 | 中文字幕在线观看视频免费 | 国产精品入口传媒 | 在线看毛片网站 | 国产美女免费看 | 97在线看片| 激情亚洲综合在线 | 91福利社在线观看 | 美女久久久久久久 | 亚洲日本va中文字幕 | 亚洲精品久久久久中文字幕二区 | 久久九九影视网 | 国产精品免费一区二区 | 成人午夜av电影 | 日韩电影在线一区二区 | 日韩欧美亚洲 | 免费精品国产 | 欧美在线一级片 | 免费国产在线视频 | 人人爽人人澡 | 婷婷色婷婷 | 国产亚洲精品成人av久久ww | 国产视频不卡一区 | 91网在线观看| 久久久国产一区二区三区四区小说 | 一区二区三区在线观看免费 | 国产精品一区二区吃奶在线观看 | 干狠狠| 久久人人爽爽人人爽人人片av | 久久久久99精品成人片三人毛片 | 视频一区在线播放 | 日韩精品在线观看视频 | 久久久受www免费人成 | 久久黄色免费 | 久久a级片| 97超碰中文| 色婷婷亚洲综合 | 国产成人三级在线观看 | 免费视频99 | 国产精品原创视频 | 国产成人在线免费观看 | 国产一区电影在线观看 | 99re国产视频 | 成人精品久久 | 欧美一区二区精品在线 | a视频在线播放 | 西西大胆啪啪 | 青草视频在线 | 99在线观看视频 | 99精品色| 中文字幕 欧美性 | 国产精品都在这里 | 亚洲欧美日本国产 | 福利视频| 99热99热 | 国产香蕉av | 国产成人av| 免费精品在线视频 | 精品综合久久 | 国产婷婷久久 | 91黄色在线观看 | 久热香蕉视频 | 精品国产91亚洲一区二区三区www | 日韩欧美网站 | 亚洲黄色软件 | 国产精品毛片一区视频播 | 草久视频在线观看 | 国产中的精品av小宝探花 | 色com网| 蜜桃视频日韩 | 久草在线视频首页 | 波多野结衣视频一区 | 亚洲欧美成人 | 久久久免费看视频 | 国产不卡一区二区视频 | 久久久精品国产免费观看一区二区 | 成人在线视频免费观看 | 久草久热| 日韩欧美视频一区二区三区 | 亚洲黄在线观看 | 亚洲性少妇性猛交wwww乱大交 | 极品嫩模被强到高潮呻吟91 | 亚洲国产精品第一区二区 | 国产精品丝袜久久久久久久不卡 | 日韩一三区 | 99久久精品免费看国产免费软件 | 人人操日日干 | 在线成人观看 | 91精品国产99久久久久 | 中文字幕av全部资源www中文字幕在线观看 | 狠狠躁18三区二区一区ai明星 | 操老逼免费视频 | 96av麻豆蜜桃一区二区 | 国产在线欧美日韩 | 国产 一区二区三区 在线 | 国产又粗又猛又爽 | 久久国产免费 | 欧美国产精品一区二区 | 日韩大片在线免费观看 | 久久综合色一综合色88 | 成人全视频免费观看在线看 | 国产麻豆精品久久 | 久久福利 | 免费观看一级特黄欧美大片 | 国产精品观看在线亚洲人成网 | 国产日韩精品一区二区三区在线 | 久久视频国产精品免费视频在线 | 日韩中文字幕免费 | 91精品国产91久久久久福利 | 久艹视频在线免费观看 | 人人爽人人 | 国产精品网红直播 | 少妇bbr搡bbb搡bbb| 四虎影视欧美 | 亚洲精品伦理在线 | 激情综合网五月婷婷 | 久久久久国产精品www | 久久伊人色综合 | 天天天干夜夜夜操 | 欧美一区二区三区在线看 | 97爱爱爱 | 日日夜夜亚洲 | 在线观看黄色免费视频 | 亚洲精品视频在线观看视频 | 国产免费观看久久黄 | 三级动图 | 日日干天天爽 | 欧美不卡视频在线 | 色婷婷综合视频在线观看 | 国产亚洲一区二区在线观看 | 欧美日韩精品在线免费观看 | 激情视频免费在线 | 国产尤物在线视频 | 国产成人精品999在线观看 | 日韩一级黄色片 | 日韩免费在线视频 | 欧美极品少妇xbxb性爽爽视频 | 久久亚洲视频 | 经典三级一区 | 国内精品视频在线 | 亚洲精品在线观看中文字幕 | 国产日韩精品一区二区 | 久久看毛片 | 国产高清免费观看 | 久久成人在线 | 国产小视频免费在线观看 | 精品国产aⅴ一区二区三区 在线直播av | 蜜臀精品久久久久久蜜臀 | 国产精品成人一区二区 | 欧美激情视频一区二区三区 | 中文字幕视频网站 | 高清av中文在线字幕观看1 | 人人干人人草 | 久久成人在线 | 成人在线观看免费 | 97免费公开视频 | 午夜一级免费电影 | 91免费网址 | 国产精品久久久久久久午夜片 | 91网站在线视频 | 国内精品久久久 | 国产精品久久久久久久久久久久午夜 | 波多野结衣视频一区 | 国产美女视频网站 | 国产精品资源 | 亚洲视频在线观看免费 | 色资源网免费观看视频 | 国产精品九九久久99视频 | 亚洲精品乱码久久久久久写真 | 久久在线免费观看 | 中文字幕人成乱码在线观看 | 精品久久久免费 | 亚洲一区二区三区毛片 | 国产一区91| 亚洲综合色播 | 亚洲精选在线观看 | 亚洲综合日韩在线 | 成人黄色片在线播放 | 欧美一级免费在线 | 欧美福利视频 | 精品国产一区二区三区不卡 | 欧美另类性 | 亚洲精品在线免费播放 | 久久综合九色综合欧美就去吻 | 欧美大片在线看免费观看 | 成人免费视频播放 | www.在线观看视频 | 精品一区二区久久久久久久网站 | 一区二区国产精品 | 久热香蕉视频 | 又大又硬又黄又爽视频在线观看 | 叶爱av在线 | 亚洲精品字幕 | av短片在线观看 | 97在线精品视频 | 久久a v视频 | 久久午夜电影网 | 在线观看一区 | 中文字幕影片免费在线观看 | 日韩精品中文字幕在线 | 香蕉视频久久 | 久久97久久97精品免视看 | 干 操 插 | 国产三级视频在线 | 国产成人一二片 | 国产精品免费小视频 | 色爱成人网 | 国产精品一区二区三区电影 | 日韩毛片在线播放 | 亚洲第一香蕉视频 | 天天操网站 | 日韩av在线资源 | av三级在线看 | 色网av| 99视频久久| 久久精品亚洲一区二区三区观看模式 | 免费在线观看av网址 | 国产精品亚洲片夜色在线 | 西西大胆免费视频 | 日韩在线播放欧美字幕 | 久久久久久久国产精品视频 | 欧美亚洲精品在线观看 | 亚洲丝袜一区 | 国产午夜不卡 | 久久精品一区二区三区视频 | 免费情缘 | 一区二区中文字幕在线观看 | 国产美女视频免费观看的网站 | 国产在线精品一区二区 | 久草视频在线资源 | av字幕在线 | 中文字幕在线观看2018 | 国产做爰视频 | 日韩高清www | 99精品国产99久久久久久97 | 99在线精品视频在线观看 | 国产午夜不卡 | 久久99婷婷| 日韩精品一区二区三区外面 | 国产成人不卡 | 日日躁夜夜躁aaaaxxxx | 中文字幕视频免费观看 | 色婷婷播放 | 国产一区二区三区四区大秀 | 久久国产精品精品国产色婷婷 | 国产一区二区高清视频 | 日韩三级视频在线看 | 久草在线高清视频 | 国产精品一区二区久久国产 | 国产精品高潮久久av | 日韩一区在线免费观看 | 久久综合色播五月 | 97精品一区二区三区 | 99精品国产一区二区三区麻豆 | 日韩av在线资源 | 麻花豆传媒一二三产区 | 九月婷婷人人澡人人添人人爽 | 中文字幕在线看视频国产 | 丁香综合av | 激情综合中文娱乐网 | 久久久精品久久日韩一区综合 | 久久夜色精品国产亚洲aⅴ 91chinesexxx | 一区二区三区四区在线 | 日日干激情五月 | 亚洲aⅴ在线| 久久久久久久久久伊人 | 午夜精选视频 | 99精品国产aⅴ | 免费在线视频一区二区 | 天天射天天操天天干 | 狠狠操狠狠干天天操 | 日韩精品资源 | 中文字幕无吗 | 日本在线精品视频 | 香蕉久久久久久av成人 | 日韩精品免费一区二区 | 国产精品久久久久毛片大屁完整版 | 久久国产精品免费看 | 九九一级片 | 国产精品一区二区视频 | 久久久在线观看 | 在线va网站 | 免费网站黄 | 日韩精品久久久免费观看夜色 | 欧美一区在线观看视频 | 免费在线视频一区二区 | 午夜精品一区二区三区视频免费看 | 久久免费观看少妇a级毛片 久久久久成人免费 | 亚洲国产中文在线 | 午夜少妇一区二区三区 | 特级黄色片免费看 | 青青河边草免费直播 | 国产成人精品亚洲a | 日韩三区在线 | 国产精品99久久久精品免费观看 | 久久午夜影院 | 国产明星视频三级a三级点| 性色av免费在线观看 | 99精品视频网| 欧美一级特黄aaaaaa大片在线观看 | 91网在线 | 91视频在线观看免费 | 欧美一区二区三区四区夜夜大片 | 中文字幕在线视频第一页 | 久久婷亚洲五月一区天天躁 | 久久天堂精品视频 | 2024国产精品视频 | 免费高清av在线看 | 国产免费激情久久 | 97人人添人澡人人爽超碰动图 | 亚洲免费色 | 欧美日本一区 | 精品免费观看视频 | 亚洲国产播放 | av网址在线播放 | 久久99影院 | 在线看的av网站 | 欧美另类tv | 亚洲成人一二三 | av网站大全免费 | 日韩精品高清不卡 | 91福利小视频 | 国产玖玖在线 | 日韩久久久久久久久 | 亚洲一区二区三区毛片 | 操操日| 亚洲国产成人在线 | 日韩性片 | 国产精品自产拍在线观看网站 | 福利视频入口 | 毛片无卡免费无播放器 | 性色在线视频 | 天天天天天干 | 美女视频永久黄网站免费观看国产 | 免费看污网站 | 久久精彩免费视频 | 国产99久久九九精品免费 | 成人h电影 | 99热在线免费观看 | 视频在线观看亚洲 | 日韩欧美成人网 | 亚洲日本成人网 | 国产黄在线播放 | 涩涩网站在线观看 | 久久伊人爱 | 日韩丝袜在线观看 | 九九热精品视频在线观看 | 久久国产午夜精品理论片最新版本 | 久久久久久久久久久久影院 | 久久中文字幕在线视频 | 久久爱资源网 | 麻豆久久一区二区 | 精品久久久久久久久久久久 | 福利电影久久 | 国产香蕉视频在线播放 | 韩国精品福利一区二区三区 | 成人在线观看免费视频 | 成人亚洲综合 | 久久综合久久久 | 综合铜03| 成人小视频在线播放 | 亚洲欧洲中文日韩久久av乱码 | 午夜精品久久久久99热app | 精品久久久久久久久久久院品网 | 国产福利资源 | 欧美精品色 | 欧美日韩一区二区三区免费视频 | h视频在线看 | 深爱激情综合网 | 不卡的av在线 | 91九色性视频 | 麻豆你懂的 | 丁香久久五月 | 久久久精品国产免费观看同学 | 51久久成人国产精品麻豆 | 在线v片免费观看视频 | 亚洲精品va | 国产精品一区二区免费看 | 成人影片免费 | 国产成人精品久久久久蜜臀 | 亚洲免费av一区二区 | 色综合久久66| 成人免费大片黄在线播放 | 国产精品入口麻豆www | 国产精品久久久一区二区三区网站 | 久久av中文字幕片 | 亚洲日韩欧美一区二区在线 | 外国av网 | 最近更新好看的中文字幕 | 毛片美女网站 | 99精品系列| 国产精品久久在线观看 | 在线高清av| 国产在线精品视频 | 婷婷激情站 | 日韩中文字幕视频在线观看 | 国产黄色av网站 | 天天爽天天射 | 久久久久久久av | 玖玖精品视频 | 一区二区高清在线 | 久久久国产精品麻豆 | 国产成人精品亚洲精品 | 国产亚洲精品久久久久久久久久 | 狠狠躁夜夜躁人人爽超碰91 | 免费h视频 | 久久99热精品 | 亚洲草视频 | 日本精品中文字幕在线观看 | 精品主播网红福利资源观看 | 1000部18岁以下禁看视频 | 免费人人干 | 日韩三区在线观看 | 免费网站观看www在线观看 | 日韩在线高清 | 久久女教师| 国产精品乱码久久久久 | 国产成人一区二区在线观看 | 91禁在线看 | 久久国产精品99精国产 | 日韩欧美精品在线观看视频 | 日韩一区在线免费观看 | 蜜臀av在线一区二区三区 | 亚洲精品国产综合久久 | 最新一区二区三区 | 日韩mv欧美mv国产精品 | av网站大全免费 | 日韩美女黄色片 | 国产成人精品av久久 | 成人免费看黄 | 美女视频免费精品 | 久久久亚洲麻豆日韩精品一区三区 | 日韩欧美精品在线观看视频 | 又黄又刺激视频 | 草久久久久久 | 免费在线观看午夜视频 | 97爱爱爱 | 久久在线视频在线 | 黄色国产高清 | 欧美日韩亚洲第一页 | 最近乱久中文字幕 | 又长又大又黑又粗欧美 | www日日夜夜 | 欧美日韩久久一区 | 国产亚洲人成网站在线观看 | 国产在线国偷精品产拍免费yy | 久久久黄色免费网站 | 2017狠狠干 | 国产香蕉97碰碰久久人人 | 国产精品一区二区av | 精品久久1 | 一区二区三区精品在线 | 国产精品一区二区在线看 | 欧美激情精品一区 | 亚洲精品资源在线观看 | 欧美日韩久久不卡 | 99综合电影在线视频 | 婷婷在线观看视频 | 久草在线国产 | 日韩欧美视频在线免费观看 | www.av免费 | 久久久私人影院 | 97超碰人人干 | 91在线视频在线观看 | 久久精品免视看 | 日本黄色a级大片 | 色综合久久五月 | 久久综合婷婷综合 | 国产一区在线视频观看 | 激情五月婷婷丁香 | 97超碰成人在线 | 免费69视频| 狠狠躁夜夜a产精品视频 | 日本特黄特色aaa大片免费 | 成年在线观看 | 99久久er热在这里只有精品66 | 国产高清一级 | 九九精品视频在线观看 | 免费久久99精品国产婷婷六月 | 成人欧美日韩国产 | 久久美女免费视频 | 片网址 | 日韩草比 | 亚洲一级片在线观看 | 国产精品亚洲精品 | 九九热国产视频 | 亚洲日本va午夜在线电影 | 亚洲精品一区二区在线观看 | 亚洲精品乱码久久久久久蜜桃91 | 青青看片 | 国产一区国产二区在线观看 | 国产69精品久久久久99尤 | 亚洲精品视频在线观看网站 | 99热在线精品观看 | 免费黄在线观看 | 久久久久久高潮国产精品视 | 国产精品va在线观看入 | 九九热在线视频 | 狠狠色丁香久久婷婷综 | 亚洲人成免费 | 视频91在线 | 久久99精品国产麻豆宅宅 | 91喷水| 国产精品刺激对白麻豆99 | 久久爽久久爽久久av东京爽 | 亚洲最快最全在线视频 | 久久在线精品视频 | 在线观看日本韩国电影 | 黄色资源在线观看 | 国产精品美女久久久网av | 亚洲激情视频在线观看 | 激情网站免费观看 | 国产亚洲91 | 在线观看一区二区精品 | 欧美激情h| 正在播放亚洲精品 | 黄色天堂在线观看 | 日韩大陆欧美高清视频区 | 亚洲黄色影院 | 中文字幕高清在线播放 | 国产99久久久国产精品免费二区 | 综合久久久久久久 | 黄色av播放 | 久久久精品欧美一区二区免费 | 久久av在线 | 亚洲精品乱码久久久久久按摩 | 四虎在线免费视频 | 国产视频日韩 | 日本精品视频免费 | 色婷婷激情电影 | 久久久国产精品免费 | 999久久a精品合区久久久 | 99re6热在线精品视频 | 欧美一级大片在线观看 | 亚洲最大av| 国产精品大尺度 | 婷婷成人在线 | 在线之家免费在线观看电影 | 久久久久久草 | 精品国产亚洲一区二区麻豆 | 91日韩精品一区 | 在线一区观看 | 午夜少妇 | 久久久久国产a免费观看rela | 日韩久久激情 | av在线专区 | 国产视频一区二区三区在线 | 日韩久久久久久久久久久久 | 在线中文字幕播放 | 91最新视频 | 亚洲精品观看 | 久久久久久久久久久久久久电影 | 国产精品一区二区在线播放 | 亚州精品在线视频 | 99久久999久久久精玫瑰 | 一二区av | 丁香免费视频 | 久草成人在线 | 久久玖 | 91久久精品一区二区二区 | 在线观看免费一区 | 最近中文字幕免费大全 | 亚洲日本国产 | 久久免费精彩视频 | 久久久精品国产免费观看一区二区 | 日韩天天干 | 日韩精品一区电影 | 黄色大片免费网站 | 欧美美女一级片 | 视频一区在线播放 | 亚洲国产网址 | 国产日韩欧美自拍 | 91在线免费播放视频 | 天天干com| 成年人在线播放视频 | 天天躁天天躁天天躁婷 | 欧美日韩一区二区三区不卡 | 中文字幕丰满人伦在线 | 亚洲一区二区三区精品在线观看 | 夜夜嗨av色一区二区不卡 | 国产美女在线观看 | 日韩精品一区二区免费 | 久久九九影视网 | 国产免费嫩草影院 | 九九视频在线 | 日日夜夜精品免费 | 在线看成人 | 激情图片区 | 中文字幕91 | 99综合电影在线视频 | 国产成人专区 | 精品美女久久久久 | 蜜臀av夜夜澡人人爽人人桃色 | 粉嫩高清一区二区三区 | 视色网站 | 色婷婷成人网 | 日本在线观看中文字幕 | 国产精品黄色 | 伊人五月天av | 精品在线播放视频 | 久久综合久久综合久久 | 国产视频观看 | 国产美腿白丝袜足在线av | 色婷婷综合久久久久中文字幕1 | 久久精品美女视频网站 | 二区中文字幕 | 久久久综合香蕉尹人综合网 | 日韩在线观看电影 | 亚洲激情综合 | 天天操人人要 | av免费在线网站 | 一区 在线 影院 | 久久免费播放视频 | 国产在线1区 | 欧美日韩一区二区在线观看 | 国产淫a| 婷婷激情网站 | 午夜18视频在线观看 | 97精品在线| 99精品视频播放 | 日韩中文字幕免费视频 | 国产欧美精品在线观看 | 黄色福利视频网站 | 国产精品久久久亚洲 | 9在线观看免费高清完整版在线观看明 | 国产理论免费 | 久久人人97超碰国产公开结果 | 免费色网 | 免费在线播放黄色 | 91中文视频 | 麻豆成人精品 | 久久精品一区二区三 | 色婷婷狠狠五月综合天色拍 | 日韩欧美中文 | 9999精品免费视频 | 国产精品久久久久久久7电影 | 在线精品在线 | 成人在线免费小视频 | 色网站在线看 | 在线播放亚洲激情 | 中文字幕视频观看 | 日韩欧美网站 | 91av短视频| 国产精品免费在线观看视频 | 91精品国产入口 | 亚洲国产字幕 | 国产亚洲精品久久久久久移动网络 | 成片免费观看视频大全 | 午夜影院一级片 | 久久精品99国产国产精 | 亚洲 综合 专区 | 久久国产高清视频 | 国产精品乱码高清在线看 | 一区二区三区国产欧美 | 国产成人久久av977小说 | 国产精品激情偷乱一区二区∴ |