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

漫步Facebook開(kāi)源C++庫(kù)Folly之string類(lèi)設(shè)計(jì)

開(kāi)發(fā) 后端
就在近日,F(xiàn)acebook宣布開(kāi)源了內(nèi)部使用的C++底層庫(kù),總稱(chēng)folly,包括散列、字符串、向量、內(nèi)存分配、位處理等,以滿(mǎn)足大規(guī)模高性能的需求。

這里是folly的github地址:https://github.com/facebook/folly

在folly項(xiàng)目的Overview.md中,談到了folly庫(kù)的初衷:

It complements (as opposed to competing against) offerings such as Boost and of course std. In fact, we embark on defining our own component only when something we need is either not available, or does not meet the needed performance profile.

除了小部分是對(duì)現(xiàn)有標(biāo)準(zhǔn)庫(kù)和Boost庫(kù)功能上的補(bǔ)充,大部分都是基于性能的需求而“重新制造輪子”。

特別是大規(guī)模下的性能需求,大規(guī)模下的性能追求是Folly統(tǒng)一的主題:

Good performance at large scale is a unifying theme in all of Folly.

為什么先談string類(lèi)?

一是因?yàn)閟tring幾乎是C++程序中最常用的“容器”,性能至關(guān)重要;

二是因?yàn)橹耙苍鴮?xiě)過(guò)一篇博客《std::string的Copy-on-Write:不如想象中美好》,研究了std::string的copy-on-write實(shí)現(xiàn)的優(yōu)缺點(diǎn),因此想要看看Facebook究竟需要什么樣的string。

folly自定義的string(以下簡(jiǎn)稱(chēng)為fbstring)的核心實(shí)現(xiàn)位于 folly/FBString.h。

還有一些fbstring的輔助函數(shù)(如向std::string的轉(zhuǎn)換、各種格式的輸出、escape、demangle等),位于 folly/String.h 和 folly/String.cpp ,由于本文主要談的是fbstring的內(nèi)部實(shí)現(xiàn),這些內(nèi)容暫且不提,有興趣的童鞋可以自己參考源碼,folly的代碼還是寫(xiě)得相當(dāng)漂亮的:)

folly對(duì)string類(lèi)的設(shè)計(jì)和優(yōu)化,主要體現(xiàn)在兩個(gè)方面:

1. 內(nèi)存模型

2. 常用方法的優(yōu)化

下面將逐一說(shuō)明。

一. 內(nèi)存模型

1. 內(nèi)存布局及策略

fbstring使用了三層的存儲(chǔ)策略(three-tiered storage strategy),根據(jù)長(zhǎng)度將fbstring分為三類(lèi):small/medium/large,分別采取不同的優(yōu)化措施,以達(dá)到最佳性能。

fbstring內(nèi)存模型示意圖(使用LucidChart繪制):

 

簡(jiǎn)單來(lái)說(shuō):

短string:直接放在(棧上)對(duì)象中,避免了動(dòng)態(tài)內(nèi)存分配的開(kāi)銷(xiāo)。結(jié)構(gòu)體長(zhǎng)度為24字節(jié),減去末尾的1字節(jié)(用來(lái)表示長(zhǎng)度)和為結(jié)束符'\0'(data()和c_str()方法的需要)預(yù)留的1字節(jié),可以放置22字節(jié)的有效長(zhǎng)度。

中等string(小于255字節(jié)):直接通過(guò)malloc分配,并且采用eager-copy的方式,即字符串的復(fù)制總是會(huì)重新分配并拷貝內(nèi)容。

至于為什么不用copy-on-write:

1. 我之前的博客也提到,copy-on-write的額外開(kāi)銷(xiāo)(原子操作、容易失效)一定程度上抵消了減少一次內(nèi)存分配和拷貝帶來(lái)的好處

2. folly鼓勵(lì)使用jemalloc來(lái)代替glibc下默認(rèn)的ptmalloc2,并且在代碼中迎合jemalloc的使用做了大量?jī)?yōu)化。在這里,分配一個(gè)小片內(nèi)存區(qū)域的開(kāi)銷(xiāo)是極小的,下文還會(huì)有說(shuō)明。

