国产秋霞理论久久久电影-婷婷色九月综合激情丁香-欧美在线观看乱妇视频-精品国avA久久久久久久-国产乱码精品一区二区三区亚洲人-欧美熟妇一区二区三区蜜桃视频

Go 1.20 快訊:新特性有哪些?一文了解

共 11600字,需瀏覽 24分鐘

 ·

2022-12-09 19:11

在近期Russ Cox代表Go核心團(tuán)隊發(fā)表的“Go, 13周年”[1]一文中,他提到了“在Go的第14個年頭,Go團(tuán)隊將繼續(xù)努力使Go成為用于大規(guī)模軟件工程的最好的環(huán)境,將特別關(guān)注供應(yīng)鏈安全,提高兼容性和結(jié)構(gòu)化日志記錄,當(dāng)然還會有很多其他改進(jìn),包括profile-guided optimization等”。

當(dāng)前正在開發(fā)的版本是Go 1.20,預(yù)計2023年2月正式發(fā)布,這個版本也將是Go在其第14個年頭發(fā)布的第一個版本。很多人沒想到Go真的會進(jìn)入到Go 1.2x版本,而不是Go 2.x。記得Russ Cox曾說過可能永遠(yuǎn)也不會有Go2了,畢竟Go泛型語法落地[2]這么大的語法改動也沒有讓Go1兼容性承諾[3]失效。

目前Go 1.20版本正在如火如荼的開發(fā)中,很多gopher都好奇Go 1.20版本會帶來哪些新特性?在這篇文章中,我就帶大家一起去Go 1.20 milestone[4]的issues列表中翻翻,提前看看究竟會有哪些新特性加入Go。

1. 語法變化

Go在其1.18版本[5]迎來了自開源以來最大規(guī)模的語法變化,然后呢?就沒有然后了。Go在語法演進(jìn)上再次陷入沉寂,沒錯,這就是Go長期以來堅持的風(fēng)格。

如果Go 1.20版本真有語法層面的變化,那估計就是這個issue了:“spec: allow conversion from slice to array”[6],即允許切片類型到數(shù)組類型的類型轉(zhuǎn)換。

在Go 1.20版本之前,我們以Go 1.19版本[7]為例寫下下面代碼:

      
      package?main

import?"fmt"

func?main()?{
????var?sl?=?[]int{1,?2,?3,?4,?5,?6,?7}
??? var arr =?[7]int(sl)?//?編譯器報錯:cannot convert sl (variable of type?[]int)?to?type?[7]int
????fmt.Println(sl)
????fmt.Println(arr)
}

這段代碼中,我們進(jìn)行了一個[]int到[7]int的類型轉(zhuǎn)換,但在Go 1.19版本編譯器針對這個轉(zhuǎn)換會報錯!即不支持將切片類型顯式轉(zhuǎn)換數(shù)組類型。

在Go 1.20版本之前如果要實(shí)現(xiàn)切片到數(shù)組的轉(zhuǎn)換,是有trick的,看下面代碼:

      
      func?main()?{
????var?sl?=?[]int{1,?2,?3,?4,?5,?6,?7}
????var?parr?=?(*[7]int)(sl)
????var?arr?=?*(*[7]int)(sl)
????fmt.Println(sl)??//?[1?2?3?4?5?6?7]
????fmt.Println(arr)?//?[1?2?3?4?5?6?7]
????sl[0]?=?11
????fmt.Println(sl)????//?[11?2?3?4?5?6?7]
????fmt.Println(arr)???//?[1?2?3?4?5?6?7]
????fmt.Println(*parr)?//?[11?2?3?4?5?6?7]
}

該trick的理論基礎(chǔ)是Go允許獲取切片的底層數(shù)組地址。在上面的例子中parr就是指向切片sl底層數(shù)組的指針,通過sl或parr對底層數(shù)組元素的修改都能在對方身上體現(xiàn)出來。但是arr則是底層數(shù)組的一個副本,后續(xù)通過sl對切片的修改或通過parr對底層數(shù)組的修改都不會影響arr,反之亦然。

不過這種trick語法還不是那么直觀!于是上面那個“允許將切片直接轉(zhuǎn)換為數(shù)組”的issue便提了出來。我們在go playground[8]上選擇“go dev branch”便可以使用最新go tip的代碼,我們嘗試一下最新語法:

      
      func?main()?{
?var?sl?=?[]int{1,?2,?3,?4,?5,?6,?7}
?var?arr?=?[7]int(sl)??????
?var?parr?=?(*[7]int)(sl)
?fmt.Println(sl)???//?[1?2?3?4?5?6?7]
?fmt.Println(arr)??//?[1?2?3?4?5?6?7]
?sl[0]?=?11
?fmt.Println(arr)??//?[1?2?3?4?5?6?7]
?fmt.Println(parr)?//?&[11?2?3?4?5?6?7]
}

我們看到直接將sl轉(zhuǎn)換為數(shù)組arr不再報錯,但其語義與前面的“var arr =?([7]int)(sl)”語義是相同的,即返回一個切片底層數(shù)組的副本,arr不會受到后續(xù)切片元素變化的影響。

不過這里也有個約束,那就是轉(zhuǎn)換后的數(shù)組長度要小于等于切片長度,否則會panic:

      
      var?sl?=?[]int{1,?2,?3,?4,?5,?6,?7}
var?arr?=?[8]int(sl)?//?panic:?runtime?error:?cannot?convert?slice?with?length?7?to?array?or?pointer?to?array?with?length?8

在寫本文時,該issue尚未close,不過進(jìn)入最終Go 1.20版本應(yīng)該不是大問題。

2. 編譯器/鏈接器和其他工具鏈

1) profile-guided optimization

Go編譯器團(tuán)隊一直致力于對Go編譯器/鏈接器的優(yōu)化,這次在Go 1.20版本中,該團(tuán)隊很大可能會給我們帶來“profile-guided optimization”[9]。

