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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

Python3 cpython优化 实现解释器并行

發布時間:2024/3/24 python 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python3 cpython优化 实现解释器并行 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本文介紹了對cpython解釋器的并行優化,使其支持真正的多解釋器并行執行的解決方案。

作者:字節跳動終端技術——謝俊逸

背景

在業務場景中,我們通過cpython執行算法包,由于cpython的實現,在一個進程內,無法利用CPU的多個核心去同時執行算法包。對此,我們決定優化cpython,目標是讓cpython高完成度的支持并行,大幅度的提高單個進程內Python算法包的執行效率。

在2020年,我們完成了對cpython的并行執行改造,是目前業界首個cpython3的高完成度同時兼容Python C API的并行實現。

  • 性能

    • 單線程性能劣化7.7%
    • 多線程基本無鎖搶占,多開一個線程減少44%的執行時間。
    • 并行執行對總執行時間有大幅度的優化
  • 通過了cpython的單元測試

  • 在線上已經全量使用

cpython痛, GIL

cpython是python官方的解釋器實現。在cpython中,GIL,用于保護對Python對象的訪問,從而防止多個線程同時執行Python字節碼。GIL防止出現競爭情況并確保線程安全。 因為GIL的存在,cpython 是無法真正的并行執行python字節碼的. GIL雖然限制了python的并行,但是因為cpython的代碼沒有考慮到并行執行的場景,充滿著各種各樣的共享變量,改動復雜度太高,官方一直沒有移除GIL。

挑戰