較長(zhǎng)string(大于255字節(jié)):使用copy-on-write,減少分配和拷貝大內(nèi)存的開(kāi)銷(xiāo)。在這里,folly使用了C++11中的原子變量:std::atomic<size_t>來(lái)管理引用計(jì)數(shù),并在引用計(jì)數(shù)減為0時(shí)銷(xiāo)毀內(nèi)存。

PS:使用capacity最高位的4個(gè)bits來(lái)判斷string的種類(lèi),folly假定機(jī)器的字節(jié)序?yàn)樾《耍╨ittle endian),適用于x86-64平臺(tái)上的大部分OS。

2. 內(nèi)存分配器

與std::string不同,fbstring并沒(méi)有從模板參數(shù)之一的Allocator獲取內(nèi)存,而是直接使用malloc/free管理內(nèi)存。

fbstring推薦使用jemalloc而不是Linux下glibc默認(rèn)的ptmalloc2來(lái)管理動(dòng)態(tài)內(nèi)存:

1. 作為FreeBSD上的默認(rèn)分配器,jemalloc在多線(xiàn)程并發(fā)的環(huán)境下表現(xiàn)更好(與google開(kāi)源的tcmalloc性能相近)。

在tcmalloc的論文《TCMalloc : Thread-Caching Malloc》中,提到了ptmalloc2在多線(xiàn)程環(huán)境下的一個(gè)致命缺陷:

ptmalloc2同樣通過(guò)為不同的線(xiàn)程分配自己的內(nèi)存池(Arena)的方式來(lái)減少并發(fā)分配時(shí)的鎖沖突,但ptmalloc2中線(xiàn)程擁有的內(nèi)存池是不能遷移的,在某些情況下能夠帶來(lái)巨大的內(nèi)存浪費(fèi):比如一個(gè)線(xiàn)程在開(kāi)始階段分配了300MB的內(nèi)存進(jìn)行初始化工作,然后釋放了,但接下來(lái)的線(xiàn)程分配到不同的內(nèi)存池,那么之前的300MB是無(wú)法重復(fù)利用的。

2. folly如果檢測(cè)到使用jemalloc,那么將使用jemalloc的一些非標(biāo)準(zhǔn)擴(kuò)展接口來(lái)提高性能。

PS:folly通過(guò)定義弱符號(hào)(weak symbol)的方法來(lái)運(yùn)行時(shí)判斷是否使用了jemalloc:

  1. extern "C" int rallocm(void**, size_t*, size_tsize_tint) __attribute__((weak));  
  2.  
  3. /**  
  4.  * Determine if we are using jemalloc or not.  
  5.  */ 
  6. inline bool usingJEMalloc() {  
  7.   return rallocm != NULL;  

如果使用了jemalloc,一個(gè)典型的優(yōu)化是使用jemalloc特有的rallocm來(lái)代替標(biāo)準(zhǔn)的realloc方法。(下面還會(huì)提到realloc的優(yōu)化)

同時(shí),所有動(dòng)態(tài)內(nèi)存請(qǐng)求的大小都會(huì)經(jīng)過(guò)一個(gè)過(guò)濾函數(shù):goodMallocSize(在folly/Malloc.h中)處理,以獲取一個(gè)對(duì)jemalloc友好的值

goodMallocSize在不同的請(qǐng)求區(qū)間,將請(qǐng)求大小設(shè)置為64b / 256b / 4KB / 4MB對(duì)齊,以提高分配/回收效率,減少內(nèi)存碎片。

二. 常見(jiàn)操作的優(yōu)化

fbstring在實(shí)現(xiàn)時(shí)做了很多優(yōu)化(如word-wise copy等),其中的細(xì)節(jié)不再一一敷述,感興趣的讀者建議去參考源碼,這里只列出重要的幾點(diǎn):

1. 末尾'\0'的處理

fbstring的默認(rèn)行為是“懶惰”添加'\0'(lazy append),即平時(shí)預(yù)留空間,只在調(diào)用data()或者c_str()時(shí),才在結(jié)尾添加'\0',避免了每次修改字符串時(shí)的額外開(kāi)銷(xiāo)(特別是push_back操作),因?yàn)檫@樣做是符合C++標(biāo)準(zhǔn)的。

(當(dāng)然,fbstring也有相應(yīng)的宏來(lái)關(guān)閉該行為)

