成人性生交大片免费看视频r_亚洲综合极品香蕉久久网_在线视频免费观看一区_亚洲精品亚洲人成人网在线播放_国产精品毛片av_久久久久国产精品www_亚洲国产一区二区三区在线播_日韩一区二区三区四区区区_亚洲精品国产无套在线观_国产免费www

主頁 > 知識(shí)庫 > Lua性能優(yōu)化技巧(五):削減、重用和回收

Lua性能優(yōu)化技巧(五):削減、重用和回收

熱門標(biāo)簽:漳州智云呼電話機(jī)器人 個(gè)人怎么在地圖標(biāo)注需要的店鋪 冀州市地圖標(biāo)注 怎么去除地圖標(biāo)注 新岸線智能電銷機(jī)器人 武漢外呼防封系統(tǒng)多少錢 清朝地圖標(biāo)注哈爾濱 地圖標(biāo)注大廈 百度地圖標(biāo)注早餐區(qū)域

當(dāng)處理Lua資源時(shí),我們也應(yīng)該遵循提倡用于地球資源的3R原則——Reduce, Reuse and Recycle,即削減、重用和回收。

削減是最簡(jiǎn)單的方式。有很多方法可以避免使用新的對(duì)象,例如,如果你的程序使用了太多的表,可以考慮改變數(shù)據(jù)的表述形式。一個(gè)最簡(jiǎn)單的例子,假設(shè)你的程序需要操作折線,最自然的表述形式是:

復(fù)制代碼 代碼如下:

polyline =
{
    { x = 10.3, y = 98.5 },
    { x = 10.3, y = 18.3 },
    { x = 15.0, y = 98.5 },
    --...
}

盡管很自然,這種表述形式對(duì)于大規(guī)模的折線來說卻不夠經(jīng)濟(jì),因?yàn)樗拿總€(gè)點(diǎn)都需要用一個(gè)表來描述。第一種替代方式是使用數(shù)組來記錄,可以省點(diǎn)內(nèi)存:

復(fù)制代碼 代碼如下:

polyline =
{
     { 10.3, 98.5 },
     { 10.3, 18.3 },
     { 15.0, 98.5 },
     --...
}

對(duì)于一個(gè)有一百萬個(gè)點(diǎn)的折線來說,這個(gè)修改可以把內(nèi)存占用從95KB降低到65KB。當(dāng)然,你需要在可讀性上付出代價(jià):p[i].x比p[i][1]更易懂。

另一個(gè)更經(jīng)濟(jì)的做法是使用一個(gè)數(shù)組存儲(chǔ)所有x坐標(biāo),另一個(gè)存儲(chǔ)所有y坐標(biāo):

復(fù)制代碼 代碼如下:

polyline =
{
    x = { 10.3, 10.3, 15.0, ...},
    y = { 98.5, 18.3, 98.5, ...}
}

原有的
復(fù)制代碼 代碼如下:

p[i].x

現(xiàn)在變成了
復(fù)制代碼 代碼如下:

p.x[i]

使用這種表述形式,一百萬個(gè)點(diǎn)的折線的內(nèi)存占用降低到了24KB。

循環(huán)是尋找降低垃圾回收次數(shù)的機(jī)會(huì)的好地方。例如,如果在循環(huán)里創(chuàng)建一個(gè)不會(huì)改變的表,你可以把它挪到循環(huán)外面,甚至移到函數(shù)外作為上值。試對(duì)比:

復(fù)制代碼 代碼如下:

function foo (...)
     for i = 1, n do
          local t = {1, 2, 3, "hi"}
          -- 做一些不會(huì)改變t表的事情
          --...
     end
end


復(fù)制代碼 代碼如下:

local t = {1, 2, 3, "hi"} -- 創(chuàng)建t,一勞永逸
function foo (...)
    for i = 1, n do
        --做一些不會(huì)改變t表的事情
        --...
    end
end

相同的技巧亦可用于閉包,只要你不把它們移到需要它們的作用域之外。例如下面的函數(shù):

復(fù)制代碼 代碼如下:

function changenumbers (limit, delta)
    for line in io.lines() do
        line = string.gsub(line, "%d+", function (num)
            num = tonumber(num)
            if num >= limit then return tostring(num + delta) end
            -- 否則不返回任何值,保持原有數(shù)值
        end)
        io.write(line, "\n")
    end