在Python開源的20年里,Python 因為GIL(全局鎖)不能并行。目前主流實現Python并行的兩種技術路線,但是一直沒有高完成度的解決方案(高性能,兼容所有開源feature, API穩定)。主要是因為:

  • 直接去除GIL 解釋器需要加許多細粒度的鎖,影響單線程的執行性能,慢兩倍。
  • Back in the days of Python 1.5, Greg Stein actually implemented a comprehensive patch set (the “free threading” patches) that removed the GIL and replaced it with fine-grained locking. Unfortunately, even on Windows (where locks are very efficient) this ran ordinary Python code about twice as slow as the interpreter using the GIL. On Linux the performance loss was even worse because pthread locks aren’t as efficient.

  • 解釋器狀態隔離 解釋器內部的實現充滿了各種全局狀態,改造繁瑣,工作量大。
  • It has been suggested that the GIL should be a per-interpreter-state lock rather than truly global; interpreters then wouldn’t be able to share objects. Unfortunately, this isn’t likely to happen either. It would be a tremendous amount of work, because many object implementations currently have global state. For example, small integers and short strings are cached; these caches would have to be moved to the interpreter state. Other object types have their own free list; these free lists would have to be moved to the interpreter state. And so on.

    這個思路開源有一個項目在做 multi-core-python,但是目前已經擱置了。目前只能運行非常簡單的算術運算的demo。對Type和許多模塊的并行執行問題并沒有處理,無法在實際場景中使用。

    新架構-多解釋器架構

    為了實現最佳的執行性能,我們參考multi-core-python,在cpython3.10實現了一個高完成度的并行實現。

    • 從全局解釋器狀態 轉換為 每個解釋器結構持有自己的運行狀態(獨立的GIL,各種執行狀態)。
    • 支持并行,解釋器狀態隔離,并行執行性能不受解釋器個數的影響(解釋器間基本沒有鎖相互搶占)
    • 通過線程的Thread Specific Data獲取Python解釋器狀態。

    在這套新架構下,Python的解釋器相互隔離,不共享GIL,可以并行執行。充分利用現代CPU的多核性能。大大減少了業務算法代碼的執行時間。

    共享變量的隔離

    解釋器執行中使用了很多共享的變量,他們普遍以全局變量的形式存在.多個解釋器運行時,會同時對這些共享變量進行讀寫操作,線程不安全。

    cpython內部的主要共享變量:3.10待處理的共享變量。大概有1000個…需要處理,工作量非常之大。

    • free lists

      • MemoryError
      • asynchronous generator
      • context
      • dict
      • float
      • frame
      • list
      • slice
    • singletons

      • small integer ([-5; 256] range)
      • empty bytes string singleton
      • empty Unicode string singleton
      • empty tuple singleton
      • single byte character (b’\x00’ to b’\xFF’)
      • single Unicode character (U+0000-U+00FF range)
    • cache

      • slide cache
      • method cache
      • bigint cache
    • interned strings

    • PyUnicode_FromId static strings

    如何讓每個解釋器獨有這些變量呢?

    cpython是c語言實現的,在c中,我們一般會通過 參數中傳遞 interpreter_state 結構體指針來保存屬于一個解釋器的成員變量。這種改法也是性能上最好的改法。但是如果這樣改,那么所有使用interpreter_state的函數都需要修改函數簽名。從工程角度上是幾乎無法實現的。

    只能換種方法,我們可以將interpreter_state存放到thread specific data中。interpreter執行時,通過thread specific key獲取到 interpreter_state.這樣就可以通過thread specific的API,獲取到執行狀態,并且不用修改函數的簽名。

    static inline PyInterpreterState* _PyInterpreterState_GET(void) {PyThreadState *tstate = _PyThreadState_GET(); #ifdef Py_DEBUG_Py_EnsureTstateNotNULL(tstate); #endifreturn tstate->interp; }

    共享變量變為解釋器單獨持有 我們將所有的共享變量存放到 interpreter_state里。

    /* Small integers are preallocated in this array so that theycan be shared.The integers that are preallocated are those in the range-_PY_NSMALLNEGINTS (inclusive) to _PY_NSMALLPOSINTS (not inclusive).*/PyLongObject* small_ints[_PY_NSMALLNEGINTS + _PY_NSMALLPOSINTS];struct _Py_bytes_state bytes;struct _Py_unicode_state unicode;struct _Py_float_state float_state;/* Using a cache is very effective since typically only a single slice iscreated and then deleted again. */PySliceObject *slice_cache;struct _Py_tuple_state tuple;struct _Py_list_state list;struct _Py_dict_state dict_state;struct _Py_frame_state frame;struct _Py_async_gen_state async_gen;struct _Py_context_state context;struct _Py_exc_state exc_state;struct ast_state ast;struct type_cache type_cache; #ifndef PY_NO_SHORT_FLOAT_REPRstruct _PyDtoa_Bigint *dtoa_freelist[_PyDtoa_Kmax + 1]; #endif

    通過 _PyInterpreterState_GET 快速訪問。 例如

    /* Get Bigint freelist from interpreter */ static Bigint ** get_freelist(void) {PyInterpreterState *interp = _PyInterpreterState_GET();return interp->dtoa_freelist; }

    注意,將全局變量改為thread specific data是有性能影響的,不過只要控制該API調用的次數,性能影響還是可以接受的。 我們在cpython3.10已有改動的的基礎上,解決了各種各樣的共享變量問題,3.10待處理的共享變量

    Type變量共享的處理,API兼容性及解決方案

    目前cpython3.x 暴露了PyType_xxx 類型變量在API中。這些全局類型變量被第三方擴展代碼以&PyType_xxx的方式引用。如果將Type隔離到子解釋器中,勢必造成不兼容的問題。這也是官方改動停滯的原因,這個問題無法以合理改動的方式出現在python3中。只能等到python4修改API之后改掉。

    我們通過另外一種方式快速的改掉了這個問題。

    Type是共享變量會導致以下的問題

  • Type Object的 Ref count被頻繁修改,線程不安全
  • Type Object 成員變量被修改,線程不安全。
  • 改法:

  • immortal type object.

  • 使用頻率低的不安全處加鎖。

  • 高頻使用的場景,使用的成員變量設置為immortal object.

  • 針對python的描述符機制,對實際使用時,類型的property,函數,classmethod,staticmethod,doc生成的描述符也設置成immortal object.
  • 這樣會導致Type和成員變量會內存泄漏。不過由于cpython有module的緩存機制,不清理緩存時,便沒有問題。

    pymalloc內存池共享處理

    我們使用了mimalloc替代pymalloc內存池,在優化1%-2%性能的同時,也不需要額外處理pymalloc。

    subinterperter 能力補全

    官方master最新代碼 subinterpreter 模塊只提供了interp_run_string可以執行code_string. 出于體積和安全方面的考慮,我們已經刪除了python動態執行code_string的功能。 我們給subinterpreter模塊添加了兩個額外的能力

  • interp_call_file 調用執行python pyc文件
  • interp_call_function 執行任意函數
  • subinterpreter 執行模型

    python中,我們執行代碼默認運行的是main interpreter, 我們也可以創建的sub interpreter執行代碼,

    interp = _xxsubinterpreters.create() result = _xxsubinterpreters.interp_call_function(*args, **kwargs)

    這里值得注意的是,我們是在 main interpreter 創建 sub interpreter, 隨后在sub interpreter 執行,最后把結果返回到main interpreter. 這里看似簡單,但是做了很多事情。

  • main interpreter 將參數傳遞到 sub interpreter
  • 線程切換到 sub interpreter的 interpreter_state。獲取并轉換參數
  • sub interpreter 解釋執行代碼
  • 獲取返回值,切換到main interpreter
  • 轉換返回值
  • 異常處理
  • 這里有兩個復雜的地方:

  • interpreter state 狀態的切換
  • interpreter 數據的傳遞
  • interpreter state 狀態的切換

    interp = _xxsubinterpreters.create() result = _xxsubinterpreters.interp_call_function(*args, **kwargs)

    我們可以分解為

    # Running In thread 11: # main interpreter: # 現在 thread specific 設置的 interpreter state 是 main interpreter的 do some things ... create subinterpreter ... interp_call_function ... # thread specific 設置 interpreter state 為 sub interpreter state # sub interpreter: do some thins ... call function ... get result ... # 現在 thread specific 設置 interpreter state 為 main interpreter state get return result ...

    interpreter 數據的傳遞

    因為我們解釋器的執行狀態是隔離的,在main interpreter 中創建的 Python Object是無法在 sub interpreter 使用的. 我們需要:

  • 獲取 main interpreter 的 PyObject 關鍵數據
  • 存放在 一塊內存中
  • 在sub interpreter 中根據該數據重新創建 PyObject
  • interpreter 狀態的切換 & 數據的傳遞 的實現可以參考以下示例 …

    static PyObject * _call_function_in_interpreter(PyObject *self, PyInterpreterState *interp, _sharedns *args_shared, _sharedns *kwargs_shared) {PyObject *result = NULL;PyObject *exctype = NULL;PyObject *excval = NULL;PyObject *tb = NULL;_sharedns *result_shread = _sharedns_new(1);#ifdef EXPERIMENTAL_ISOLATED_SUBINTERPRETERS// Switch to interpreter.PyThreadState *new_tstate = PyInterpreterState_ThreadHead(interp);PyThreadState *save1 = PyEval_SaveThread();(void)PyThreadState_Swap(new_tstate); #else// Switch to interpreter.PyThreadState *save_tstate = NULL;if (interp != PyInterpreterState_Get()) {// XXX Using the head thread isn't strictly correct.PyThreadState *tstate = PyInterpreterState_ThreadHead(interp);// XXX Possible GILState issues?save_tstate = PyThreadState_Swap(tstate);} #endifPyObject *module_name = _PyCrossInterpreterData_NewObject(&args_shared->items[0].data);PyObject *function_name = _PyCrossInterpreterData_NewObject(&args_shared->items[1].data);...PyObject *module = PyImport_ImportModule(PyUnicode_AsUTF8(module_name));PyObject *function = PyObject_GetAttr(module, function_name);result = PyObject_Call(function, args, kwargs);...#ifdef EXPERIMENTAL_ISOLATED_SUBINTERPRETERS// Switch back.PyEval_RestoreThread(save1); #else// Switch back.if (save_tstate != NULL) {PyThreadState_Swap(save_tstate);} #endifif (result) {result = _PyCrossInterpreterData_NewObject(&result_shread->items[0].data);_sharedns_free(result_shread);}return result; }

    實現子解釋器池

    我們已經實現了內部的隔離執行環境,但是這是API比較低級,需要封裝一些高度抽象的API,提高子解釋器并行的易用能力。

    interp = _xxsubinterpreters.create() result = _xxsubinterpreters.interp_call_function(*args, **kwargs)

    這里我們參考了,python concurrent庫提供的 thread pool, process pool, futures的實現,自己實現了 subinterpreter pool. 通過concurrent.futures 模塊提供異步執行回調高層接口。

    executer = concurrent.futures.SubInterpreterPoolExecutor(max_workers) future = executer.submit(_xxsubinterpreters.call_function, module_name, func_name, *args, **kwargs) future.context = context future.add_done_callback(executeDoneCallBack)

    我們內部是這樣實現的: 繼承 concurrent 提供的 Executor 基類

    class SubInterpreterPoolExecutor(_base.Executor):

    SubInterpreterPool 初始化時創建線程,并且每個線程創建一個 sub interpreter

    interp = _xxsubinterpreters.create() t = threading.Thread(name=thread_name, target=_worker,args=(interp, weakref.ref(self, weakref_cb),self._work_queue,self._initializer,self._initargs))

    線程 worker 接收參數,并使用 interp 執行

    result = self.fn(self.interp ,*self.args, **self.kwargs)

    實現外部調度模塊

    針對sub interpreter的改動較大,存在兩個隱患

  • 代碼可能存在兼容性問題,第三方C/C++ Extension 實現存在全局狀態變量,非線程安全。
  • python存在著極少的一些模塊.sub interpreter無法使用。例如process
  • 我們希望能統一對外的接口,讓使用者不需要關注這些細節,我們自動的切換調用方式。自動選擇在主解釋器使用(兼容性好,穩定)還是子解釋器(支持并行,性能佳)

    我們提供了C和python的實現,方便業務方在各種場景使用,這里介紹下python實現的簡化版代碼。

    在bddispatch.py 中,抽象了調用方式,提供統一的執行接口,統一處理異常和返回結果。 bddispatch.py

    def executeFunc(module_name, func_name, context=None, use_main_interp=True, *args, **kwargs):print( submit call , module_name, . , func_name)if use_main_interp == True:result = Noneexception = Nonetry:m = __import__(module_name)f = getattr(m, func_name)r = f(*args, **kwargs)result = rexcept:exception = traceback.format_exc()singletonExecutorCallback(result, exception, context)else:future = singletonExecutor.submit(_xxsubinterpreters.call_function, module_name, func_name, *args, **kwargs)future.context = contextfuture.add_done_callback(executeDoneCallBack)def executeDoneCallBack(future):r = future.result()e = future.exception()singletonExecutorCallback(r, e, future.context)

    直接綁定到子解釋器執行

    對于性能要求高的場景,通過上述的方式,由主解釋器調用子解釋器去執行任務會增加性能損耗。 這里我們提供了一些CAPI, 讓直接內嵌cpython的使用方通過C API直接綁定某個解釋器執行。

    class GILGuard { public:GILGuard() {inter_ = BDPythonVMDispatchGetInterperter();if (inter_ == PyInterpreterState_Main()) {printf( Ensure on main interpreter: %p\n , inter_);} else {printf( Ensure on sub interpreter: %p\n , inter_);}gil_ = PyGILState_EnsureWithInterpreterState(inter_);}~GILGuard() {if (inter_ == PyInterpreterState_Main()) {printf( Release on main interpreter: %p\n , inter_);} else {printf( Release on sub interpreter: %p\n , inter_);}PyGILState_Release(gil_);}private:PyInterpreterState *inter_;PyGILState_STATE gil_; };// 這樣就可以自動綁定到一個解釋器直接執行 - (void)testNumpy {GILGuard gil_guard;BDPythonVMRun(....); }

    關于字節跳動終端技術團隊

    字節跳動終端技術團隊(Client Infrastructure)是大前端基礎技術的全球化研發團隊(分別在北京、上海、杭州、深圳、廣州、新加坡和美國山景城設有研發團隊),負責整個字節跳動的大前端基礎設施建設,提升公司全產品線的性能、穩定性和工程效率;支持的產品包括但不限于抖音、今日頭條、西瓜視頻、飛書、番茄小說等,在移動端、Web、Desktop等各終端都有深入研究。

    團隊目前招聘 python解釋器優化方向的實習生,工作內容主要為優化cpython解釋器,優化cpythonJIT(自研),優化cpython常用三方庫。歡迎聯系 微信:?beyourselfyii。郵箱:?xiejunyi.arch@bytedance.com


    🔥 火山引擎 APMPlus 應用性能監控是火山引擎應用開發套件 MARS 下的性能監控產品。我們通過先進的數據采集與監控技術,為企業提供全鏈路的應用性能監控服務,助力企業提升異常問題排查與解決的效率。目前我們面向中小企業特別推出「APMPlus 應用性能監控企業助力行動」,為中小企業提供應用性能監控免費資源包。現在申請,有機會獲得60天免費性能監控服務,最高可享6000萬條事件量。

    👉 點擊這里,立即申請

    總結

    以上是生活随笔為你收集整理的Python3 cpython优化 实现解释器并行的全部內容,希望文章能夠幫你解決所遇到的問題。

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

    中文字幕日韩免费视频 | 成人午夜电影久久影院 | 国产99色| 国产精品久久久久高潮 | 日韩在线视频观看 | 久久综合给合久久狠狠色 | 香蕉视频在线免费 | 色网av| 成人理论在线观看 | 色七七亚洲影院 | 日韩欧美xxxx | av网站免费线看精品 | 日韩午夜精品 | 天天做天天看 | 国产无套精品久久久久久 | 国产精品理论片在线播放 | 亚洲 中文 在线 精品 | 欧美一区二区日韩一区二区 | 欧美aaaxxxx做受视频 | 少妇bbb搡bbbb搡bbbb | 在线黄色av | 91精品国产麻豆国产自产影视 | 精品一二 | 久久综合99| 在线观看黄色国产 | 超碰国产人人 | 色综合久久综合中文综合网 | 91av看片 | 国产视频在线播放 | 久精品视频 | 国产不卡一二三区 | 免费黄色av| 欧美污污视频 | 99色人 | 97成人超碰 | 国产精品免费在线播放 | 韩国一区在线 | 在线观看网站你懂的 | 嫩草伊人久久精品少妇av | 亚洲国产综合在线 | 国产精品福利午夜在线观看 | 精品嫩模福利一区二区蜜臀 | 国内精品久久久久 | 欧美aa在线 | 国产一性一爱一乱一交 | 午夜成人影视 | 精品久久久国产 | 天天操天天拍 | 免费观看av网站 | 精品美女久久久久 | 婷婷在线网 | 91成人精品一区在线播放69 | 国产一区免费在线观看 | 国产 中文 日韩 欧美 | 99热99re6国产在线播放 | 国产九色91 | 久久综合中文色婷婷 | 亚洲国产三级在线观看 | 国产精品美女久久久久久免费 | 国产精品成久久久久三级 | av不卡中文 | 91视频国产高清 | 美女免费电影 | av一二三区| 久色伊人| 久久图 | 国产精品精品国产婷婷这里av | 91精品久久久久久粉嫩 | 国产精品理论片在线观看 | 激情小说久久 | 在线观看蜜桃视频 | 日韩r级在线 | 国产色就色 | 久久精品—区二区三区 | 日本公妇在线观看高清 | 9在线观看免费高清完整版 玖玖爱免费视频 | 成人一区不卡 | 麻豆视频在线免费看 | 在线精品视频免费观看 | 国产成人高清av | 麻豆久久精品 | 最新日韩在线 | 日日爱视频 | 美女网站免费福利视频 | 亚洲精欧美一区二区精品 | 国产日韩中文字幕在线 | 国产成人精品一区二区三区 | 91免费版成人 | 精品国产电影一区 | 五月丁色| 奇米影视999 | 欧美午夜精品久久久久久浪潮 | 欧美性生活大片 | 精品视频9999 | 日本在线视频一区二区三区 | 99久久精品久久亚洲精品 | 日韩影视在线 | 精品久久中文 | 丰满少妇高潮在线观看 | 久久视频在线看 | 国产精品网红直播 | 91免费在线视频 | 91视频大全 | 久久看片 | av电影 一区二区 | 国产精品嫩草影院9 | 国产黄色一级片在线 | 欧美性色网站 | 免费看黄在线观看 | 久久久国产一区二区三区 | 91原创在线观看 | 欧美极度另类 | 国产精品久久久久久久久久久杏吧 | 日本精品一区二区 | 五月天亚洲激情 | 亚洲精品91天天久久人人 | av在观看| 最近的中文字幕大全免费版 | 日韩在线观看电影 | 欧美日韩精品在线免费观看 | 91精品久久久久 | 欧美在线不卡一区 | 激情网第四色 | 亚洲九九九在线观看 | 亚州精品在线视频 | 国产精品色| 国产精品观看在线亚洲人成网 | 99视频精品在线 | 日韩高清av | 亚洲午夜久久久久久久久 | 久久国产精品免费 | 国产精品一区二区三区久久 | 极品美女被弄高潮视频网站 | 男女视频久久久 | 久久精品欧美视频 | 中文字幕亚洲欧美日韩2019 | 一本一本久久a久久精品综合妖精 | 天天干国产 | 91在线看视频免费 | 91正在播放 | 91九色网站 | 999国内精品永久免费视频 | 在线国产小视频 | 日韩最新av在线 | 日韩高清不卡在线 | 免费能看的黄色片 | 少妇bbb好爽 | 久久成视频 | 久久99久久99 | 人人爱爱人人 | 在线观看一区二区精品 | 国产一区二区三区免费观看视频 | 天天干人人| 日韩精品一区电影 | 日韩91精品 | 最近中文字幕在线播放 | 国产精品久久精品 | 日韩精品一区二区三区免费视频观看 | 欧美亚洲三级 | 欧美一区二区精美视频 | 日本少妇久久久 | 激情校园亚洲 | 久草免费色站 | 国产在线综合视频 | 4hu视频| 91色国产| 国产一级电影 | 五月婷婷激情综合 | 日韩色综合 | 日本久久91 | 91大神精品视频在线观看 | 成人小视频在线免费观看 | 精品久久久久久国产91 | 久99久中文字幕在线 | 四虎8848免费高清在线观看 | www.黄色网.com | 久久精品久久国产 | 免费无遮挡动漫网站 | 国产精品一区二区免费看 | 亚在线播放中文视频 | 国产精品麻豆91 | 中文字幕一区二区在线播放 | 久久精品99视频 | 亚洲色图激情文学 | 99热999| 四虎成人免费观看 | 国产美女视频 | 久久夜色网 | 国产破处在线播放 | 中文字幕av在线免费 | 国产精品久久久久毛片大屁完整版 | 色夜视频 | 久久久久久久久久久免费av | 欧美日韩中文在线视频 | 亚州精品在线视频 | 久久久久久久久久久久av | 欧美成人亚洲 | 色综合久久网 | 片黄色毛片黄色毛片 | 九九免费在线观看 | 国产日产高清dvd碟片 | 免费观看国产视频 | 亚洲精品视频在线免费播放 | 日本三级吹潮在线 | 国产你懂的在线 | 免费高清在线视频一区· | 日本福利视频在线 | 五月婷婷在线视频观看 | 91精品国产入口 | 国产 日韩 欧美 中文 在线播放 | 久久涩涩网站 | 婷婷在线免费视频 | 精品中文字幕在线观看 | 久久久亚洲网站 | 久草视频在线看 | 美女视频黄免费的 | 天天色天天色天天色 | 在线观看一区二区视频 | 在线观看视频日韩 | 久久免费福利 | 黄色在线观看网站 | 久久免费av电影 | 人人干人人添 | 黄色大全在线观看 | 日本一区二区三区视频在线播放 | 特级aaa毛片 | 一区二区视频免费在线观看 | www五月天com| 一区二区三区在线免费观看 | 国内精品久久久久 | 人人爽久久涩噜噜噜网站 | 99精品电影 | 国产一性一爱一乱一交 | 中文字幕色播 | 久久精视频| 91麻豆精品国产自产在线 | 九九免费在线观看视频 | 精品国自产在线观看 | 在线亚洲欧美视频 | a精品视频| 日女人电影 | 久久视频国产精品免费视频在线 | 国产aa精品| 久久在线免费视频 | 99久久国产免费,99久久国产免费大片 | 国产高清一级 | 成人黄大片 | 国产精品理论片 | 夜夜骑日日操 | 国产精品国产三级国产aⅴ9色 | 国产一卡二卡四卡国 | 深爱激情久久 | 亚洲情影院 | 99久视频| 国产精品成人久久 | 欧美午夜理伦三级在线观看 | 久久久久久国产一区二区三区 | 国产一区久久 | 日本特黄一级 | 国产精品美 | 99久久这里有精品 | 91精品中文字幕 | 久久久国产精品人人片99精片欧美一 | 国产玖玖在线 | 69久久夜色精品国产69 | 韩日成人av | 中文字幕乱视频 | www.五月激情.com| 国色天香在线 | 国产精品久免费的黄网站 | 中日韩在线视频 | 久久国产视频网站 | 99热最新在线 | 国产精品久久久久久久免费大片 | 日韩最新在线视频 | 久久精品久久精品久久39 | 精品1区2区3区 | www日日夜夜 | 久久久久久久久久久免费 | 日韩电影一区二区在线观看 | 中文字幕永久 | 国产成人精品久久 | 日韩一级黄色av | 午夜精品久久久久 | av黄色成人 | 久久精品一区二区三区国产主播 | a级免费观看 | 69国产盗摄一区二区三区五区 | 伊人久久国产 | 一区二区三区在线免费观看 | 成人黄色在线看 | 中文字幕在线日本 | 国产剧情久久 | 国产97视频| 久久国产精品视频观看 | 丝袜足交在线 | 日本h视频在线观看 | 在线免费黄网站 | 在线国产一区二区 | 国内小视频 | 国产91精品一区二区麻豆网站 | 狠狠干中文字幕 | 狠狠88综合久久久久综合网 | 日本三级不卡视频 | 国产精品久久久久久久久久久免费看 | 在线成人高清电影 | 香蕉网在线播放 | 一区二区三区在线免费播放 | 超碰在线资源 | a√天堂中文在线 | 成年人毛片在线观看 | 免费看成人a | 久久久网址 | 成年人免费观看国产 | 中文字幕在线视频一区二区三区 | 天天干天天干天天干天天干天天干天天干 | 91探花系列在线播放 | 2019免费中文字幕 | 国产精品免费一区二区三区 | 九九热在线免费观看 | 日韩欧美高清视频在线观看 | 国产精品剧情在线亚洲 | 欧美少妇影院 | 国产999精品久久久久久麻豆 | 亚洲黄色片一级 | 1024久久 | 最新色站| 999久久久欧美日韩黑人 | 四虎在线观看精品视频 | 欧美va电影 | 日韩精品一区二区三区在线视频 | 国产精品成人久久久 | 久久99九九99精品 | 久久五月婷婷丁香社区 | 久久99精品波多结衣一区 | 免费色网| 黄色a大片 | 国产精品久久久久久久久久了 | 中文字幕不卡在线88 | 一区二区三区久久 | www天天操 | 黄色小说免费观看 | 最新高清无码专区 | 中文字幕在线播放日韩 | 在线激情小视频 | 免费在线观看日韩 | 欧美国产高清 | 日韩精品网址 | 激情欧美国产 | 国产精品资源 | 亚洲一区不卡视频 | 精品一区 在线 | 午夜影院在线观看18 | 超碰97在线人人 | 精品女同一区二区三区在线观看 | 日韩四虎| 一级黄色大片 | 91久久一区二区 | 国产+日韩欧美 | 国产日韩中文字幕 | 久久毛片视频 | 午夜久久影院 | 国产录像在线观看 | 一级理论片在线观看 | 久久www免费人成看片高清 | 国产精品美女久久久久久 | 在线观看日本高清mv视频 | 天天操夜夜操 | 在线午夜| 亚洲国产精品成人va在线观看 | 亚洲黄色区 | 黄色午夜| 国产精品久久人 | 麻豆传媒精品 | 国产一级二级在线 | 国产99一区视频免费 | 久草剧场| 超碰av在线 | 中文字幕制服丝袜av久久 | av网站有哪些 | av网站手机在线观看 | 国产色拍 | 韩国精品福利一区二区三区 | 欧美日韩亚洲在线观看 | 亚洲精品久久久久www | 激情网婷婷 | 91精品久久久久久久久久入口 | 韩国视频一区二区三区 | 欧美极品裸体 | 在线视频福利 | 视频二区在线 | 69亚洲精品| 欧美性色黄 | 亚洲综合丁香 | 欧洲激情在线 | 999电影免费在线观看2020 | 六月婷操 | 国产亚洲片 | 精品国产一区二区三区在线观看 | 久草视频一区 | 波多野结衣视频在线 | 一区二区三区免费在线播放 | 最新高清无码专区 | 色国产视频| 91亚洲在线观看 | 久久精品三 | 国产色综合天天综合网 | 久久色亚洲 | 2019中文字幕第一页 | 免费网站观看www在线观看 | 日韩免费在线观看网站 | 91热爆视频 | 国产专区视频在线观看 | 国产在线欧美在线 | 日日干av | 亚洲伦理精品 | 日韩欧美高清视频在线观看 | 国产精品视频全国免费观看 | 99热999| 五月开心六月婷婷 | 欧美一区二区三区在线播放 | 精品久久91 | 在线天堂视频 | 中文字幕视频在线播放 | 亚洲 欧美变态 另类 综合 | 在线播放一区二区三区 | 91看片麻豆 | 久久99国产综合精品 | 在线免费高清一区二区三区 | 91在线在线观看 | 亚洲国产精品成人av | 欧美一区日韩精品 | 亚洲一级黄色av | 亚洲欧美成人综合 | 黄色视屏在线免费观看 | 香蕉网在线播放 | 亚洲精品视频网址 | 97碰碰精品嫩模在线播放 | 超碰在线观看97 | 奇米影视999| 美女视频黄频大全免费 | 中文字幕一区二区三区乱码在线 | 欧洲精品视频一区二区 | 蜜臀av性久久久久蜜臀av | 精品久久久久久久久久久久久久久久 | 一区二区三区国产精品 | 91亚洲精品在线观看 | 精品久久片 | 黄色中文字幕 | www免费看片com | 九九视频在线观看视频6 | 亚洲激色 | 久久高清av | 91九色丨porny丨丰满6 | 久久99亚洲热视 | 欧美性生活一级片 | 91天天操| 天天操月月操 | 999久久精品| 久久亚洲婷婷 | 天天射天天操天天干 | 亚洲免费色 | se视频网址| 99热超碰在线 | 久久人人97超碰精品888 | 日本三级吹潮在线 | 久久久久久久久影院 | 色婷婷精品大在线视频 | 欧美日韩在线播放 | 国产 日韩 欧美 中文 在线播放 | 奇米影视8888 | 亚洲aⅴ免费在线观看 | 激情影院在线 | www五月| 五月天色综合 | 99久久99久国产黄毛片 | 伊人色综合久久天天网 | 日韩视频一二三区 | 18国产精品福利片久久婷 | 国产精品麻豆三级一区视频 | 久久久精品欧美一区二区免费 | 日韩免费三级 | 国内成人精品2018免费看 | 中文字幕一区二区三区乱码在线 | 91免费在线视频 | 91av在线视频播放 | 成年人视频在线观看免费 | 五月婷婷一区二区三区 | 91精品在线播放 | 99国产免费网址 | 日p视频在线观看 | 国产小视频免费在线观看 | 91激情视频在线观看 | 久久视频在线 | 丁香六月久久综合狠狠色 | 婷婷综合亚洲 | 成人av高清在线 | 美女免费视频一区 | 久久久久久草 | 亚洲天天 | www黄在线 | www国产在线 | 欧美激情精品久久久久 | 午夜精品福利在线 | 天天操天天拍 | 久久国产午夜精品理论片最新版本 | 国产免费中文字幕 | 亚洲乱码一区 | 国产亚洲精品久 | 国产99久久九九精品免费 | 久久99国产精品免费网站 | 国产一区国产二区在线观看 | 99re8这里有精品热视频免费 | 福利视频一区二区 | 国产99久久久久久免费看 | 国产精品丝袜久久久久久久不卡 | 欧美在线1区| 日韩小视频 | 午夜久久影院 | 色视频在线观看 | 国产亚洲精品成人av久久影院 | 亚洲国产精选 | 不卡的av在线 | 免费一级特黄录像 | 国产精品一区二区你懂的 | 成人资源网 | 91资源在线视频 | 国产成a人亚洲精v品在线观看 | 欧美日韩国产精品久久 | 插久久 | 亚洲激情影院 | 免费在线观看av片 | 九九热在线观看视频 | 天堂激情网 | 日韩中字在线 | 亚洲国产精品电影在线观看 | 亚洲精品免费视频 | 又黄又爽又无遮挡的视频 | 亚洲日本成人网 | 亚洲免费小视频 | 在线观看成年人 | 亚洲欧洲av| 亚洲欧美乱综合图片区小说区 | 中文字幕a∨在线乱码免费看 | 狠狠狠干 | 久久国产一二区 | 狠狠色丁香婷婷综合最新地址 | 日本成人免费在线观看 | 国产99精品在线观看 | 最新国产在线观看 | 欧美成人免费在线 | 日韩a在线观看 | 国产精品久久久毛片 | 亚洲免费观看视频 | 九九99靖品| 日韩午夜视频在线观看 | 97超碰人人澡人人爱学生 | 亚洲专区一二三 | 天天干天天干天天干天天干天天干天天干 | 玖玖精品在线 | 久久久久久久久网站 | 在线观看中文字幕亚洲 | 成人在线播放免费观看 | 欧美一级免费在线 | 中文字幕免费观看全部电影 | 91av短视频 | 国产精品一区二区美女视频免费看 | 人人爽影院 | 婷婷在线色 | 中日韩三级视频 | 九九九九精品九九九九 | 噜噜色官网| 99久久精品久久亚洲精品 | 婷婷六月天综合 | 99在线国产 | 天天爽人人爽 | 日本系列中文字幕 | 亚洲日本国产精品 | 日韩av偷拍| 日韩在线 | 国产一区二区在线免费视频 | av电影中文字幕在线观看 | 欧美aa级| 日韩在线精品一区 | 国产一区网址 | 久草视频免费在线观看 | 天堂久久电影网 | 五月婷婷黄色网 | 国产精品久久久久久一区二区三区 | 精品一区精品二区高清 | 97视频在线 | 国产一级免费视频 | 久久精品欧美一区二区三区麻豆 | 国产999精品久久久久久麻豆 | 99九九热只有国产精品 | 日韩在线免费不卡 | 男女拍拍免费视频 | 精品成人a区在线观看 | 亚洲精品成人网 | 精品视频区 | 日韩精品欧美一区 | 免费黄色a级毛片 | 欧美极品一区二区三区 | 玖玖国产精品视频 | 国产精品久久久久久999 | 国产精品麻豆视频 | 三级av免费观看 | 一区av在线播放 | 国产91精品一区二区 | av免费高清观看 | 黄色av电影免费观看 | 久久不卡国产精品一区二区 | 日韩有码网站 | 久久婷婷视频 | 国产资源网站 | 成人性生交大片免费观看网站 | 国产理论片在线观看 | 草久草久 | 天天综合视频在线观看 | 操天天操 | 人人澡人 | 免费观看国产视频 | 中文字幕 成人 | 国产一区在线精品 | 日韩精品国产一区 | av电影av在线| 久久久精品一区二区 | 中文字幕日韩在线播放 | 日本成址在线观看 | 久久91久久久久麻豆精品 | 99热这里只有精品1 av中文字幕日韩 | 亚洲综合色视频在线观看 | 在线性视频日韩欧美 | 成年人免费电影在线观看 | 激情av综合 | 国产精品久久久久久久电影 | 97人人超| 婷婷成人亚洲综合国产xv88 | 国产精品美女久久久久久网站 | 日韩电影在线观看一区二区 | 人人爽人人爱 | 中文字幕av最新 | 久99精品 | 综合色综合 | 18国产精品白浆在线观看免费 | 久久超碰免费 | 久久免费一| 亚洲精品99| 91激情小视频 | 亚洲经典精品 | 成人精品一区二区三区电影免费 | 精品国产一二三 | 日韩精品视频在线观看免费 | 97国产在线观看 | 中文字幕乱码电影 | 黄色av免费看 | 97在线看 | 免费在线激情电影 | 欧美淫aaa免费观看 日韩激情免费视频 | 欧美aaa大片 | 国产美女视频网站 | 懂色av懂色av粉嫩av分享吧 | 久久精品站 | 国产99re| 香蕉视频日本 | 国产99免费 | 国外成人在线视频网站 | 久久精品—区二区三区 | 国产精品96久久久久久吹潮 | 五月婷在线| 在线亚洲午夜片av大片 | 国产精品永久在线观看 | 色的网站在线观看 | 欧美一区二区在线看 | 久热色超碰 | 97视频人人 | 成人黄色在线看 | 99精品视频播放 | 久久精品人 | 天堂中文在线视频 | 一区二区三区韩国免费中文网站 | 亚洲 欧美 日韩 综合 | 日本三级国产 | 免费高清在线视频一区· | 91精品在线免费视频 | 夜色成人av| 亚洲婷婷在线 | 一区二区免费不卡在线 | 午夜成人免费影院 | 久久国产精品99久久久久久丝袜 | 日韩亚洲欧美中文字幕 | 国产麻豆精品久久一二三 | 99精品久久久久久久久久综合 | 亚洲一级理论片 | 国产午夜精品av一区二区 | 国产精品一区二区三区久久 | 97精品国产97久久久久久粉红 | 天天干天天干天天色 | 日本动漫做毛片一区二区 | 亚洲 欧美 综合 在线 精品 | 久久久国产精品一区二区三区 | 国产成人精品三级 | 亚洲精品啊啊啊 | 国产99在线免费 | 超碰在线观看99 | 亚洲精品大全 | 久久精品这里精品 | 岛国片在线 | 99久国产 | 欧美成人91 | 久久久久久久久久久免费 | 欧美黑吊大战白妞欧美 | 热久久免费视频精品 | 黄色av免费在线 | 亚洲国产精品成人综合 | 99精品小视频 | 国产五码一区 | 日韩欧美观看 | 久久久久黄 | 波多野结衣在线观看一区二区三区 | 欧美在线一二 | 免费观看成人网 | 69人人| 亚洲精品456在线播放 | 久久视频二区 | 亚洲成人网在线 | 国产精品久久久久久高潮 | 国产精品毛片一区视频播 | 美女国产精品 | 在线亚洲播放 | 久久久久久国产精品亚洲78 | 黄色免费网站下载 | 91视频在线观看大全 | 国产在线a免费观看 | 久久久国产99久久国产一 | 国产日韩欧美在线免费观看 | 亚洲高清色综合 | 免费黄在线看 | 在线观看中文字幕 | 国产91在线 | 美洲 | 夜夜躁日日躁狠狠久久88av | 国产男女爽爽爽免费视频 | 在线播放亚洲 | 国产精品成人一区二区三区吃奶 | 有码中文字幕 | 色婷婷国产| 国产日产欧美在线观看 | 欧美日韩中文国产 | 一本一本久久a久久精品综合妖精 | 4438全国亚洲精品在线观看视频 | 国产精品国产三级国产aⅴ无密码 | 91精品1区2区 | 日韩av女优视频 | 国产黄色美女 | 欧美一区三区四区 | 亚洲精品国内 | а中文在线天堂 | 久久高清国产视频 | 91精品久久香蕉国产线看观看 | 国产丝袜制服在线 | 亚洲视频资源在线 | 久久国产精品视频观看 | 亚洲a资源| 国精产品999国精产品视频 | 97成人精品视频在线观看 | 国产高清免费在线观看 | 精品国内自产拍在线观看视频 | 日韩三级不卡 | 91电影福利 | 国产精品久久久久久一区二区三区 | 玖玖视频在线 | 日韩视频精品在线 | 欧美日本一二三 | 四虎国产免费 | 天天操伊人 | 激情av在线播放 | 81国产精品久久久久久久久久 | 最新影院| 超级碰视频 | 久久免费片 | 久久免视频 | www黄在线 | 狠狠操综合网 | 免费色视频在线 | 中文字幕国产一区 | 国产精品白虎 | 天天综合网天天综合色 | 日韩不卡高清视频 | 手机成人在线电影 | 91试看 | 国产中文字幕一区 | 国产精品一级在线 | 日韩av专区 | 久久99久久久久久 | 日韩久久久久久 | 日b视频在线观看网址 | 日韩国产精品一区 | 国产精品久久久久9999 | 手机看片福利 | 99久久久久| 中日韩欧美精彩视频 | 亚洲精品国产综合99久久夜夜嗨 | 天天艹天天 | 欧美精品国产综合久久 | 成人免费视频a | 成人在线免费看视频 | 色欧美成人精品a∨在线观看 | 在线免费91 | 国产伦精品一区二区三区四区视频 | 丝袜美女视频网站 | 狠狠操天天射 | 免费视频一二三区 | 欧美精品一区二区在线观看 | 日韩a免费 | 日韩免费二区 | 欧美日性视频 | 亚洲最大成人免费网站 | 国产精品99久久久久久宅男 | 99色婷婷 | 爱爱av网站 | 国产成视频在线观看 | 69视频在线| 国产黄在线免费观看 | 久久免费视频7 | 日日日日干| 丝袜少妇在线 | 欧美极品一区二区三区 | 日本色小说视频 | 韩日三级在线 | 精品一区二三区 | 久久久精品成人 | 97在线资源 | 最新影院 | 亚州人成在线播放 | 99久久精品免费看国产麻豆 | 97**国产露脸精品国产 | 欧美激情第一页xxx 午夜性福利 | 永久免费精品视频 | 国语对白少妇爽91 | 久久精品美女 | 日本精品久久久一区二区三区 | 一二区电影| 国产一区二区三区午夜 | 欧美粗又大 | 中文字幕一区二区三区在线视频 | 欧美性天天 | 最新av网站在线观看 | 欧美午夜精品久久久久久孕妇 | 在线亚洲午夜片av大片 | 亚洲国产成人高清精品 | 高清av网站 | 久久这里精品视频 | 日本久久91 | 精品专区一区二区 | 天天爽夜夜爽精品视频婷婷 | 综合网欧美| 久久女同性恋中文字幕 | 日日干天天爽 | 精品视频在线免费 | 日韩影视大全 | 在线 欧美 日韩 | 亚洲桃花综合 | 色综合天天狠天天透天天伊人 | 欧美日韩精品在线 | 成人黄色片在线播放 | 在线观看国产麻豆 | 亚洲精品中文字幕在线观看 | 久久免费视频8 | 黄色福利视频网站 | 一本一道久久a久久综合蜜桃 | 精品一区二区三区在线播放 | 日本少妇视频 | 香蕉视频免费在线播放 | 黄色一级免费 | 美女网站视频一区 | 成年人精品 | 国产成人精品女人久久久 | 中文字幕频道 | 激情在线免费视频 | 日韩夜夜爽 | 免费看片成年人 | 91视频在线播放视频 | av成人在线网站 | 人人澡人人澡人人 | 中文字幕在线视频一区 | 久久国产手机看片 | 精品一区二区av | 成人cosplay福利网站 | 久久少妇| 天天操天天操天天 | 亚洲视频大全 | 日韩精选在线 | 亚洲国产精品免费 | 成人av高清在线观看 | 在线观看国产日韩欧美 | 亚洲少妇激情 | 欧美午夜剧场 | 天天色播| 免费福利视频网站 | 国产精品福利在线观看 | 中文字幕高清有码 | 九九热在线观看 | 国产最新视频在线观看 | 免费观看成人网 | a色视频 | 欧美一级片在线观看视频 | 中文字幕 国产视频 | 亚洲精品自拍视频在线观看 | 亚洲永久精品一区 | 亚洲播放一区 | 精品国产亚洲日本 | 欧美老女人xx | 免费在线成人 | 欧美亚洲精品一区 | 在线国产观看 | 欧美午夜久久久 | 六月天色婷婷 | wwwwww国产| 在线观看视频在线 | 亚洲狠狠婷婷综合久久久 | 激情网站网址 | japanesexxxxfreehd乱熟 | 99在线观看视频 | 夜夜天天干 | 中中文字幕av | 日韩欧美高清不卡 | 叶爱av在线| 国产一级做a爱片久久毛片a | 热久久99这里有精品 | 美女搞黄国产视频网站 | 国产九色视频在线观看 | 欧美精品一区二区免费 | 国产亚洲精品成人av久久ww | 在线观看日本韩国电影 | 成人在线播放av | 蜜桃视频在线视频 | 精品一区在线 | 久久久久国产精品免费网站 | 波多野结衣小视频 | 国产一级一片免费播放放a 一区二区三区国产欧美 | 91伊人| 99久久日韩精品视频免费在线观看 | 精品在线视频观看 | 免费日韩一区二区三区 | 五月婷婷激情综合网 | 欧美孕交vivoestv另类 | 狠狠躁夜夜躁人人爽超碰97香蕉 | 最新亚洲视频 | www.日本色 | 久久在线播放 | 色永久免费视频 | 狠狠色丁香婷婷综合基地 | 国产色婷婷在线 | 安徽妇搡bbbb搡bbbb | 国产亚洲无 | 国产精品一区二区果冻传媒 | 久久免费视频3 | 69av国产 | 欧美福利在线播放 | 日韩精品中文字幕在线观看 | 婷婷丁香色综合狠狠色 | av黄色av| 99久热在线精品视频 | a'aaa级片在线观看 | 久久国语 | 97超碰在线播放 | 日日干av | 麻豆手机在线 | www..com毛片| 91在线观看欧美日韩 | 精品二区视频 | 天天综合网天天 | 欧美成人理伦片 | 久草手机视频 | 国产91在线 | 美洲 | 国产99久久久国产精品成人免费 | 97人人爽人人| 激情网站免费观看 | 欧美精品做受xxx性少妇 | 国产一区二区久久久 | 欧美国产日韩一区二区三区 | 日韩超碰在线 | 国产精品黄 | 色综合久久久久综合 | 一级片免费观看视频 | 黄色国产精品 | 天天拍天天爽 | www日韩视频 | 天天干人人 | 国产亚洲精品久久久久秋 | 国产黄色精品在线 | 西西444www大胆高清视频 | 成人av动漫在线观看 | www..com黄色片 | 久草电影在线观看 | 91一区啪爱嗯打偷拍欧美 | 国产原创在线视频 | 91日韩精品视频 |