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

ROG:高性能 Go 實現

開發
本文根據字節跳動服務框架團隊研發工程師在 CloudWeGo 技術沙龍暨三周年慶典中演講內容《ROG——高性能 Go 實現》整理。

ROG 之緣起

ROG 的誕生是因為我們一部分業務使用 Rust 重寫之后,獲得了非常好的收益,比如 AVG、CPU、MEM、P99,這些數據表現非常好,大約節省了接近 50%的 CPU,內存大大降低。這個性能數據讓人眼紅,因此團隊考慮既然 Rust 有這么好的性能,我們有沒有辦法提升一下用戶在 Go 上的性能?

圖片

在和一些用戶的對接中我們發現,讓用戶把 Go 業務通過 Rust 重寫,難度其實非常大。很多用戶會抱怨 Rust 的一些問題讓他們很痛苦,比如,Rust 生命周期太復雜,泛型系統太復雜,報錯看不懂,編程速度慢等等。因為這一系列問題,所以讓用戶把原來的 Go 項目通過 Rust 重寫,對于用戶來說是很難推動的事情。

于是,我們就有了一個大膽的想法,如果我們可以像使用 Rust 那樣的編譯技術去生成性能更好的可執行文件,同時使用 Rust 重寫 Go 的 Runtime 和 GC 這兩個核心組件,再通過幾乎零開銷的 FFI(Foreign Function Interface) 方式來支持 Rust 和 Go 之間的互調,是不是可以讓用戶 Go 的源碼也能達到接近 Rust 的性能。這就是我們的初衷,因此有了 ROG 這個項目。

ROG 進展

我們目前測試了一些簡單的場景,比如快排和二分、Simple Lisp。這些都是通過 time 命令來計算兩個二進制文件執行所需要的時間。目前在快排、二分上,Go 的執行需要 5.97s,ROG 的執行需要 4.12s,在 Simple Lisp 這個項目上,Go 需要 8.17s,ROG 執行只需要 7.09s。

圖片

從以上幾個基本數字來看,在一些簡單的場景下,ROG 會比 Go 性能好很多。但這只是一些非常簡單的 case。如果面對一些非常復雜的 case 呢?比如在復雜的微服務場景下,ROG 會有怎樣的性能領先?

ROG 在上個季度剛好能夠支撐 Kitex Benchmark 跑起來,目前我們完成了一次壓測。

圖片