end

我們可以通過將內(nèi)部的函數(shù)移到循環(huán)外面來避免為每次迭代創(chuàng)建新的閉包:

復(fù)制代碼 代碼如下:

function changenumbers (limit, delta)
    local function aux (num)
        num = tonumber(num)
        if num >= limit then return tostring(num + delta) end
    end
    for line in io.lines() do
        line = string.gsub(line, "%d+", aux)
        io.write(line, "\n")
    end
end

但是,我們不能把a(bǔ)ux移到changenumbers函數(shù)之外,因?yàn)閍ux需要訪問limit和delta。

對(duì)于多種字符串處理,我們可以通過使用現(xiàn)有字符串的索引來減少對(duì)創(chuàng)建新字符串的需要。例如,string.find函數(shù)返回它找到指定模式的位置索引,而不是匹配到的字符串。通過返回索引,它避免了在成功匹配時(shí)創(chuàng)建新的字符串。當(dāng)有必要時(shí),程序員可以通過調(diào)用string.sub來獲取匹配的子串[1]。

當(dāng)我們無法避免使用新的對(duì)象時(shí),我們依然可以通過重用來避免創(chuàng)建新的對(duì)象。對(duì)于字符串來說,重用沒什么必要,因?yàn)長(zhǎng)ua已經(jīng)為我們做了這樣的工作:它總是將所有用到的字符串內(nèi)部化,并在所有可能的時(shí)候重用。然而對(duì)于表來說,重用可能就非常有效。舉一個(gè)普遍的例子,讓我們回到在循環(huán)里創(chuàng)建表的情況。這一次,表里的內(nèi)容不再是不變的。通常我們可以在所有迭代中重用這個(gè)表,只需要簡(jiǎn)單地改變它的內(nèi)容??紤]如下的代碼段:

復(fù)制代碼 代碼如下:

local t = {}
for i = 1970, 2000 do
    t[i] = os.time({year = i, month = 6, day = 14})
end

下面的代碼是等同的,但是重用了這張表:
復(fù)制代碼 代碼如下:

local t = {}
local aux = {year = nil, month = 6, day = 14}
for i = 1970, 2000 do
    aux.year = i
    t[i] = os.time(aux)
end

實(shí)現(xiàn)重用的一個(gè)尤其有效的方式是緩存化[2]?;舅枷敕浅:?jiǎn)單,將指定輸入對(duì)應(yīng)的計(jì)算結(jié)果存儲(chǔ)下來,當(dāng)下一次再次接受相同的輸入時(shí),程序只需簡(jiǎn)單地重用上次的計(jì)算結(jié)果。

LPeg,Lua的一個(gè)新的模式匹配庫,就使用了一個(gè)有趣的緩存化處理。LPeg將每個(gè)模式字符串編譯為一個(gè)內(nèi)部的用于匹配字符串的小程序,比起匹配本身而言,這個(gè)編譯過程開銷很大,因此LPeg將編譯結(jié)果緩存化以便重用。只需一個(gè)簡(jiǎn)單的表,以模式字符串為鍵、編譯后的小程序?yàn)橹颠M(jìn)行記錄。

使用緩存化時(shí)常見的一個(gè)問題是,存儲(chǔ)計(jì)算結(jié)果所帶來的內(nèi)存開銷大過重用帶來的性能提升。為了解決這個(gè)問題,我們可以在Lua里使用一個(gè)弱表來記錄計(jì)算結(jié)果,因此沒有使用到的結(jié)果最終將會(huì)被回收。

在Lua中,利用高階函數(shù),我們可以定義一個(gè)通用的緩存化函數(shù):

復(fù)制代碼 代碼如下:

function memoize (f)
    local mem = {} -- 緩存化表
    setmetatable(mem, {__mode = "kv"}) -- 設(shè)為弱表
    return function (x) -- ‘f'緩存化后的新版本
        local r = mem[x]
        if r == nil then --沒有之前記錄的結(jié)果?
            r = f(x) --調(diào)用原函數(shù)
            mem[x] = r --儲(chǔ)存結(jié)果以備重用
        end
        return r
    end
end