什么是“profile-guided optimization”呢?原先Go編譯器實(shí)施的優(yōu)化手段,比如內(nèi)聯(lián)[10],都是基于固定規(guī)則決策的,所有信息都來自編譯的Go源碼。而這次的“profile-guided optimization”[11]顧名思義,需要源碼之外的信息做“制導(dǎo)”來決定實(shí)施哪些優(yōu)化,這個源碼之外的信息就是profile信息,即來自pprof工具在程序運(yùn)行時采集的數(shù)據(jù),如下圖(圖來自profile-guided optimization設(shè)計文檔[12])所示:

6c4aedf30be8dbd8a3d686bc75450eac.webp

因此pgo優(yōu)化實(shí)際上是需要程序員參與的,程序員拿著程序到生產(chǎn)環(huán)境跑,程序生成的profile性能采集數(shù)據(jù)會被保存下來,然后這些profile采集數(shù)據(jù)會提供給Go編譯器,以在下次構(gòu)建同一個程序時輔助優(yōu)化決策。由于這些profile是來自生產(chǎn)環(huán)境或模擬生產(chǎn)環(huán)境的數(shù)據(jù),使得這種優(yōu)化更有針對性。并且,Google數(shù)據(jù)中心其他語言(C/C++)實(shí)施PGO優(yōu)化的效果顯示,優(yōu)化后的性能保守估計提升幅度在5%~15%。

和其他新引入的特性一樣,Go 1.20將包含該特性,但默認(rèn)并不開啟,我們可以手動開啟進(jìn)行體驗(yàn),未來版本,pgo特性才會默認(rèn)為auto開啟。

2) 大幅減小Go發(fā)行版包的Size

隨著Go語言的演進(jìn),Go發(fā)行版的Size也在不斷增加,從最初的幾十M到如今的上百M(fèi)。本地電腦里多安裝幾個Go版本,(解壓后)幾個G就沒有了,此外Size大也讓下載時間變得更長,尤其是一些網(wǎng)絡(luò)環(huán)境不好的地區(qū)。

為什么Go發(fā)行版Size越來越大呢?這很大程度是因?yàn)镚o發(fā)行版中包含了GOROOT下所有軟件包的預(yù)編譯.a文件,以go 1.19的macos版本為例,在$GOROOT/pkg下,我們看到下面這些.a文件,用du查看一下占用的磁盤空間,達(dá)111M:

      
      $ls
archive/?database/?fmt.a??index/??mime/??plugin.a?strconv.a?time/
bufio.a??debug/??go/??internal/?mime.a??reflect/?strings.a?time.a
bytes.a??embed.a??hash/??io/??net/??reflect.a?sync/??unicode/
compress/?encoding/?hash.a??io.a??net.a??regexp/??sync.a??unicode.a
container/?encoding.a?html/??log/??os/??regexp.a?syscall.a?vendor/
context.a?errors.a?html.a??log.a??os.a??runtime/?testing/
crypto/??expvar.a?image/??math/??path/??runtime.a?testing.a
crypto.a?flag.a??image.a??math.a??path.a??sort.a??text/

$du?-sh
111M?.

而整個pkg目錄的size為341M,占Go 1.19版本總大小495M的近70%。

于是在Go社區(qū)提議下,Go團(tuán)隊決定從Go 1.20開始發(fā)行版不再為GOROOT中的大多數(shù)軟件包提供預(yù)編譯的.a文件[13],新版本將只包括GOROOT中使用cgo的幾個軟件包的.a文件。

因此Go 1.20版本中,GOROOT下的源碼將像其他用戶包那樣在構(gòu)建后被緩存到本機(jī)cache中。此外,go install也不會為GOROOT軟件包安裝.a文件,除非是那些使用cgo的軟件包。這樣Go發(fā)行版的size將最多減少三分之二。

取而代之的是,這些包將在需要時被構(gòu)建并緩存在構(gòu)建緩存中,就像已經(jīng)為GOROOT之外的非主包所做的那樣。此外,go install也不會為GOROOT軟件包安裝.a文件,除非是那些使用cgo的軟件包。這些改變是為了減少Go發(fā)行版的大小,在某些情況下可以減少三分之二。

3) 擴(kuò)展代碼覆蓋率(coverage)報告到應(yīng)用本身

想必大家都用過go test的輸出過代碼覆蓋率,go test會在unit test代碼中注入代碼以統(tǒng)計unit test覆蓋的被測試包路徑,下面是代碼注入的舉例:

      
      func?ABC(x?int)?{
????if?x?<?0?{
????????bar()
????}
}

注入代碼后:

      
      func?ABC(x?int)?{GoCover_0_343662613637653164643337.Count[9]?=?1;
??if?x?<?0?{GoCover_0_343662613637653164643337.Count[10]?=?1;
????bar()
??}
}

像GoCover_xxx這樣的代碼會被放置到每條分支路徑下。

不過go test -cover也有一個問題,那就是它只是適合針對包收集數(shù)據(jù)并提供報告,它無法針對應(yīng)用整體給出代碼覆蓋度報告。

Go 1.20版本中有關(guān)的“extend code coverage testing to include applications”[14]的proposal就是來擴(kuò)展代碼覆蓋率的,可以支持對應(yīng)用整體的覆蓋率統(tǒng)計和報告。

該特性在Go 1.20版本中也將作為實(shí)驗(yàn)性特性,默認(rèn)是off的。該方案通過go build -cover方式生成注入了覆蓋率統(tǒng)計代碼的應(yīng)用程序,在應(yīng)用執(zhí)行過程中,報告會被生成到指定目錄下,我們依然可以通過go tool cover來查看這個整體性報告。

此外,新proposal在實(shí)現(xiàn)原理上與go test -cover差不多,都是source-to-source的方案,這樣后續(xù)也可以統(tǒng)一維護(hù)。當(dāng)然Go編譯器也會有一些改動。

4) 廢棄-i flag