我們使用 Kitex 官方的 Benchmark 工具完成了簡單的 RPC 調用測試(https://github.com/cloudwego/kitex-benchmark)。

目前,我們只測試了連接數 100,測試包大小 1024kb 的體積。在這個測試中,Go 的 QPS 可以達到 27W,ROG 28W。雖然 ROG 的 QPS 只比 Go 領先了一點,但是 P99 上有很大的提升。我們在測試過程中發現了 ROG 還有很多可以挖掘能力,只是還需要進一步優化。

架構設計

通過剛才幾個性能場景測試,我們發現 ROG 相比 Go 在不同的場景下,多多少少有一些領先。但是為什么 ROG 相比于 Go 會有這樣的領先呢?早期我們其實也經歷過 ROG 測試結果比 Go 還差 50%的狀態。所以想先給大家介紹一下我們的設計架構。

圖片

從圖中可以看出,首先會有一個 ROG 的前端來處理用戶的 Go 源碼,在前端經歷 Parser 解析后生成 AST(Abstract Syntax Tree),做符號解析,每個函數,每個類型的符號。然后進行類型檢查,分析出函數的簽名以及每個變量的類型。這是一套非常常見的前端處理流程。

在經歷這個過程之后,會產生一個中間語言叫做 MIR(Rust's Mid-level Intermediate Representation),之后會基于 MIR 去做一些前端時的優化,比如編譯時計算、常量傳播計算、逃逸分析(能夠分析出哪些變量應該被逃逸到堆上去)、Inliner、SROA,以及對于特定 Go 函數的優化。

在這些優化算法處理之后,會生成一份 LLVM IR(Intermediate Representation),之后把它交給 ROG 后端。ROG 后端是我們自己魔改的一個 LLVM 版本。在 LLVM codegen 階段我們給每個函數插入了一些對應的 Stack Check 以及對應的 STW(Stop The World) Checkpoint 指令,同時生成相應的 GC Barrier。

優化好之后就生成一份比較高質量的二進制代碼了。這是對于 Go 語言的處理,而對于 Go 的 Runtime & GC 這部分,我們基本上完全是重寫的。通過 Rust 重寫之后,我們把這些代碼通過自己維護的一個 Rust 版本去構建、打包好,調成對應的 LLVM 文件,最后和用戶的 Go 代碼連接起來,形成一個最終的二進制文件。這就是我們的編譯流程。

收益來源

這個編譯架構為什么相比 Go 或多或少有些性能優化呢?有哪些領先點?

其實領先點主要來源于三個部分。

圖片

第一部分,編譯優化。因為 ROG 利用了 LLVM 積累多年的編譯優化算法,能夠生成一些性能更好的代碼,而 Go 的編譯優化會為編譯速度做出一定犧牲。

第二部分,ROG 提供了跨語言 LTO(Link Time Optimization) 以及 FFI,通過幾乎零開銷的方式調用 Rust 提供的方法,因此在一些需要更高性能的場景,用戶可以使用 Rust 開發,由 ROG 進行編譯并進行調用。而 Go 對于 FFI 會使用 CGO,并且 CGO 會存在一些 overhead。

第三部分,Runtime & GC。ROG 完全使用 Rust 重寫,再通過上面提供的 FFI 來保證調用的性能,而 Go 的 Runtime & GC 則是完全使用 Go 原生實現的。單純從語言的表達能力上限來說,Go 遠不如 Rust,所以如果我們通過 Rust 來重寫 Runtime & GC 這兩部分組件,理論上會比 Go 擁有更好的性能。

面臨的挑戰

介紹完性能來源之后,可能很多人會有疑問,貌似我們的主要性能受益都是來自于 LLVM。LLVM 本身優化已經做得很好了,我們做的是不是就是非常簡單地把一個 Go 源碼翻譯到 LLVM 就行了呢?

其實整個事情并沒有那么簡單,在這一年里,我們踩過非常多的坑。以下舉幾個簡單的例子。

Go Runtime

如果大家之前了解過 TinyGo,就會發現 TinyGo 的思路和 ROG 非常接近——TinyGo 也是把 Go 的源碼給翻譯到 LLVM。我們可以回想下在使用 TinyGo 的時候遇到過什么問題。

首先,TinyGo 需要用戶手動通過 runtime.Gosched 這個函數來進行協作調度,所以它對用戶代碼是有影響的。如果用戶沒有在關鍵的地方去插入這個函數調度,會對它的調度產生影響。另外,TinyGo 本身也不支持多線程,并且缺少相應的 channel timer reflect 等 lib 的支持。

而 ROG 把這些問題都解決了,ROG 會在編譯階段插入代碼,完成協作式調度,并且 ROG 設計的本身也是為了高性能,所以自然會對多線程進行支持,并且 ROG 對于 channel timer reflect 全部都重寫。對于我們來說,解決 TinyGo 的不足的過程也相當艱難,畢竟重寫整個 Runtime & GC 等是一個非常大的工作量。

圖片

Safety FFI

假設如果我們要在 Go 提供 FFI,當用戶寫出這樣的代碼會發生什么事情?

圖片

左邊這張圖是用戶寫的一份 Go 代碼,里面有函數。rog_test(a *int32) 這個函數可能就是 FFI 提供的一個外部函數。如果用戶直接去調用這個外部函數,而 rog test 本身是由 Rust 實現的,如右圖,當我們寫出這樣的代碼的時候,會發生什么事情?

因為 rust_tup 被 Rust Allocator 管理,Go GC 無法掃描到這個變量,所以這個變量 a 也無法被 GC 掃描到,而 “a” 這個變量是被 Go 的 Allocator 管理的,所以如果  a 無法被 GC 掃描到,那么 a 就會被 free 掉。但是這個時候, rust_tup 仍然會持有變量 a 的指針,在 Go 那邊相當于是一個對外內存引用了 Go 的一個對象,但是因為 Go 掃不到這個對象,所以這個對象就被 free 掉了,但是對外內存仍然引用這個指針。

當我們提供 FFI 的時候,很有可能會面臨這樣的情況。這種情況該怎么處理?在 ROG 這邊,我們就會通過一個模改的 Rust 編譯器,提供一個 Managed Chekcer 去限制用戶寫出這樣的代碼,在編譯器階段保證用戶不會寫出這樣的代碼,保證 FFI 的安全性。這是 ROG 解決這個問題的思路。

Roadmap & 未來規劃

CGO

目前 ROG 雖然能跑過 Kitex Benchmark,并在內部一些服務上做了測試,但它仍有很多功能需要改進,比如 CGO。CGO 是 Go 語言用來提供 FFI 的一種方案,但 ROG 的 FFI 是通過一種非常簡單粗暴的方式提供的。目前 ROG 的 FFI 需要用戶手工去標記 ROG,寫上 rog:linkname 標記。這樣我們在鏈接時才能鏈接上對應的符號。而 CGO 可以讓用戶簡單的直接在 Go 文件的一個注釋里寫上 C 代碼 import C,通過 import c 這個 package 來進行調用。

從 FFI 來說,CGO 會比現在的 ROG 方便很多,而且已有很多的開源庫,以及字節內部一些服務,他們也在使用 CGO。我們在未來會支持 CGO,兼容 CGO 的表達方式,提供 ROG 需要的 FFI,生成 ROG 需要的 FFI 代碼進行調用。

宏/編譯器生成代碼

Rust 宏在我看來是一個非常強的功能,因為 Rust 宏可以簡單地在每個 Rust 進行標記,申明這個結構可以提供 Serialize(序列化)和 Deserialize(反序列化)這兩種方法。這樣就可以在編譯時為它生成序列化和反序列化的代碼,直接進行調用,而不需要像 Go 原始的 JSON,它有反射開銷。而這種反射開銷在需要高性能的序列化場景會有很大的性能開銷。為了解決 Go 的反射開銷,sonic 做出了 JIT 方案,而 JIT 對開發 sonic 的開發者來說,負擔是非常大的。

圖片

那么如果我們可以把 Rust 宏的理念引入到 ROG 中,會有什么樣的體驗?

首先,更好的開發體驗。以 Kitex 舉例,我們可以直接在編譯時,通過宏為每個 IDL 生成 clint 的代碼,這樣就不需要用戶去手動調用一些 main 去生成。

其次,更高效的序列化。像 JSON 這種序列化,我們可以通過類似 Rust 宏的方式在編譯時生成好序列化和反序列化所需要的代碼,直接調用,這樣就可以省掉反射的開銷。

圖片

關于宏帶來的案例,我們還在繼續探索中,之后我們會基于宏做一些更好更方便的嘗試。這也是我們對于宏的規劃。但是不得不提到的是,宏的出現會對 Go 本身有一定的影響,因此可能只會通過注釋的方式去提供,保證對 Go 語法的兼容性;并且只會在 JSON 等序列化這些地方進行一些替換,保證用戶的開發體驗不會受到影響。

開源

ROG 未來肯定會進行開源,并且貢獻到社區。

目前我們的想法是 2024 年先在公司內部完成一些業務的試用,能夠穩定地上生態環境,并且能夠取得一定的收益。在這些都穩定并且處理好 Go 本身大部分特性問題之后,才會將其開源。因此如果順利,最早可能會需要等到 2025 年的第二季度才會去準備開源工作。

責任編輯:龐桂玉 來源: 字節跳動技術團隊
相關推薦

2022-03-21 14:13:22

Go語言編程

2021-08-13 09:06:52

Go高性能優化

2023-03-10 09:11:52

高性能Go堆棧

2021-05-27 10:02:57

Go緩存數據

2025-02-05 12:09:12

2023-12-26 00:58:53

Web應用Go語言

2025-01-13 13:00:00

Go網絡框架nbio

2024-04-28 10:17:30

gnetGo語言

2024-07-31 08:31:13

2019-04-08 10:09:04

CPU緩存高性能

2023-12-01 07:06:14

Go命令行性能

2023-12-14 08:01:08

事件管理器Go

2025-10-31 10:04:05

2025-10-09 03:00:00

2024-01-29 08:26:13

Span高性能數組數據結構

2024-07-05 09:41:42

2021-07-27 16:01:29

高并發定時器高性能

2021-08-12 16:42:09

WireGuardWindows內核NT

2011-09-23 13:07:32

Platform

2024-02-26 07:43:10

大語言模型LLM推理框架
點贊
收藏

51CTO技術棧公眾號

久久久久久久久国产精品| 日韩欧美成人一区二区| 色99中文字幕| 国产精品伦一区二区三区| 综合久久十次| 亚洲成人av片| 国产黄色特级片| 欧美r级在线| 成人精品小蝌蚪| 日韩美女免费线视频| 97在线观看免费视频| 国产一区二区三区亚洲综合| 欧美日韩免费观看中文| 亚洲视频小说| 日韩一级片免费| 欧美bbbbb| 欧美激情在线一区| x88av在线| 一区二区亚洲视频| 欧美午夜影院一区| 国产美女在线一区| 视频免费一区| 91麻豆国产在线观看| 成人网址在线观看| 中文字幕亚洲乱码熟女1区2区| 91成人国产| 亚洲欧美另类在线观看| 美女被爆操网站| 中韩乱幕日产无线码一区| 亚洲国产成人高清精品| 中文字幕在线中文字幕日亚韩一区| 欧美一级视频免费| 国产精一品亚洲二区在线视频| 国产suv精品一区二区三区88区| 国产成人av免费在线观看| 精品一区在线| 日韩av一区在线| 超碰人人cao| 四虎影视国产精品| 欧美特级限制片免费在线观看| 成年人看的毛片| 国产不卡在线| 国产精品美女视频| 日本一区二区三区四区在线观看| 婷婷视频在线观看| 成人在线一区二区三区| 51国产成人精品午夜福中文下载| 中文字幕日韩第一页| 久久最新视频| 欧美亚洲国产视频小说| 日本在线视频免费| 狠狠入ady亚洲精品经典电影| 日韩在线视频线视频免费网站| 偷拍夫妻性生活| 日韩高清电影免费| 国产视频一区在线| 疯狂揉花蒂控制高潮h| 国产图片一区| 精品日韩一区二区| 亚洲熟妇一区二区| 波多野结衣欧美| 亚洲丁香久久久| 完美搭档在线观看| 欧美精品中文字幕亚洲专区| 精品国产一区二区精华| 中文字幕第九页| 国产一区丝袜| 日韩成人在线观看| 国产三级视频网站| 国产成人精品999在线观看| 亚洲精品一区二三区不卡| 中文字幕 亚洲一区| 偷拍视屏一区| 伊人男人综合视频网| 国产一级淫片久久久片a级| 色135综合网| 久久亚洲精品一区| 丰满少妇高潮久久三区| 亚洲国产精品第一区二区| 97超级碰碰碰| 国产无遮挡又黄又爽又色视频| 男人的j进女人的j一区| 成人自拍性视频| 国产肥老妇视频| 成人免费三级在线| 茄子视频成人在线观看| 国产在线更新| 午夜精品免费在线观看| 国产成人精品视频ⅴa片软件竹菊| 国产精品一区二区免费福利视频| 欧美放荡的少妇| 中文字幕18页| 牲欧美videos精品| 色吧影院999| 久久精品久久精品久久| 久久亚洲一区| 亚洲xxxxx性| 亚洲欧洲成人在线| 亚洲视频免费看| 国产成人无码a区在线观看视频| 爱情电影社保片一区| 911精品产国品一二三产区| 扒开伸进免费视频| 久久影院一区| 97碰在线观看| 国产又粗又猛又黄| 成人av电影免费在线播放| 色一情一乱一伦一区二区三欧美 | av2020不卡| 色播五月激情综合网| 中文字幕av一区二区三区人妻少妇 | 亚洲精选视频免费看| 黄色影院一级片| 91精品亚洲一区在线观看| 亚洲美女久久久| 亚洲国产成人精品综合99| 日韩av一级片| 狠狠久久综合婷婷不卡| 黄色动漫在线观看| 在线一区二区三区四区五区| 中国特级黄色片| 欧美电影一二区| 4444欧美成人kkkk| 亚洲精品久久久蜜桃动漫 | 美女又黄又免费的视频| 精品久久精品| …久久精品99久久香蕉国产| 99久久婷婷国产一区二区三区| 久久久五月婷婷| 国产av国片精品| 24小时成人在线视频| 亚洲欧美日韩另类| 日韩欧美三级在线观看| 国产精品影音先锋| 亚洲精品视频一区二区三区| 英国三级经典在线观看| 亚洲第一色在线| 草视频在线观看| 久久www免费人成看片高清| 日本一区二区三区www| 综合日韩av| 欧美精品一区二区高清在线观看| 国产性xxxx| 国产一区在线观看麻豆| 亚洲黄色成人久久久| 欧洲成人一区| 亚洲欧美在线播放| 男人天堂2024| 久久一区二区视频| 日韩在线综合网| 青青草久久爱| 91精品国产高清久久久久久久久| 亚洲精品国产一区二| 一区二区三区在线播放| 又色又爽又黄18网站| 激情91久久| 高清日韩一区| 国产美女一区视频| 亚洲精品国精品久久99热一| 国产精品第九页| 成人一区二区三区在线观看| 亚洲国产精品无码av| 国产厕拍一区| 欧美专区在线视频| 国产福利小视频在线| 在线免费观看日本一区| 欧美日韩中文字幕视频| 美女视频一区二区三区| 婷婷视频在线播放| 精品午夜av| 欧美极品xxxx| 日韩av资源| 色婷婷综合久色| 你懂得视频在线观看| 国产一区二区三区免费看| 成人国产在线看| 麻豆精品99| 国产精品高潮粉嫩av| 一广人看www在线观看免费视频| 欧美人妇做爰xxxⅹ性高电影| 国内偷拍精品视频| 成人av在线网| 中文字幕在线观看第三页| 99久久.com| 国产精品一区二区av| 欧美成人性网| 精品精品国产国产自在线| 性猛交富婆╳xxx乱大交天津| 午夜成人免费视频| 天堂在线中文视频| 国产成人免费视频精品含羞草妖精| 国产av人人夜夜澡人人爽麻豆| 一区二区三区日本久久久| 国产精品午夜一区二区欲梦| 亚洲淫性视频| 亚洲精品一区二区久| 国产精品久久久久毛片| 欧美日韩国产在线| 国产尤物在线播放| 91蝌蚪porny成人天涯| 午夜剧场在线免费观看| 日韩亚洲精品在线| 婷婷五月色综合| 国产精品中文字幕制服诱惑| 国产美女91呻吟求| 黄毛片在线观看| 久久中文字幕在线| 免费av在线电影| 精品女同一区二区| 色婷婷久久综合中文久久蜜桃av| 亚洲国产成人av网| 欧美性x x x| 久久综合九色综合欧美98 | 亚洲一区二区小说| 51ⅴ精品国产91久久久久久| 成人看av片| 亚洲性视频网址| 免费观看成年人视频| 欧美精品在线视频| 无码人妻一区二区三区免费| 亚洲一区二区av在线| av在线免费播放网址| 久久久噜噜噜久久中文字幕色伊伊| 波多野吉衣在线视频| 青青草国产精品97视觉盛宴| 欧美日韩在线中文| 亚洲私人影院| 四虎4hu永久免费入口| 色婷婷亚洲mv天堂mv在影片| 蜜桃av噜噜一区二区三| 中文字幕一区日韩精品| 91老司机在线| 欧美一区=区三区| 国产精品日韩电影| 日韩中文影院| 日韩av三级在线观看| 春色校园综合激情亚洲| 高清一区二区三区四区五区| 日本片在线看| 欧美片一区二区三区| 国产区在线看| 久久亚洲影音av资源网| 日韩精品黄色| 中文字幕精品在线| 岛国在线视频免费看| 亚洲欧美日韩中文视频| 深夜福利在线看| 亚洲精品美女在线观看播放| 日韩中文字幕免费在线观看| 欧美sm极限捆绑bd| 丁香六月天婷婷| 亚洲第一天堂无码专区| 丰满少妇高潮在线观看| 精品国产第一区二区三区观看体验| 亚洲精品一区二区三区四区| 91精品国产色综合久久不卡蜜臀 | 视频在线观看一区二区三区| 成人av一级片| 亚洲在线网站| 无码人妻丰满熟妇区毛片| 美女精品一区| 91色国产在线| 久久国产精品色婷婷| 日本高清一区二区视频| 国产河南妇女毛片精品久久久| 极品人妻一区二区| proumb性欧美在线观看| 野花社区视频在线观看| 国产三级欧美三级日产三级99| 国产中年熟女高潮大集合| 国产欧美精品一区二区色综合朱莉 | 亚洲成人av中文字幕| 日韩中文字幕免费在线观看| 精品视频久久久久久久| 国产福利片在线| 日韩一区二区欧美| 日韩专区av| 琪琪第一精品导航| 国产成人精品一区二区三区免费| 91在线精品视频| 懂色av一区二区| 久久伦理网站| 欧美高清视频在线观看mv| 路边理发店露脸熟妇泻火| 亚洲激情二区| 欧美自拍小视频| 国产福利一区二区三区视频| 国产麻豆天美果冻无码视频 | 国产激情小视频在线| 欧美极品少妇xxxxⅹ喷水| 粉嫩一区二区三区| 91网站免费观看| 色橹橹欧美在线观看视频高清| 一区二区免费在线视频| 亚洲一本视频| 15—17女人毛片| 丁香激情综合五月| 亚洲午夜精品久久久久久高潮| 亚洲免费观看高清完整版在线观看熊 | 国产精品毛片无遮挡高清| 久久精品国产亚洲AV无码男同| 在线观看一区二区视频| wwwav在线播放| 亚洲摸下面视频| 中文字幕伦理免费在线视频 | 日韩免费不卡视频| 在线播放中文一区| 日中文字幕在线| 欧美另类在线播放| 91精品店在线| 久久国产精品99久久久久久丝袜| 午夜精品一区二区三区国产| www.浪潮av.com| 激情五月婷婷综合| 一区二区三区四区免费| 亚洲电影激情视频网站| 国产三级第一页| 亚洲人成绝费网站色www| 国产美女一区视频| 成人有码视频在线播放| 精品理论电影在线| 91九色在线观看视频| 国产福利精品一区| fc2ppv在线播放| 欧美影院午夜播放| 韩国福利在线| 国产91ⅴ在线精品免费观看| 一区二区三区亚洲变态调教大结局| 亚洲一卡二卡三卡| 日韩 欧美一区二区三区| 中国毛片在线观看| 欧美色欧美亚洲高清在线视频| 空姐吹箫视频大全| 九九热最新视频//这里只有精品| 巨大黑人极品videos精品| 水蜜桃一区二区| 久久久噜噜噜久久狠狠50岁| 网站免费在线观看| 精品动漫一区二区| 五月婷婷综合久久| 97在线视频免费| 久久久亚洲欧洲日产| 日本男女交配视频| 国产成人精品三级| 国产高清在线免费观看| 欧美一区二区三区色| 在线观看免费视频你懂的| 1区1区3区4区产品乱码芒果精品| 这里只有精品在线| 欧美精品色视频| 一区二区三区日韩精品| 亚洲AV午夜精品| 欧美黄色www| 成人性生交大片免费看96| 女人帮男人橹视频播放| 成人精品一区二区三区四区 | 黄色免费在线播放| 国产精品久久999| 久久亚洲精品中文字幕蜜潮电影| 亚洲娇小娇小娇小| 亚洲天天做日日做天天谢日日欢 | 色网在线免费观看| 欧美一区二区三区精美影视| 视频一区二区欧美| 国产又粗又长又黄的视频| 欧美电影一区二区| 亚洲第一图区| 国产精品一区二区欧美| 久久动漫亚洲| 女人裸体性做爰全过| 欧美一区二区精品久久911| 美女航空一级毛片在线播放| 久久精品五月婷婷| 免费久久99精品国产| 男人的天堂久久久| 亚洲国产精品va| 久久亚洲精品爱爱| 粉嫩av一区二区三区天美传媒| 成人黄页在线观看| 亚洲精品一区二三区| 久久在线免费视频| 女同一区二区三区| 亚欧美在线观看| 亚洲一区二区视频在线| 极品美乳网红视频免费在线观看 | 日韩精品在线观看av| 2020国产精品久久精品美国| 亚洲中文字幕一区二区| 久久人91精品久久久久久不卡| 国产精品一国产精品| 99中文字幕在线| 五月婷婷欧美视频| 色多多视频在线观看| 国产精品一码二码三码在线| 青娱乐精品视频| 久久久久久久久久99| 国产一区二区动漫| 国产精品15p| 日本在线播放一区二区| 精品毛片网大全|