對(duì)于任何函數(shù)f,memoize(f)返回與f相同的返回值,但是會(huì)將之緩存化。例如,我們可以重新定義loadstring為一個(gè)緩存化的版本:

loadstring = memoize(loadstring)
新函數(shù)的使用方式與老的完全相同,但是如果在加載時(shí)有很多重復(fù)的字符串,性能會(huì)得到大幅提升。

如果你的程序創(chuàng)建和刪除太多的協(xié)程,循環(huán)利用將可能提高它的性能?,F(xiàn)有的協(xié)程API沒有直接提供重用協(xié)程的支持,但是我們可以設(shè)法繞過這一限制。對(duì)于如下協(xié)程:

復(fù)制代碼 代碼如下:

co = coroutine.create(function (f)
    while f do
        f = coroutine.yield(f())
    end
end)

這個(gè)協(xié)程接受一項(xiàng)工作(運(yùn)行一個(gè)函數(shù)),執(zhí)行之,并且在完成時(shí)等待下一項(xiàng)工作。

Lua中的多數(shù)回收都是通過垃圾回收器自動(dòng)完成的。Lua使用漸進(jìn)式垃圾回收器,意味著垃圾回收工作會(huì)被分成很多小步,(漸進(jìn)地)在程序的允許過程中執(zhí)行。漸進(jìn)的節(jié)奏與內(nèi)存分配的速度成比例,每當(dāng)分配一定量的內(nèi)存,就會(huì)按比例地回收相應(yīng)的內(nèi)存;程序消耗內(nèi)存越快,垃圾回收器嘗試回收內(nèi)存也就越快。

如果我們?cè)诰帉懗绦驎r(shí)遵循削減和重用的原則,通常垃圾回收器不會(huì)有太多的事情要做。但是有時(shí)我們無法避免制造大量的垃圾,垃圾回收器的工作也會(huì)變得非常繁重。Lua中的垃圾回收器被調(diào)節(jié)為適合平均水平的程序,因此它在多數(shù)程序中工作良好。但是,在特定的時(shí)候我們可以通過調(diào)整垃圾回收器來獲取更好的性能。通過在Lua中調(diào)用函數(shù)collectgarbage,或者在C中調(diào)用lua_gc,來控制垃圾回收器。它們的功能相同,只不過有不同的接口。在本例中我將使用Lua接口,但是這種操作通常在C中進(jìn)行更好。

collectgarbage函數(shù)提供若干種功能:它可以停止或者啟動(dòng)垃圾回收器、強(qiáng)制進(jìn)行一次完整的垃圾回收、獲取Lua占用的總內(nèi)存,或者修改影響垃圾回收器工作節(jié)奏的兩個(gè)參數(shù)。它們?cè)谡{(diào)整高內(nèi)存消耗的程序時(shí)各有用途。

“永遠(yuǎn)”停止垃圾回收器可能對(duì)于某些批處理程序很有用。這些程序創(chuàng)建若干數(shù)據(jù)結(jié)構(gòu),根據(jù)它們生產(chǎn)出一些輸出值,然后退出(例如編譯器)。對(duì)于這樣的程序,試圖回收垃圾將會(huì)是浪費(fèi)時(shí)間,因?yàn)槔亢苌?,而且?nèi)存會(huì)在程序執(zhí)行完畢后完整釋放。

對(duì)于非批處理程序,停止垃圾回收器則不是個(gè)好主意。但是,這些程序可以在某些對(duì)時(shí)間極度敏感的時(shí)期暫停垃圾回收器,以提高時(shí)間性能。如果有需要的話,這些程序可以獲取垃圾回收器的完全控制,使其始終處于停止?fàn)顟B(tài),僅在特定的時(shí)候顯式地進(jìn)行一次強(qiáng)制的步進(jìn)或者完整的垃圾回收。例如,很多事件驅(qū)動(dòng)的平臺(tái)都提供一個(gè)選項(xiàng),可以設(shè)置空閑函數(shù),在沒有消息需要處理時(shí)調(diào)用。這正是調(diào)用垃圾回收的絕好時(shí)機(jī)(在Lua 5.1中,每當(dāng)你在垃圾回收器停止的狀態(tài)下進(jìn)行強(qiáng)制回收,它都會(huì)恢復(fù)運(yùn)轉(zhuǎn),因此,如果要保持垃圾回收器處于停止?fàn)顟B(tài),必須在強(qiáng)制回收后立刻調(diào)用collectgarbage("stop"))。