2. realloc的處理

string很多時(shí)候需要realloc,為了優(yōu)化realloc的效率,fbstring做了這樣的設(shè)定:

(1)如果使用jemalloc:使用jemalloc的非標(biāo)準(zhǔn)接口——rallocm

(2)沒(méi)有使用jemalloc:

當(dāng)前內(nèi)存的使用率小于50%(size * 2 < capacity),放棄使用realloc(因?yàn)閞ealloc可能需要拷貝全部?jī)?nèi)存,而其中超過(guò)一半是無(wú)效內(nèi)容),而是簡(jiǎn)單采用free+malloc+copy的方式來(lái)重新分配內(nèi)存,減少拷貝開(kāi)銷(xiāo)。

當(dāng)前內(nèi)存的使用率大于50%,則使用realloc,寄希望realloc可以合并后面的內(nèi)存(coalescing)以避免拷貝。

3. 優(yōu)化string::find()

glibc的string::find()實(shí)現(xiàn)中只實(shí)現(xiàn)了簡(jiǎn)單的逐字符查找比較功能,復(fù)雜度為O(M*N)。(C++標(biāo)準(zhǔn)并沒(méi)有規(guī)定string::find的復(fù)雜度要求)

find使用了簡(jiǎn)化的Boyer-Moore算法,代碼中聲稱(chēng):

Casual tests indicate a 30x speed improvement over string::find()for successful searches and a 1.5x speed improvement for failed searches.

如果是簡(jiǎn)單的短字符查詢(xún),string::find()應(yīng)該足夠高效。只有在長(zhǎng)字符搜索的情況下,find的BM算法實(shí)現(xiàn)才能體現(xiàn)出優(yōu)勢(shì),或許這也是Facebook的常用場(chǎng)景吧。

結(jié)語(yǔ):

順便提一下,fbstring(FBString.h)的作者為Andrei Alexandrescu(熟悉C++應(yīng)該都聽(tīng)說(shuō)過(guò)),近距離欣賞大師的代碼實(shí)在是一種享受。

同時(shí),Alexandre大叔以43歲的“高齡”,依然在Facebook寫(xiě)著如此底層的程序。個(gè)中滋味,值得天朝所有浮躁的程序員(包括筆者在內(nèi))和“35歲論“者細(xì)細(xì)體味。

原文鏈接:http://www.cnblogs.com/promise6522/archive/2012/06/05/2535530.html

【編輯推薦】

  1. Facebook發(fā)布HTML 5應(yīng)用中心
  2. HTML 5平臺(tái)對(duì)于Facebook未來(lái)至關(guān)重要
  3. Facebook版《憤怒的小鳥(niǎo)》為何選用Flash
  4. 揭秘Google與Facebook開(kāi)發(fā)之道
  5. 揭秘Facebook是如何開(kāi)發(fā)軟件的
責(zé)任編輯:彭凡 來(lái)源: 博客園
相關(guān)推薦

2012-06-05 09:12:02

FacebookFolly

2012-06-27 14:04:22

folly

2021-06-11 10:53:40

Folly組件開(kāi)發(fā)

2010-01-19 10:29:41

C++類(lèi)庫(kù)

2010-01-15 19:49:04

C++類(lèi)庫(kù)

2010-01-15 19:49:04

C++類(lèi)庫(kù)

2010-01-21 11:03:07

C++庫(kù)

2010-01-27 17:36:24

C++程序庫(kù)

2010-02-04 16:58:29

C++類(lèi)庫(kù)

2019-09-18 09:05:26

微軟開(kāi)源Windows

2010-02-03 16:04:34

C++標(biāo)準(zhǔn)類(lèi)庫(kù)

2021-05-28 18:12:51

C++類(lèi)設(shè)計(jì)

2011-07-10 15:36:54

C++

2015-09-06 11:07:52

C++設(shè)計(jì)模式單例模式

2011-07-15 00:47:13

C++多態(tài)

2011-05-18 17:33:15

CC++

2014-07-30 14:37:00

FacebookiOS開(kāi)源庫(kù)

2010-01-21 13:33:44

C++基類(lèi)

2011-07-14 17:45:06

CC++

2010-01-19 18:04:02

C++標(biāo)準(zhǔn)程序庫(kù)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