這個是一個早計劃好的“廢棄動作”[15]。自從Go 1.10引入go build cache后,go build/install/test -i就不會再將編譯好的包安裝到$GOPATH/pkg下面了。

3. Go標(biāo)準(zhǔn)庫

1) 支持wrap multiple errors

Go 1.20增加了一種將多個error包裝(wrap)為一個error的機(jī)制[16],方便從打包后的錯誤的Error方法中一次性得到包含一系列關(guān)于該錯誤的相關(guān)錯誤的信息。

這個機(jī)制增加了一個(匿名)接口和一個函數(shù):

      
      interface?{
????Unwrap()?[]error
}

func?Join(errs?...error)?error

同時增強(qiáng)了像fmt.Errorf這樣的函數(shù)的語義,當(dāng)在Errorf中使用多個%w verb時,比如:

      
      e?:=?errors.Errorf("%w,?%w,?%w",?e1,?e2,?e3)

Errorf將返回一個將e1, e2, e3打包完的且實(shí)現(xiàn)了上述帶有Unwrap() []error方法的接口的錯誤類型實(shí)例。

Join函數(shù)的語義是將傳入的所有err打包成一個錯誤類型實(shí)例,該實(shí)例同樣實(shí)現(xiàn)了上述帶有Unwrap() []error方法的接口,且該錯誤實(shí)例的類型的Error方法會返回?fù)Q行符間隔的錯誤列表。

我們看一下下面這個例子:

      
      package?main

import?(
?"errors"
?"fmt"
)

type?MyError?struct?{
?s?string
}

func?(e?*MyError)?Error()?string?{
?return?e.s
}

func?main()?{
?e1?:=?errors.New("error1")
?e2?:=?errors.New("error2")
?e3?:=?errors.New("error3")
?e4?:=?&MyError{
??s:?"error4",
?}
?e?:=?fmt.Errorf("%w,?%w,?%w,?%w",?e1,?e2,?e3,?e4)

?fmt.Printf("e?=?%s\n",?e.Error())?//?error1?error2,?error3,?error4
?fmt.Println(errors.Is(e,?e1))?//?true

?var?ne?*MyError
?fmt.Println(errors.As(e,?&ne))?//?true
?fmt.Println(ne?==?e4)?//?true
}

我們首先在Go 1.19編譯運(yùn)行上面程序:

      
      e?=?error1?%!w(*errors.errorString=&{error2}),?%!w(*errors.errorString=&{error3}),?%!w(*main.MyError=&{error4})
false
false
false

顯然Go 1.19的fmt.Errorf函數(shù)尚不支持多%w verb。

而Go 1.20編譯上面程序的運(yùn)行結(jié)果為:

      
      e?=?error1?error2,?error3,?error4
true
true
true

將fmt.Errorf一行換為:

      
      e?:=?errors.Join(e1,?e2,?e3,?e4)?

再運(yùn)行一次的結(jié)果為:

      
      e?=?error1
error2
error3
error4
true
true
true

即Join函數(shù)打包后的錯誤類型實(shí)例類型的Error方法會返回?fù)Q行符間隔的錯誤列表。

2) 新增arena實(shí)驗(yàn)包

Go是帶GC語言,雖然Go GC近幾年持續(xù)改進(jìn),絕大多數(shù)場合都不是大問題了。但是在一些性能敏感的領(lǐng)域,GC過程占用的可觀算力還是讓應(yīng)用吃不消。

降GC消耗,主要思路就是減少堆內(nèi)存分配、減少反復(fù)的分配與釋放。Go社區(qū)的某些項(xiàng)目為了減少內(nèi)存GC壓力,在mmaped內(nèi)存上又建立一套GC無法感知到的簡單內(nèi)存管理機(jī)制并在適當(dāng)場合應(yīng)用。但這些自實(shí)現(xiàn)的、脫離GC的內(nèi)存管理都有各自的問題。

Go 1.18版本發(fā)布前,arena這個proposal[17]就被提上了日程,arena包又是google內(nèi)部的一個實(shí)驗(yàn)包,據(jù)說效果還不錯的(在改進(jìn)grpc的protobuf反序列化實(shí)驗(yàn)上),可以節(jié)省15%的cpu和內(nèi)存消耗。但proposal一出,便收到了來自各方的comment,該proposal在Go 1.18和Go 1.19一度處于hold狀態(tài),直到Go 1.20才納入到試驗(yàn)特性,我們可以通過GOEXPERIMENT=arena開啟該機(jī)制。

arena包主要思路其實(shí)是“整體分配,零碎使用,再整體釋放”,以最大程度減少對GC的壓力。關(guān)于arena包,等進(jìn)一步完善后,后續(xù)可能會有專門文章分析。

3) time包變化

time包增加了三個時間layout格式常量[18],相信不用解釋,大家也知道如何使用:

      
      ?DateTime???=?"2006-01-02?15:04:05"
?DateOnly???=?"2006-01-02"
?TimeOnly???=?"15:04:05"

time包還為Time增加了Compare方法[19],適用于time之間的>=和<=比較:

      
      //?Compare?returns?-1?if?t1?is?before?t2,?0?if?t1?equals?t2?or?1?if?t1?is?after?t2.
func?(t1?Time)?Compare(t2?Time)?int

此外,time包的RFC3339時間格式是使用最廣泛的時間格式,其解析性能在Go 1.20中得到優(yōu)化,提升了70%左右,格式化性能提升30%[20]。

4. 其他

  • Go 1.17版本將作為Go 1.20的bootstrap編譯器;
  • Go編譯器性能提升3%[21];
  • Go工具鏈將根據(jù)GO[arch]環(huán)境變量的設(shè)置自動設(shè)置相關(guān)build tags[22];
  • 標(biāo)準(zhǔn)庫增加crypto/ecdh包[23],提供安全的、基于byte切片的ECDH API;
  • bytes, strings包增加Clone函數(shù)[24];
  • strings包增加CutPrefix和CutSuffix函數(shù)[25];
  • text/template的解析性能提升40%[26]。