最后,你可能希望實(shí)施調(diào)整回收器的參數(shù)。垃圾回收器有兩個(gè)參數(shù)用于控制它的節(jié)奏:第一個(gè),稱為暫停時(shí)間,控制回收器在完成一次回收之后和開始下次回收之前要等待多久;第二個(gè)參數(shù),稱為步進(jìn)系數(shù),控制回收器每個(gè)步進(jìn)回收多少內(nèi)容。粗略地來說,暫停時(shí)間越小、步進(jìn)系數(shù)越大,垃圾回收越快。這些參數(shù)對(duì)于程序的總體性能的影響難以預(yù)測(cè),更快的垃圾回收器顯然會(huì)浪費(fèi)更多的CPU周期,但是它會(huì)降低程序的內(nèi)存消耗總量,并可能因此減少分頁。只有謹(jǐn)慎地測(cè)試才能給你最佳的參數(shù)值。

[1] 如果標(biāo)準(zhǔn)庫提供一個(gè)用于對(duì)比兩個(gè)子串的函數(shù)可能會(huì)是一個(gè)好主意,這樣我們無需將子串解出(會(huì)創(chuàng)建新的字符串)即可檢查字符串中的特定值。

[2] 緩存化,原文memoize

您可能感興趣的文章:
  • Lua性能優(yōu)化技巧(一):前言
  • Lua性能優(yōu)化技巧(二):基本事實(shí)
  • Lua性能優(yōu)化技巧(三):關(guān)于表
  • Lua性能優(yōu)化技巧(四):關(guān)于字符串
  • Lua性能優(yōu)化技巧(六):最后的提示