三级成人在线| 黄色毛片在线看| 欧美日韩亚洲国产精品| 精品国产一区二区三区久久久蜜月| 欧美交换配乱吟粗大25p| 性中国古装videossex| 亚洲第一黄色| 国产亚洲欧美日韩美女| 99精品视频免费版的特色功能| 黄网在线免费看| 久久久久青草大香线综合精品| 国产欧美日韩91| 神马欧美一区二区| 自拍偷拍18p| 一区二区三区国产精华| 亚洲精品乱码久久久久久按摩观| 人妻无码视频一区二区三区| 国产激情小视频在线| aaa亚洲精品| 国产噜噜噜噜噜久久久久久久久| 国产精品50页| 日韩欧美视频在线播放| 亚洲国模精品一区| 57pao国产成永久免费视频| 国产探花视频在线观看| 国产精品亲子乱子伦xxxx裸| 国外成人在线视频网站| 亚洲无码精品在线播放| 一区二区三区福利| 欧美成aaa人片免费看| 男女做爰猛烈刺激| 中文一区二区三区四区| 欧美无人高清视频在线观看| 成人在线国产视频| 国产精品一区二区三区视频网站| 久久久久久夜精品精品免费| 精品乱子伦一区二区三区| 国产巨乳在线观看| 蜜桃av一区二区在线观看| 91精品国产91久久久| 午夜69成人做爰视频| 日韩精品永久网址| 国产一区二区三区18| 老司机免费视频| 亚洲一级大片| 日韩欧美中文字幕制服| 亚洲美女性囗交| 国产精品天堂蜜av在线播放| 在线视频欧美精品| av观看免费在线| 正义之心1992免费观看全集完整版| 中文字幕在线日亚洲9| 久久av一区| 97超级碰碰碰| 日本中文字幕在线免费观看| 欧美视频日韩| 久久精品视频免费播放| 卡一卡二卡三在线观看| 久久综合影院| 国产亚洲视频中文字幕视频| 国产呦小j女精品视频| 美日韩黄色大片| 亚洲精品wwww| 内射中出日韩无国产剧情| 丁香五月缴情综合网| 日韩精品一区二区三区视频| 国产黄色一区二区三区| 亚洲伊人影院| 精品伦理精品一区| 午夜视频在线观看国产| 牛牛影视一区二区三区免费看| 亚洲精品成人av| 国产精品久久无码| 九九亚洲精品| 国产一区二区三区在线观看视频 | 日本中文在线播放| 一本色道久久综合亚洲精品不| 97在线精品国自产拍中文| 成年人午夜视频| 久久久一二三| 国产精品亚洲美女av网站| 国产精品无码久久av| 国产99精品视频| 国内成+人亚洲| 搞黄视频在线观看| 亚洲日本中文字幕区| 穿情趣内衣被c到高潮视频| 狂野欧美激情性xxxx欧美| 欧美日韩国产精品专区| 在线观看av网页| 欧美区一区二区| 亚洲精品日韩久久久| 亚洲不卡的av| 最新成人av网站| 国产成人一区二区在线| 国内老熟妇对白xxxxhd| 久久女同精品一区二区| 中文字幕在线中文字幕日亚韩一区| 日韩电影免费观看| 91福利社在线观看| 美女又黄又免费的视频| 国产va免费精品观看精品视频| 一本一道久久a久久精品逆3p | 欧美精品一区二区三区久久久竹菊| 国内精品国产三级国产在线专| 欧美超碰在线观看| 国产91丝袜在线观看| 欧洲久久久久久| 天堂av最新在线| 欧美综合亚洲图片综合区| 97超碰免费在线观看| 国产一区日韩| 国模叶桐国产精品一区| 97精品久久人人爽人人爽| 99久久久久久99| 黄色一级片网址| 欧美极品影院| 亚洲精品wwww| 九九视频免费观看| 麻豆精品在线看| 免费成人看片网址| 91www在线| 欧美一区二区三区成人| 国产成人免费观看网站| 国产日韩1区| 成人免费在线一区二区三区| 亚洲乱亚洲乱妇| 在线观看一区二区视频| 性色av蜜臀av色欲av| 国模吧视频一区| 91久久综合亚洲鲁鲁五月天| 国产精品毛片一区二区三区四区| 五月天久久比比资源色| 苍井空张开腿实干12次| 一区二区在线| 91久久久久久久久| 久草资源在线| 欧美电影一区二区三区| 国产精品麻豆免费版现看视频| 欧美一级专区| 鲁鲁狠狠狠7777一区二区| 川上优av中文字幕一区二区| 精品国产制服丝袜高跟| 欧美国产精品一二三| 国产精品影视网| 日本女人高潮视频| 久久综合给合| 欧美激情免费视频| 国产成人三级在线观看视频| 亚洲一区在线看| 年下总裁被打光屁股sp| 黄色亚洲大片免费在线观看| 国产精品日韩欧美一区二区三区 | 国产精品劲爆视频| aiai在线| 5566中文字幕一区二区电影 | 午夜婷婷国产麻豆精品| 日本久久久久久久久久| 亚洲经典自拍| 欧美性色黄大片人与善| 免费电影日韩网站| 亚洲色图50p| 91亚洲国产成人精品一区| 中文字幕一区二区三区在线播放| 国内自拍第二页| 综合激情视频| 国产高清一区视频| 永久免费毛片在线播放| 在线不卡国产精品| 国产片高清在线观看| 一区二区三区影院| 99久久免费看精品国产一区| 日韩精品国产精品| 影音先锋男人的网站| 国内精品麻豆美女在线播放视频 | 欧美高清一级片在线观看| 亚洲一区二区在线视频观看| 欧美激情 亚洲a∨综合| 国产一区二区无遮挡| videos性欧美另类高清| 日韩综合中文字幕| 亚洲第一成人av| 色婷婷综合激情| 国产免费久久久久| www..com久久爱| 91人人澡人人爽人人精品| 欧美激情一级片一区二区| 精品视频高清无人区区二区三区| 黄色成人在线观看网站| 蜜臀久久99精品久久久无需会员 | 国产成人精品无码高潮| 性欧美大战久久久久久久久| 成人在线一级片| 国产成人av一区二区三区在线| 男人操女人免费| 影视亚洲一区二区三区| 欧美精品久久久| 精品一区二区三区亚洲| 国产成人福利网站| 羞羞污视频在线观看| 亚洲片国产一区一级在线观看| 国产a级免费视频| 欧美性一区二区| 日韩欧美亚洲视频| 最新高清无码专区| 无码人妻精品一区二区中文| 大陆成人av片| 国产精品久久久久久久av福利| 亚洲一区二区免费看| 一区二区三区四区免费观看| 欧美久久精品一级c片| 国产视频在线观看一区| 国产亚洲字幕| 国产乱人伦真实精品视频| 成人欧美magnet| 久久久在线视频| 日皮视频在线观看| 日韩在线观看免费高清| 国产免费av高清在线| 亚洲第一av在线| 国产高清免费在线观看| 欧美日韩成人在线一区| 国产午夜精品久久久久| 舔着乳尖日韩一区| 日韩特黄一级片| 亚洲一二三区视频在线观看| www.5588.com毛片| 国产精品久久久久aaaa樱花| 亚洲区自拍偷拍| 久久久久久毛片| 久久精品国产亚洲av麻豆| 99精品国产99久久久久久白柏 | 91老司机福利 在线| 国产亚洲精品成人a| 国产精品一区二区三区乱码| 天堂视频免费看| 美女爽到高潮91| 超碰在线播放91| 日本人妖一区二区| 人人爽人人av| 秋霞午夜鲁丝一区二区老狼| 免费黄色一级网站| 日韩电影免费在线看| www日韩视频| 日本特黄久久久高潮| 啊啊啊国产视频| 麻豆freexxxx性91精品| 911福利视频| 国产在线麻豆精品观看| 图片区乱熟图片区亚洲| 国产精品资源网| 在线观看亚洲免费视频| www.欧美.com| b站大片免费直播| 国产婷婷色一区二区三区在线| 成人黄色免费网址| 国产精品久久久久三级| 女人18毛片毛片毛片毛片区二| 最近日韩中文字幕| 久久久久免费看| 欧美日韩精品在线观看| 亚洲av无码精品一区二区| 欧美视频中文一区二区三区在线观看| 中文字幕永久在线观看| 91精品啪在线观看国产60岁| www男人的天堂| 亚洲韩国欧洲国产日产av| 国产中文在线视频| 久久久精品一区| 乱插在线www| 国产精品国产亚洲伊人久久| 国产情侣一区在线| 国产精品一区而去| 亚洲调教一区| 正在播放精油久久| 91久久综合| 欧美黄色性生活| 国产激情偷乱视频一区二区三区| 少妇被狂c下部羞羞漫画| 国产情人综合久久777777| 99热6这里只有精品| 亚洲国产wwwccc36天堂| 老熟妇一区二区三区啪啪| 日韩三级精品电影久久久| 色综合成人av| 美女国内精品自产拍在线播放| 都市激情国产精品| 国产精品丝袜高跟| 粉嫩一区二区三区四区公司1| 欧美日韩在线精品| 欧美激情日韩| 国产福利影院在线观看| 国产成人精品影视| 久操视频在线观看免费| 亚洲国产视频在线| 在线观看色网站| 亚洲精品v欧美精品v日韩精品| 久热国产在线| 热久久免费国产视频| 日本在线一区二区三区| 日本不卡一区二区三区视频| 黑丝一区二区三区| 久久撸在线视频| 久久综合网色—综合色88| 久久人妻无码aⅴ毛片a片app| 色综合天天在线| 亚洲男人天堂久久| 日韩中文字幕精品视频| 不卡一二三区| 国产精品初高中精品久久| 欧美激情偷拍自拍| 国产精品亚洲αv天堂无码| 高清久久久久久| 国产喷水在线观看| 欧美四级电影网| 男人的天堂在线| 国内精品小视频在线观看| 久久久久九九精品影院| 亚洲一区二区三区色| 国产精品亚洲综合色区韩国| 性高潮免费视频| 一区二区三区国产豹纹内裤在线| 伊人精品一区二区三区| 亚洲欧洲国产精品| 色老头在线一区二区三区| 成人三级在线| 欧美国产精品| 99九九精品视频| 国产精品欧美一级免费| 青青艹在线观看| 亚洲性无码av在线| 欧美电影网址| 欧美午夜欧美| 日韩高清在线不卡| 国产一区二区三区四区五区六区| 精品国产电影一区| 特级丰满少妇一级aaaa爱毛片| 欧美激情高清视频| 嗯用力啊快一点好舒服小柔久久| 日韩精品一区二区三区四| 国产精品一品二品| 国产va在线播放| 精品88久久久久88久久久| 婷婷丁香在线| 国产精品一区在线观看| 亚洲成人中文| 素人fc2av清纯18岁| 一本一道波多野结衣一区二区| 猫咪在线永久网站| 国产精品极品尤物在线观看| 久久国产电影| 欧美国产日韩在线视频| 亚洲一区二区精品久久av| 欧美一级淫片aaaaaa| 97精品欧美一区二区三区| 亚州综合一区| 成人午夜激情av| 1区2区3区精品视频| 性生活视频软件| 97成人超碰免| 精品精品99| 国产精品探花在线播放| 亚洲激情综合网| 五月天婷婷视频| 国产精品久久久久91| 99成人在线视频| 免费观看黄网站| 黄色成人在线播放| 国产在线一二三区| 成人黄色av网站| 亚洲精品影院在线观看| 欧美做受高潮6| 日韩一区二区视频| 天堂网在线最新版www中文网| 欧美自拍资源在线| 国产毛片精品国产一区二区三区| 久久综合激情网| 国产午夜精品全部视频在线播放| 一区二区三区日本视频| 久草免费福利在线| 国产欧美日本一区二区三区| 国产激情视频在线播放| 欧美与欧洲交xxxx免费观看| 欧美残忍xxxx极端| 中国极品少妇videossexhd| 欧美午夜精品一区| 欧美aaaaaaa| 亚洲精品乱码久久久久久蜜桃91 | 亚洲av熟女国产一区二区性色 | 女王人厕视频2ⅴk| 狠狠躁天天躁日日躁欧美| 精品176二区| 欧美日韩另类丝袜其他| 狠狠色综合日日| √资源天堂中文在线| 欧美另类在线播放| 欧美亚洲在线日韩| 久久久午夜精品福利内容| 欧美日韩国产123区| 中文在线а√天堂|