5. 參考資料

  • Go 1.20 milestone - https://github.com/golang/go/milestone/250
  • Exploring Go's Profile-Guided Optimizations - https://www.polarsignals.com/blog/posts/2022/09/exploring-go-profile-guided-optimizations/
  • What's coming to go 1.20 - https://twitter.com/mvdan_/status/1588242469577117696


參考資料

[1]?

“Go, 13周年”:?https://tonybai.com/2022/11/11/go-opensource-13-years

[2]?

Go泛型語法落地:?https://tonybai.com/2022/04/20/some-changes-in-go-1-18

[3]?

Go1兼容性承諾:?https://go.dev/doc/go1compat

[4]?

Go 1.20 milestone:?https://github.com/golang/go/milestone/250

[5]?

1.18版本:?https://tonybai.com/2022/04/20/some-changes-in-go-1-18

[6]?

“spec: allow conversion from slice to array”:?https://github.com/golang/go/issues/46505

[7]?

Go 1.19版本:?https://tonybai.com/2022/08/22/some-changes-in-go-1-19

[8]?

go playground:?https://go.dev/play

[9]?

“profile-guided optimization”:?https://github.com/golang/proposal/blob/master/design/55022-pgo.md

[10]?

內(nèi)聯(lián):?https://tonybai.com/2022/10/17/understand-go-inlining-optimisations-by-example

[11]?

“profile-guided optimization”:?https://github.com/golang/go/issues/55022

[12]?

profile-guided optimization設(shè)計文檔:?https://github.com/golang/proposal/blob/master/design/55022-pgo-implementation.md

[13]?

Go團(tuán)隊決定從Go 1.20開始發(fā)行版不再為GOROOT中的大多數(shù)軟件包提供預(yù)編譯的.a文件:?https://github.com/golang/go/issues/47257

[14]?

“extend code coverage testing to include applications”:?https://github.com/golang/proposal/blob/master/design/51430-revamp-code-coverage.md

[15]?

這個是一個早計劃好的“廢棄動作”:?https://github.com/golang/go/issues/41696

[16]?

增加了一種將多個error包裝(wrap)為一個error的機(jī)制:?https://github.com/golang/go/issues/53435#issuecomment-1191752789

[17]?

arena這個proposal:?https://github.com/golang/go/issues/51317

[18]?

time包增加了三個時間layout格式常量:?https://github.com/golang/go/issues/52746

[19]?

time包還為Time增加了Compare方法:?https://github.com/golang/go/issues/50770

[20]?

其解析性能在Go 1.20中得到優(yōu)化,提升了70%左右,格式化性能提升30%:?https://github.com/golang/go/issues/50770

[21]?

Go編譯器性能提升3%:?https://go-review.googlesource.com/c/go/+/432897

[22]?