標(biāo)簽:德宏 天門 天門 金昌 濰坊 臺(tái)灣 儋州 宣城

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Lua性能優(yōu)化技巧(五):削減、重用和回收》,本文關(guān)鍵詞  Lua,性能,優(yōu)化,技巧,五,削減,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Lua性能優(yōu)化技巧(五):削減、重用和回收》相關(guān)的同類信息!
  • 本頁收集關(guān)于Lua性能優(yōu)化技巧(五):削減、重用和回收的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    男人的天堂av网站| 婷婷国产精品| 一区二区三区在线观看网站| 日本a级片在线播放| 人妻少妇精品一区二区三区| 日本一区免费视频| 久青草国产97香蕉在线视频| 精品日韩一区| 成人黄色大片在线观看| 特黄特色免费视频| 亚洲网站在线播放| 久草视频视频在线播放| 99re8这里有精品热视频免费| 欧美一区二区三区色| a级免费观看| 国精产品一区一区三区四川| 国产三级自拍视频| 18精品爽视频在线观看| 久久三级福利| 在线观看日韩欧美| 99精品久久只有精品| 久久国产精品高清| 国产精品久久久久久久龚玥菲| 日韩av免费在线看| 一区二区三区精| 久久婷婷久久一区二区三区| a级精品国产片在线观看| 最新中文字幕第一页| 国产视频一区二区三区四区五区| 国产视频欧美视频| 欧美国产成人精品| 97se亚洲国产综合自在线| 国产精品成人69xxx免费视频| 国产欧美久久久精品影院| 日本综合精品一区| 先锋资源中文在线| 99久久免费国产精品| 在线视频欧美日韩精品| 999国产精品一区| 无套内谢大学处破女www小说| 黄页网址大全在线播放| 久草热8精品视频在线观看| 视频亚洲一区二区| 成人av在线资源| 中文字幕一区二区三区在线视频| 国产成人av免费观看| 伊人久久大香线蕉成人综合网| 亚洲成人不卡| 国产suv一区二区三区88区| 黄色av免费观看| 在线免费观看日本欧美爱情大片| 欧美日韩综合一区| 99热这里只有精品在线| 日本在线精品| 波多野结衣视频一区二区| 在线视频一区二区三区四区| 亚洲国产欧洲综合997久久| 亚洲欧美一区二区久久| 公共露出暴露狂另类av| 成人av在线不卡| 国产精品美女www爽爽爽视频| 成人av黄色| 亚洲成在线观看| 亚洲免费一区三区| www.这里只有精品| 免费观看日韩毛片| 久久99亚洲网美利坚合众国| 亚洲最新免费视频| 影音先锋久久资源网| 在线免费观看一区二区三区| 男人操女人逼免费视频| japanese中文字幕| 久久久成人精品视频| 午夜在线播放视频欧美| www.久久网| 一区二区三区午夜探花| 小草在线视频在线免费视频| 91久久精品国产91久久性色| 青青草国产免费一区二区下载| 日韩精品av一区二区三区| 青青草原av| 成人自拍偷拍| 50度灰在线观看| 国产欧美精品一区二区三区-老狼| 99re6在线视频| 九九九在线观看| 日韩美女主播在线视频一区二区三区| 中文字幕91爱爱| 大地资源高清在线视频观看| 麻豆国产高清在线播放| 亚洲图片在线播放| aa视频在线播放| 日韩精品视频免费看| 在线看成人av| 国产在线精品一区二区中文| 欧美尤物巨大精品爽| 精品国产av色一区二区深夜久久| 岛国片av在线| 久热re国产手机在线观看| 99re6这里只有精品视频在线观看| japanese国产在线观看| 亚洲三级影院| 日韩精品免费视频| 精品88久久久久88久久久| 91精品黄色片免费大全| 亚洲国产一区二区久久久777| 久久久久北条麻妃免费看| 日韩欧美一二三| 伊人狠狠色j香婷婷综合| 一卡二卡三卡视频| 国产精品亚洲а∨天堂免在线| 1024国产精品| 亚洲人成电影网站色www| 国产精品一区免费在线观看| 一级毛片视频在线观看| 亚洲三级免费观看| 精品成人影院| 亚洲天堂777| 中文字幕 欧美激情| 91官网在线观看| 亚洲制服丝袜一区| 看亚洲a级一级毛片| 日韩美女久久久| 国产91ⅴ在线精品免费观看| 亚洲精品一二三区区别| **孕交吃奶水一级毛片| 欧美亚洲高清一区二区三区不卡| 日韩美女精品在线| se在线电影| 特一级黄色大片| 粉嫩av一区二区三区免费野| 日本美女在线中文版| 一区二区三国产精华液| 精品亚洲一区二区三区在线观看| 伊人久久精品| 国产精品视频免费一区| 麻豆精品视频在线原创| 国产一二三四在线视频| 日韩在线观看www| 久久综合一区二区| 快播日韩欧美| 快播av资源| 日本一区二区在线播放| 特黄特黄的视频| 四虎亚洲精品| 污污网站免费看| 亚洲3atv精品一区二区三区| 亚洲成av人片在线观看无| 亚洲一区二区在线免费看| 精品成人自拍视频| 国产精品美女久久久| 国产黄色免费观看| 亚洲一区二区在线观| 亚洲欧美se| 另类色图亚洲色图| av在线1区2区| 久久精品人人做人人爽| 欧美日韩高清一区二区三区| 日韩网站在线看片你懂的| 久久精品无码av| 美女胸又www又黄的网站| 国产chinasex对白videos麻豆| 日韩一区精品| 久久gogo国模啪啪裸体| 国产精品成人一区二区| xx欧美xxx| 九七久久人人| 久久婷婷综合中文字幕| 色噜噜久久综合| 日韩精品一级二级| 亚洲视频一二区| 欧美成人精品一区二区三区| 男人天堂2024| 日本综合一区二区三区| 椎名由奈jux491在线播放| 日av中文字幕| 最猛黑人系列在线播放| 亚洲激情视频在线观看| 国产成人精品久久一区二区小说| 欧美精品黄色| 最新69国产成人精品视频免费| 亚洲精品无码一区二区| 亚洲免费网站在线观看| 免费三级欧美电影| 尤物九九久久国产精品的特点| 成人高清免费在线| 午夜电影福利| 日韩性xxx| 免费污片软件| 欧美激情网址| 男人的天堂最新网址| 日韩av一区在线| 老鸭窝亚洲一区二区三区| h版电影在线播放视频网站| 日韩高清在线不卡| 女明星视频黄又免费| 伊人伊成久久人综合网小说| 日韩欧美视频一区二区三区四区| 日本一区二区三区四区在线观看| 91在线直播亚洲| 精品国产一区二区三区2021| 久久夜夜久久| 亚洲高清在线视频| 国产麻豆免费| 一区二区三区|亚洲午夜| 国产精品乡下勾搭老头1| 国产成人生活片| 国产免费区一区二区三视频免费| 91香蕉视频黄| 熟女少妇a性色生活片毛片| 蜜桃传媒在线| av网站在线播放| 亚洲一区av| 99精品在线免费视频| 亚洲经典在线| 欧美一区二区三区在线电影| 欧美男人天堂| 欧美放荡办公室videos4k| 天天色天天射综合网| 911精品产国品一二三产区| 精品久久久久久久无码| 唐人社导航福利精品| 亚洲精品鲁一鲁一区二区三区| 国产亚洲久一区二区| 91精品国产一区| 97超碰国产精品女人人人爽| 欧美色网在线| 免费成人毛片| 一区二区三区欧美久久| 国产一区二区三区在线免费| 亚洲精品aaa| 91这里只有精品| 日韩美女视频一区二区| 日韩高清欧美| 综合激情视频| 日本在线三级| 美女日批视频在线观看| 成人不卡免费视频| 九九九九久久久久| 97av影视网在线观看| 欧美一区二区人人喊爽| 久久国产福利国产秒拍| 天天操天天干天天插| 中文字字幕一区二区三区四区五区| 亚洲精品在线不卡| 久久精品视频免费播放| 九一免费在线观看| 色婷婷国产精品久久包臀| 九九热线有精品视频99| 蜜臀99久久精品久久久久小说| 久久久久久久激情| 国产男女免费视频| 1级黄色大片儿| 狠狠人妻久久久久久综合蜜桃| 福利在线国产| 国产伦精品一区二区三区精品视频| 两个人的视频www国产精品| 超碰人人草人人| 欧美日韩精品在线观看视频| 亚洲成人午夜在线| 国产精品女人久久久| 国产精品扒开腿做爽爽爽的视频| 男女啪啪999亚洲精品| 国产亚洲精久久久久久| 国产精品入口66mio| 精品综合久久久久久8888| 欧美手机在线观看| 国产精品剧情一区二区三区| www.久久色.com| 日韩美女啊v在线免费观看| 欧美不卡在线观看| 日韩成人av在线播放| 霍思燕三级露全乳照| 国产女人被狂躁到高潮小说| 亚洲成人精品在线观看| 久久久久久亚洲精品美女| 日韩免费性生活视频播放| 中国av在线播放| 天天综合网久久| 中文字幕在线看视频国产欧美| 91丨porny丨蝌蚪视频| sese在线| 欧美日本韩国一区二区三区| 不卡视频免费在线观看| 菠萝蜜视频网址| 亚洲理论在线a中文字幕| 麻豆国产精品一区二区三区| 亚洲成人精品视频| 国产成人av免费看| 黄色三级免费电影| 手机在线观看毛片| 亚洲乱码中文字幕综合| 国产成人精品免费看视频| 九9re精品视频在线观看re6| 欧美精品国产精品久久久| 久久久免费高清电视剧观看| 2021国产精品久久精品| 久久三级福利| 亚洲综合视频在线观看| mm视频在线视频| 欧美一区二区三区四区在线| 日韩黄色片在线| 欧美一区三区二区| 亚洲国产日韩在线观看| 日本三级中文字幕在线观看| 激情综合五月天| 一级片在线免费播放| 日本一区二区三区视频在线播放| 国产aa视频| 亚洲色图图片网| 国产二区视频在线播放| 草民电影神马电影一区二区| 性伦欧美刺激片在线观看| 懂色av一区二区三区蜜臀| 91精品91久久久中77777老牛| 亚洲综合中文字幕在线| 天堂在线网站| 亚洲精品国偷拍自产在线观看蜜桃| 久久er99热精品一区二区三区| 影音先锋中文字幕在线| 91一区二区视频| 成人深夜在线观看| 久久99精品久久久水蜜桃| 欧美一级黄色片| 日韩porn| 欧美激情视频一区二区三区| 欧美三级电影网址| 日韩高清av电影|