arch]環(huán)境變量的設(shè)置[自動設(shè)置相關(guān)build tags:?https://github.com/golang/go/issues/45454

[23]?

增加cyypto/ecdh包:?https://github.com/golang/go/issues/52221

[24]?

bytes, strings包增加Clone函數(shù):?https://github.com/golang/go/issues/45038

[25]?

strings包增加CutPrefix和CutSuffix函數(shù):?https://github.com/golang/go/issues/42537

[26]?

text/template的解析性能提升40%:?https://github.com/golang/go/issues/53261




推薦閱讀


福利
我為大家整理了一份 從入門到進(jìn)階的Go學(xué)習(xí)資料禮包 ,包含學(xué)習(xí)建議:入門看什么,進(jìn)階看什么。 關(guān)注公眾號 「polarisxu」,回復(fù)? ebook ?獲取;還可以回復(fù)「進(jìn)群」,和數(shù)萬 Gopher 交流學(xué)習(xí)。

瀏覽 62
點(diǎn)贊
評論
收藏
分享

手機(jī)掃一掃分享

分享
舉報
評論
圖片
表情
推薦
點(diǎn)贊
評論
收藏
分享

手機(jī)掃一掃分享

分享
舉報

感谢您访问我们的网站,您可能还对以下资源感兴趣:

国产秋霞理论久久久电影-婷婷色九月综合激情丁香-欧美在线观看乱妇视频-精品国avA久久久久久久-国产乱码精品一区二区三区亚洲人-欧美熟妇一区二区三区蜜桃视频 欧美a在线| 日逼无码视频| 国精产品秘一区二区-| 天天干天天色天天日| 少妇喷水视频| 777米奇视频| 一级毛AA片| 9I成人免费版| 国产成人av网站| 天天夜夜操操| 亚洲免费天堂| 亚洲视频99| 蜜桃黄片AV在线观看| 亚洲免费在线播放| 麻豆国产91在线播放| 国产91无码| 成人操b视频| 日韩在线观看网站| 麻豆乱伦| 欧美激情网址| 色婷婷在线无码精品秘人口传媒 | 欧洲性爱视频在线观看| 老鸭窝成人| 成人大战香蕉最新视频| 五月婷婷欧美| AV在线直播| 另类老太婆性BBWBBw| 大帝av| 人人人射| 九月丁香| 鸭子AV| 有码中文字幕| 黄色毛片视频| 欧美日韩无码| 无码一区二区三区在线观看| 色综合久久久| 特级特黄AAAA免费看| 5252a我爱haose01我愿| 久久欧洲成人精品无码区| AV电影在线观看| 人人天天夜夜| 第一福利成人AV导航| 草草影院第一页| 另类欧美| 欧美一级生活片| 国产一区免费观看| 久久毛久久久j| 97福利视频| 亚洲日韩中文字幕在线| 五月天狠狠操| 国产一级A片免费视频| av网站在线免费观看| BBw日本熟妇BBwHD| 超碰人人爱人人操| 久久亚洲AV无码午夜麻豆| 国产精品一区网站| 成人国产欧美日韩在线视频| 亚洲AV成人片色在线观看麻豆| 中文字幕乱码亚洲无线码在线日噜噜| 午夜高清无码| 欧美日韩三区| 人妻人人操人人爽| 一级片在线视频| AV无码免费一区二区三区不卡 | 黄片视频在线免费看| 国产精品久久7777777精品无码| 精品中文一区二区三区| 91人妻人人澡人人爽人人精吕| 青娱乐AV| 少妇一区二区三区| 午夜福利码一区二区| 国产黃色AAA片| 国产精品一卡二卡| 91人妻无码精品蜜桃| 日韩无码操逼视频| 你操综合| 国内精品一区二区三区| а√在线中文8| 91麻豆精品无码| 久久肏逼| 欧美成人中文字幕在线| 性久久久久久久久久| 91视频高清无码| 国产又爽又黄视频| 黄色爱爱视频| 成人毛片一区二区三区无码| 日本亚洲精品秘入口A片| 亚洲欧洲久久| 日韩AV手机在线观看| 日韩欧美一级A片| 国产又黄又大又粗| 国产毛片久久久久久国产毛片| 成人片成人网久久蜜桃臀| 日韩中文视频| 国产成人一区| 91成人在线视频| 亚洲天堂无码在线| 亚洲精品三级| 网址你懂的| 日韩人妻丰满无码区A片| 一区二区三区视频免费| 91啦丨露脸丨熟女| 日逼视频免费看| 操比视频| 久久一区二区三区四区| 成人无码在线观看免费视频| 黄色免费网站| 久操视频在线观看| 大鸡巴黄色视频免费观看| 黄色一区在线| 久久无码区| 亚洲Japanese办公室制服| 手机看片午夜福利网| 朝鲜性感AV在线| 青娱乐在线成人| footjobvk| 长腿女神打扫偷懒被主人猛操惩罚| 亚洲国产一区二区三区四区| 欧美在线成人网| 性爱午夜视频| 婷婷五月电影| AV第一页| 午夜视频18| 欧一美一婬一伦一区?| 日韩成人小说| 午夜亚洲国产一区视频网站 | 3D精品啪啪一区二区免费| 国产精品V| 亚洲精品一二三区| 成人av免费在线观看| 国产精品A片守望| 97在线免费视频| 69免费视频| 国产乱子伦真实精品| 大香蕉精品在线| 人人操人人色| 欧美日本成人网站入口| 欧美激情性爱网站| 亚洲中文视频在线| 婷婷五月六月| 91影音先锋| 欧美日韩在线视频免费| 操精品| 99er在线视频| 成人做爰100片免费观看视频| 超碰人人摸| Av大香蕉| 免费无码视频在线观看| 中文字幕不卡| 中文字幕高清在线中文字幕中文字幕 | 你操综合| 亚洲高清无码在线播放| 97精品综合久久| 成人福利| 欧美色网| 激情无码网站| 高清无码操逼视频| 精品久热| 欧美日韩精品一区二区三区视频播放| 久久艹免费视频| 久久精品视频99| 五月婷婷深深爱| 无码黑人| 羞羞色院91蜜桃| 天天射夜夜骑| 国产成人精品一区二区三区四区| 欧美亚洲国产一区二区三区| 日本a在线免费观看| 欧美日韩色| 国产一级操逼视频| 九九国产精品| 天天日天天草| 久久久久久三级电影| 巨乳一区二区三区| 午夜老司机福利一二三区| 麻豆精品秘国产| 中国一级黄色毛片| 亚洲AV动漫| 五月天性爱视频| 麻豆性爱| 一級免費网站| 亚洲福利在线免费观看| 色综合婷婷| 国产成人免费做爰视频| 天天操一操| 操碰97| 麻豆91免费看| 美女少妇激情BBBB| 免费日韩黄色电影| 欧美人妻日韩精品| 久久亚洲av| 豆花成人社区,视频| 裸体美女视频欧美18| 2018人人操| 翔田千里一区二区| 亚洲在线中文字幕| 青娱乐国产AV| 水蜜桃一区二区三区| 操美女大逼| 国产精品成人影视| 国产777777| 性感成人在线| 久操B| 久久国产精品99久久人人澡| 久久午夜福利电影| 婷婷免费视频| 一本一道久久综合狠狠躁牛牛影视| 五月亚洲六月婷婷| 亚洲Av秘无码一区二区| 大香蕉尹人在线观看| 欧美综合精品| 亚洲综合色婷婷| 天天日天天操天天| 久久久久亚洲AV无码专区成人| 不卡视频一区| 青青草在线播放| 国产高清无码视频在线观看| 加勒比在线视频| 久久99高清| 五月天婷婷激情视频| 插菊花综合网3| 国产第二页| 国产g蝌蚪| 一边做一边说国语对白| 豆花在线视频| 黑人久久| 99性视频| 中文字幕国产在线观看| 夜操| 91蝌蚪丨人妻丨丝袜| 亚洲精品中文字幕在线| 操老骚逼视频| 91无码高清| 国产图区| 无码专区在线看v| 无码不卡在线播放| 无码在线观看免费视频| 国产精品国产精品国产专区不片 | 天天做天天爱| 黄片91| 91ccc| 欧美另类| 欧亚毛片| 久操手机在线| 日韩十八禁网站| 91精品国产综合久久蜜臀使用方法| 欧美日本国产| 福利视频导航自拍| 上床视频网站| 华女与黑人91A∨| 天天插在线视频| 久久超碰99| 久草热视频| 欧美在线中文字幕| 日韩电影免费在线观看| 国产精品美女久久久久AV爽 | 国产精品v欧美精品v日韩精品| 日韩一级片免费观看| 一级a片在线观看| 一级大毛片| 黄色操B视频| 天天干天天舔| 亚洲无码久久久| 黄色大片免费网站| 亚洲黄片大全| 中文字幕在线观看网站| 台湾成人在线视频| 欧美大骚逼| 九九九亚洲| 欧美视频综合网| 日韩无码AV一区二区三区| 口爆吞精在线观看| 大奶一区二区| 成人在线第一页| 91久久婷婷国产| 无码a区天堂| 偷拍视频图片综合网| JLZZJLZZ亚洲女人| 午夜精品视频| 黄色视频在线观看| 国产精品无码av| 国产激情视频在线| 91精品午夜少妇| 免费一级A片在线播放| 高清无码免费在线观看| 嫩BBB槡BBBB槡BBBB二一| 天天综合7799| a片在线免费观看| 日韩精品一二| 乱伦一级| 日日射人妻| 日日久视频| 五月天狠狠干| 中国A级片| 日韩中出视频| 免费看一级一级人妻片| 天天操天天操天天操天天| 无码av一区二区| 91探花足浴店少妇在线| 国产极品无码| 国产91网| 一本大道香蕉av久久精东影业| 亚洲第一成人久久网站| 成人毛片| 人妻少妇中文字幕久久牛牛| 免费18禁网站| 五月丁香六月| 大香蕉伊人色| 天堂成人网| 欧美XXXXBBBB| 国产亚洲欧美精品综合在线| 亚洲免费视频在线观看| 69人人| 欧美成人性爱视频| 国产精品无码一区二区三| 在线观看免费黄色| 成人超碰在线| 中文字幕日本| 欧日无码| 欧美一级成人片| 天天综合7799| 国产Av婬乱麻豆| www.日韩AV| 国产123区| 精品秘一区性综合三区| 天天肏夜夜肏| 天天三级片| 欧美色图综合| 天堂无线av无码av| 高潮喷水视频| 五月网| 国产精品美女久久久久久久久 | 黄片无码| 中文字幕免费在线观看视频| 成人在线中文字幕| 99视频自拍| 男人天堂色男人| 成人黄色网址| 成人区人妻精品一| 农民av| 天天操夜夜爱| 久99热| 亚洲无码av网站| 亚洲中文字幕一区二区| 日韩AV免费在线播放| 成人无码交配视频国产网站| 伊人网站视频在线| 欧美性爱天天操| 久操视频一区二区三区| AV黄色在线| 成人亚洲| 色婷婷18正码国产| 日韩精品无码一区二区| 俺来也俺去也www色官| av黄色在线观看| A级片免费看| 欧美日韩在线免费| 在线免费黄色网址| 九九精品久久| 操逼资源| 99热最新在线| 欧美色图亚洲另类| 婷久久| 秋霞网一区二区| 丰满人妻精品一区二区在线| 免费观看一级A片| 十八禁无码网站在线观看| 亚州加勒比无码| 亚洲日本中文| 亚洲精品中文字幕在线| 一级a一级a爰片免费| 国产中文字幕片| 91夜夜| 国产免费精彩视频| 91成人看片| brazzers疯狂作爱| 这里只有精品在线观看| 中国一级黄色A片| 国产成人免费做爰视频| 好吊一区二区| 日韩高清无码一区二区三区| 国产精品无码一区二区三| 精品人妻午夜一区二区三区四区| 中文字幕日韩欧美在线| 中文字幕不卡在线| 亚洲经典免费视频| 亚州精品人妻一二三区| 国产内射久久| 国产精品1| 六月激情丁香| 欧美三级片在线| 99热免费精品| 中文字幕激情精品| 欧美一级特黄AAAAAA片| 无码av观看| 操碰视频在线| 国产精品视频久久久久| 欧美色色色色色色| 4388亚洲最大| 欧美一级性爱| 婷婷午夜精品久久久久久| 天天操夜夜操| AV无码免费一区二区三区不卡 | 亚洲无码AV麻豆| 群交无码| 国产传媒av| 日本91视频| 亚洲无码一级视频| 免费看操逼视频| 欧美熟妇一区二区| 天堂亚洲AV无码精品成人| 国产不卡在线观看| 无码日逼视频| 久久国产性爱| 男女一区二区| 波多野结衣黄色| 国产精品秘久久久久久一两个一起| 2025最新偷拍| 亚洲VA| 99天天视频| 老熟女视频| 日韩成人影视| 精品人妻一区二区三区四区| 草逼视频网| 成人久久久久久| 久久久天堂| 四虎蜜桃| 色就是欧美| 中文字幕无码高清| TheAV精尽人亡av| 三级片无码| 久久精品视频网站| 99AV| 国产精品性爱视频| 精品码A片18| 无码任你躁久久久久| 丁香五月婷婷六月| 欧一美一婬一伦一区二区三区自慰国 | 国产女人视频| 国产午夜精品一区二区三区嫩A| 青春草在线观看| 一区二区三区免费在线观看| 亚洲女人天堂AV| 一区二区三区四区久久| 日本亚洲中文字幕| 蜜桃免费AV| 国产二区三区| 黄色av免费在线| 91人妻人人澡人人爽人人精品| 无码视频韩国| 中文字幕乱在线| 影音先锋自拍| 精品国产午夜福利在线观看| 亚洲视频在线观看中文字幕| 国产精品秘久久久久久99| 欧美在线中文| 无码成人在线观看| 国产成人AV网站| 久久国产乱子伦精品免费午夜... 国产毛片精品一区二区色欲黄A片 | 丁香五月天网站| 蜜臀久久99精品| 午夜性爽视频男人的天堂| 国产一级a毛一级a做免费图片 | 国产精品播放| 成人久久久久久| AA片在线观看视频在线播放| 国产不卡视频| 女邻居的B好大| 97爱爱| 欧美在线一级| ThePorn精品无码| 少妇被躁到高潮无码| 欧美日韩高清无码| www亚洲视频| 国产精品无码永久免费A片| 亚洲午夜成人| 国产精品第一| 能看的操逼网站| 欧美黄色影院| 人人看人人摸人人搞| 黄色视频A片| 无码中文视频| 青青草视频| 午夜ww| 久久成人A片| 黄色免费在线观看视频| 国产一区二区电影| 欧美激情中文字幕| 麻豆91麻豆国产传媒| 日韩在线视频91| 国产精品人妻无码久久久郑州天气网 | 日皮视频在线免费观看| 久久精品99国产国产精| 久久三级视频| 欧美一级婬片AAAA毛片| 久久久久久久久久成人| 国产成人a亚洲精品www| 欧美国产综合| 成人福利午夜A片公司| 五月精品在线| 日韩中文字幕| 91人妻无码精品一区二区| 东方av在线播放| 五月天丁香婷婷视频| 免费毛片基地| 久久国内| 蜜臀AV一区二区| 国产精品视频瘾无码| 日本中文字幕无码| 农村老太HD肉HD| av不卡在线观看| 成人黄色网址| 亚洲一级av| 中日韩免费视频| 午夜三级无码| 操操插插| 亚洲黄色电影在线观看| 2018最好看的中文字幕高清电影 | 国产免费AV在线观看| 青草成人在线视频| 先锋资源av| 韩日中文字幕| 特级西西西88大胆无码| 午夜精品成人| av在线天堂| 日韩麻豆| 亚洲黄色电影网| 午夜国产在线视频| 久久久久久97电影院电影院无码 | 亚洲人妻无码在线| 亚洲无码在线播放视频| 亚洲无码高清免费| www.怡春院| 69超碰| 一本大道DVD中文字幕| 国产麻豆精品成人免费视频| 91人妻人人澡人人爽人人精品一| 欧美高清在线综合| 巜人妻初尝按摩师BD中字| 九九视频免费观看| 伊人影院99| 国产老女人操逼视频| 色婷婷丁香五月| 亚洲影院在线观看| 日韩成人精品在线| gogogo日本免费观看高清电视剧的注意| 五月天婷婷色播| 亚洲第一黄色| 中文字幕在线观看日韩| 欧美在线成人视频| 俺也来www俺也色com| 亚洲国产成人精品女人久久| 神马午夜av| 农村A片婬片AAA毛片| 口爆吞精在线| 五月婷婷色色色| 热九九精品| 国产51视频| 伊人大香蕉视频| 人妻av在线| 久久女女| 69av在线观看视频| 91成人视频免费观看| 丁香五月天婷婷久久| 人人妻人人爱| 亚洲免费高清视频| 久久久久久穴| 日韩少妇无码视频| 69成人| 久久成人一区| 中文字幕中文字幕一区| 亚洲无码第一页| 国模私拍视频| 麻豆国产91在线播放| 日韩精品成人免费观看视频 | 久久久久亚洲AV成人片乱码| 精品无套| 99久久久成人国产精品| 97精品综合久久| 成人短视频在线观看| 国产香蕉在线视频| 波多野结衣无码一区| 亚洲欧洲久久| 成人国产精品免费观看| 国产成人一区| 色婷婷丁香五月天| 一本色道久久综合无码欧美| 欧美成人在线视频网站| 暖暖日本在线| 人妻精品综合码| 亚洲天堂2016| 人妻少妇中文字幕久久牛牛| 国产日本欧美韩国久久久久| 99久久久成人国产精品| 亚洲天堂精品在线观看| 久久久久久高清毛片一级| 成人黄色视频网站在线观看| 最近最经典中文MV字幕| 996热re视频精品视频| 人人操人人看人人干| 欧美成人A级片| 青娱乐av| 果冻传媒A片一二三区| 久久久久三级片| 大屌色| 日韩日日日| 欧美日韩国产激情| 国产美女一区| 一边做一边说国语对白| 无码一区二区三区免费看| 亚洲激情视频网站| 欧美色伊人| 天天干天天干天天干| 天天做天天爱| 先锋影音av在线| 人妻大屁股-91Porn| 成人做爰100片免费观看视频| 欧美午夜成人一区二区三区| 好吊顶亚洲AV大香蕉色色| 无码高潮视频| 日韩亚洲在线视频| 国产suv精品一区二区6精华液| 欧美大胆视频| 老熟女AV| 青草大香蕉| 日韩欧美不卡色不卡| 国产精品黄片| 亚洲操B| 3D动漫精品啪啪一区二区免费| 婷婷五月精品中文字幕| 精品一区二区三区免费毛片| 爱爱成人视频| a免费观看| 成人黄色视频网站在线观看| 亚洲成人二区| 99久久精品国产一区二区三区| 国产三级精品三级在线观看| jizz丝袜| 97干在线| 男女一区二区| 久久久极品| 亚洲成人精品一区| 99精品国产一区二区| a片小视频| 麻豆视屏| 日本在线不卡一区| 中文字幕播放| 欧美熟女性爱视频| 欧美性BBwBBwBBwHD| 亚洲无码久久飞鱼网站| aaa少妇| 大香蕉久久| 色情一级A片成人片| 无码视频播放| 无码天堂| 日韩精品在线观看视频| 男人天堂网站| 激情99| 欧美成人毛片AAAAAA| 99精品热| 大香蕉黄色电影| 浙江妇搡BBBB搡BBBB| 日韩中文字幕在线视频| 一区二区三区av| 高清无码一区| 狠狠干狠狠操| 99热在线观看| 正在播放吴梦梦淫行| 91最新在线播放| 欧美色图视频网站| 亚洲精品一区二区三区蜜桃| 一区性爱| 日本不卡一区二区三区四区| 久久久中文| 校园春色成人| 日韩成人无码特集| 免费看黄色大全| 亚洲国产精品成人综合色在线婷婷 | 爆操欧美| 尿在小sao货里面好不好| 台湾毛片| AV网站免费在线观看| 你操综合| 激情国产视频| 内射91| 国产在线中文| 18一20女一片毛片| 99r| 亚洲www啪成人一区二区麻豆| 日韩天天干| 黄色免费网站| 亚洲AV无码一区二区三竹菊| 丰满人妻一区二区免费看| 午夜亚洲AV永久无码精品蜜芽| 国产老熟女高潮毛片A片仙踪林 | 天天日天天射天天干| 人人妻人人爽人人操| 97超碰在线免费观看| 亚洲日韩成人| 中字无码| 免费成人黄视频| 思思热思思操免费视频| 一級免費网站| 91老熟| 中文字幕日韩美| 欧美高清另类| 人妻天天爽夜夜爽| 在线国产中文字幕| www.午夜| 日韩欧美小视频| 成人无码网站| 日本www色| 五月天黄色电影| 欧美视频免费操逼图。| 中文字幕88页| 无码任你操| 日本中文字幕在线免费观看| 美女超碰| 二区不卡| www.午夜| 成人激情五月天| 国精产品一区二区三区黑人和中国| 精品操逼| 亚洲情免| 色欲天天网| 一大高清日韩| 欧美一级免费A片| 天天综合在线观看| 亚洲中文久久| 日本不卡在线视频| 国产精品永久免费| 国产成人精品一区二区| 欧美视频操逼| 国产精品无码久久久久成人app| 久久久偷拍视频| 荫蒂添的高潮免费视频| 欧洲亚洲在线| 久久成人电影院| 亚洲精品成人无码毛片| 五月综合激情| 97国产精品| 1024国产在线| 亚洲四房播| 国产高清a| 十八禁视频在线观看网站.www| 日本A片在线播放| 亚洲天堂一区二区| 99国产在线观看| 中文字幕系列| 午夜一区二区三区免费| 日本黄A三级三级三级| 探花在线综合| 91免费成人| 日韩黄色小说| www.亚洲无码| 无码不卡一区| 欧美日韩肏屄视频| 12——13女人毛片毛片| 无码三| jizz在线免费观看| 日本精品一区二区| 人人妻人人操人人爱| 日本亚洲精品秘入口A片| 美国无码| 91九色首页| 狠狠干2018| 欧美mv日韩mv国产网站| 蜜臀久久99精品久久一区二区 | 成人亚洲精品一区二区三区| 亚洲国产视频一区| av中文字幕无码| 精品人妻二区中文字幕| 青娱乐国产在线| 日韩无码人妻一区二区三区| 无码草| 欧美mv日韩mv国产| 国产日韩欧美一区| 国产av中文字幕| 人妻无码久久精品人妻成人| 91福利视频网| 97干在线| 欧美搡BBBB搡BBB| 国产黄色在线播放| 操逼大片| 国产无码乱伦内射| 久久尹人| 欧美日韩一二| 中文字幕亚洲日韩| 一级黄色蜜芽视频| 国产麻豆免费| 美女靠逼视频| 大香蕉久热| 嫩BBB嫩BBB嫩BBB| 少妇456| 男女性爱视频网站| 国产AV无码高清| 午夜性视频| 成人视频在线观看18| 免费欧美黄片| 狠狠干狠狠艹| 一二三区视频| 人人干人人草| 亚洲精品乱码久久久久久蜜桃欧美 | 超碰人人爱国产视| 国产中文字幕在线视频| 亚洲无码高清视频| 精品人人人人| 中文在线一区| 亚洲福利视频网| 亚洲无码在线播放| 福利视频免费观看| 操逼激情网| 黄色日逼片| 久久v| 国产suv精品一区二区6精华液| 蝌蚪窝免费视频| 丁香婷婷一区二区三区| 久久v| 99天天视频| 蜜臀久久久| 超碰91在线观看| 韩国三级中文字幕HD久久精品| 青青操日日干| 另类色综合| 国产高清一区| 中国少妇xxx| 91在线视频免费| 色婷婷一级A片AAA毛片| 欧美激情网| 日韩18在线| 人人澡超碰碰| 在线观看者亚洲| 一级国产黄色视频| 荫蒂添的高潮免费视频| 日韩人妻斩| 成人三区| 91精品91久久久中77777 | 国产激情在线观看视频| AV在线免费观看网址| 狠狠干综合| 霸道总裁雷总各种姿势白浆爱情岛论坛 | 情侣av| 国产激情视频在线| 四川性BBB搡BBB爽爽爽小说| 亚洲日本中文| 特级西西西西4444级酉西88wwww特 | 在线播放高清无码| 国产一区二区三区在线视频| 国产成人一区二区| 在线免费黄色网址| 99看片| 国产精品扒开腿做爽爽爽A片唱戏 中文字幕一区二区三区精华液 | 日本操B| 加勒比一区二区| 天天摸天天干| 五月综合激情| 大香蕉伊人电影| 成人AV一区二区三区| 天天干B| 777欧美| 手机AV在线播放| www.黄色在线观看| 暴操美女网站| 亚洲一区二区成人| 国产一级a毛一级做a爱| 91香蕉在线观看视频在线播放| 波多野结衣av在线观看| 日韩欧美毛片| 91免费观看国产| 日本免费不卡视频| 一本色道久久88加勒比| 久久永久免费精品人妻专区| 日本熟妇无码一区二区| 人人操人人草| 亚洲AV无码第一区二区三区蜜桃| 日韩黄色电影视频| 欧美性网站| 一级做a爰片毛片A片| 国产成人自拍偷拍视频| 在线免费观看AV片| 中文字幕码精品视频网站| 日韩无码AV一区二区三区| 国产又粗又长的视频| 99久久婷婷国产综合精品青牛牛| 亚洲国产成人一区二区| 91看片| 一区无码视频| 丁香五月情| 日韩黄色电影网站| 2024av在线| 成人毛片100免费观看| 亚洲第一成人网站| 大香蕉在线视频网| 麻豆国产精品一区| 亚洲天堂2014| 亚洲无码资源| 午夜福利院| 欧美怡红院视频| 久久国内| 韩国高清无码60.70.80|