久久福利_99r_国产日韩在线视频_直接看av的网站_中文欧美日韩_久久一

您的位置:首頁技術文章
文章詳情頁

淺談Java基準性能測試之JMH

瀏覽:179日期:2022-08-09 15:24:45
目錄一、JMH vs JMeter二、JMH基本用法2.1、創建JMH項目2.2、編寫基準測試代碼2.3、JMH打包、運行2.4、JMH與Springboot三、JMH注解3.1、JMH Benchmark Modes3.2、Benchmark Time Units3.3、Benchmark State3.4、State Object @Setup @TearDown3.5、Fork3.6、Thread3.7、Warmup3.8、Measurement四、輸出測試結果一、JMH vs JMeter

JMeter可能是最常用的性能測試工具。它既支持圖形界面,也支持命令行,屬于黑盒測試的范疇,對非開發人員比較友好,上手也非常容易。圖形界面一般用于編寫、調試測試用例,而實際的性能測試建議還是在命令行下運行。

很多場景下JMeter和JMH都可以做性能測試,但是對于嚴格意義上的基準測試來說,只有JMH才適合。JMeter的測試結果精度相對JVM較低、所以JMeter不適合于類級別的基準測試,更適合于對精度要求不高、耗時相對較長的操作。

JMeter測試精度差: JMeter自身框架比較重,舉個例子:使用JMH測試一個方法,平均耗時0.01ms,而使用JMeter測試的結果平均耗時20ms,相差200倍。JMeter內置很多采樣器:JMeter內置了支持多種網絡協議的采樣器,可以在不寫Java代碼的情況下實現很多復雜的測試。JMeter支持集群的方式運行,方便模擬多用戶、高并發壓力測試。

總結: JMeter適合一些相對耗時的集成功能測試,如API接口的測試。JMH適合于類或者方法的單元測試。

二、JMH基本用法2.1、創建JMH項目

官方推薦為JMH基準測試創建單獨的項目,最簡單的創建JMH項目的方法就是基于maven項目原型的方式創建(如果是在windows環境下,需要對org.open.jdk.jmh這樣帶.的用雙引號包裹)。

mvn archetype:generate

          -DinteractiveMode=false

          -DarchetypeGroupId=org.openjdk.jmh

          -DarchetypeArtifactId=jmh-java-benchmark-archetype

          -DarchetypeVersion=1.21

          -DgroupId=com.jenkov

          -DartifactId=first-benchmark

          -Dversion=1.0

可以看到生成的項目pom文件中主要是添加了兩個jmh的依賴和設置了maven-shade-plugin的編譯方式(負責把項目的所有依賴jar包打入到目標jar包中,與springboot的實現方式類似)。

<dependencies><dependency> <groupId>org.openjdk.jmh</groupId> <artifactId>jmh-core</artifactId> <version>${jmh.version}</version></dependency><dependency> <groupId>org.openjdk.jmh</groupId> <artifactId>jmh-generator-annprocess</artifactId> <version>${jmh.version}</version> <scope>provided</scope></dependency> </dependencies>...<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-shade-plugin</artifactId> <version>2.2</version> <executions><execution> <phase>package</phase> <goals><goal>shade</goal> </goals> <configuration><finalName>${uberjar.name}</finalName><transformers> <transformer implementation='org.apache.maven.plugins.shade.resource.ManifestResourceTransformer'><mainClass>org.openjdk.jmh.Main</mainClass> </transformer></transformers><filters> <filter><!-- Shading signed JARs will fail without this. http://stackoverflow.com/questions/999489/invalid-signature-file-when-attempting-to-run-a-jar--><artifact>*:*</artifact><excludes> <exclude>META-INF/*.SF</exclude> <exclude>META-INF/*.DSA</exclude> <exclude>META-INF/*.RSA</exclude></excludes> </filter></filters> </configuration></execution> </executions></plugin>

生成的項目中已經包含了一個class文件MyBenchmark.java,如下:

public class MyBenchmark { @Benchmark public void testMethod() {// This is a demo/sample template for building your JMH benchmarks. Edit as needed.// Put your benchmark code here. }}2.2、編寫基準測試代碼

在上面生成的MyBenchmark類的testMethod中就可以添加基準測試的java代碼,舉例如下:測試AtomicInteger的incrementAndGet的基準性能。

public class MyBenchmark { static AtomicInteger integer = new AtomicInteger(); @Benchmark public void testMethod() {// This is a demo/sample template for building your JMH benchmarks. Edit as needed.// Put your benchmark code here.integer.incrementAndGet(); }}2.3、JMH打包、運行

項目打包

mvn clean install

運行生成的目標jar包benchmark.jar:

java -jar benchmark.jar

# JMH version: 1.21

# VM version: JDK 1.8.0_181, Java HotSpot(TM) 64-Bit Server VM, 25.181-b13

# VM invoker: C:Javajdk1.8.0_181jrebinjava.exe

# VM options: <none>

# Warmup: 5 iterations, 10 s each

# Measurement: 5 iterations, 10 s each

# Timeout: 10 min per iteration

# Threads: 1 thread, will synchronize iterations

# Benchmark mode: Throughput, ops/time

# Benchmark: org.sample.MyBenchmark.testMethod

# Run progress: 0.00% complete, ETA 00:01:40

# Fork: 1 of 1

# Warmup Iteration   1: 81052462.185 ops/s

# Warmup Iteration   2: 80152956.333 ops/s

# Warmup Iteration   3: 81305026.522 ops/s

# Warmup Iteration   4: 81740215.227 ops/s

# Warmup Iteration   5: 82398485.097 ops/s

Iteration   1: 82176523.804 ops/s

Iteration   2: 81818881.730 ops/s

Iteration   3: 82812749.807 ops/s

Iteration   4: 82406672.531 ops/s

Iteration   5: 74270344.512 ops/s

Result 'org.sample.MyBenchmark.testMethod':

  80697034.477 ±(99.9%) 13903555.960 ops/s [Average]

  (min, avg, max) = (74270344.512, 80697034.477, 82812749.807), stdev = 3610709.330

  CI (99.9%): [66793478.517, 94600590.437] (assumes normal distribution)

# Run complete. Total time: 00:01:41

REMEMBER: The numbers below are just data. To gain reusable insights, you need to follow up on

why the numbers are the way they are. Use profilers (see -prof, -lprof), design factorial

experiments, perform baseline and negative tests that provide experimental control, make sure

the benchmarking environment is safe on JVM/OS/HW level, ask for reviews from the domain experts.

Do not assume the numbers tell you what you want them to tell.

Benchmark                Mode  Cnt         Score          Error  Units

MyBenchmark.testMethod  thrpt    5  80697034.477 ± 13903555.960  ops/s

從上面的日志我們大致可以了解到 JMH的基準測試主要經歷了下面幾個過程:

1.打印本次測試的配置,warmup:5輪;measurement:5輪;每輪:10s;啟動1個線程做測試;基準測試指標:吞吐量(throughput,單位是s);測試方法MyBenchmark.testMethod

2.啟動一個JVM進程做基準測試(也可以設置啟動多個進程,減少隨機因素的誤差影響)

3.在JVM進程中先執行了5輪的預熱(warmup),每輪10s,總共50s的預熱時間。預熱的數據不作為基準測試的參考。

4.測試了5輪,每輪10s,總共50s的測試時間

5.匯總測試數據、生成結果報表。最終結論是吞吐量(80697034.477 ±13903555.960 ops/s),其中80697034.477 是結果,13903555.960是誤差范圍。

2.4、JMH與Springboot

在對Springboot項目做JMH基準測試時可能會因為maven-shade-plugin插件的問題打包報錯,需要在JMH的maven-shade-plugin的插件配置中添加id即可。項目的pom可能如下:

<project xmlns='http://maven.apache.org/POM/4.0.0' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd'> <modelVersion>4.0.0</modelVersion> <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.0.7.RELEASE</version><relativePath/> </parent>...<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-shade-plugin</artifactId> <version>2.2</version> <executions><execution> <!-- 需要在此處添加一個id標簽,否則mvn package時會報錯 --> <id>shade-all-dependency-jar</id> <phase>package</phase> <goals><goal>shade</goal> </goals> <configuration>... </configuration></execution> </executions></plugin>...</project>

在測試代碼中正常基于SpringBootApplication構建ConfigurableApplicationContext從而獲取bean的方式獲取對象測試即可。

public class StringRedisTemplateBenchmark { StringRedisTemplate redisTemplate;@Setup(Level.Trial) public void setUp() {redisTemplate = SpringApplication.run(SpringBootApplicationClass.class).getBean(StringRedisTemplate.class); }@Benchmark public void testGet() {redisTemplate.opsForValue().get('testkey'); }}@SpringBootApplicationpublic class SpringBootApplicationClass {}

application.properties

lettuce.pool.maxTotal=50lettuce.pool.maxIdle=10lettuce.pool.minIdle=0lettuce.sentinel.master=mymasterlettuce.sentinel.nodes=10.xx.xx.xx:26379,10.xx.xx.xx:26379lettuce.password=xxxxxx三、JMH注解

JMH測試的相關配置大多是通過注解的方式體現的。

具體每個注解的使用實例也可以參考官網

http://hg.openjdk.java.net/code-tools/jmh/file/tip/jmh-samples/src/main/java/org/openjdk/jmh/samples/

3.1、JMH Benchmark Modes

JMH benchmark支持如下幾種測試模式:

Throughput: 吞吐量,測試每秒可以執行操作的次數 Average Time: 平均耗時,測試單次操作的平均耗時 Sample Time:采樣耗時,測試單次操作的耗時,包括最大、最小耗時,已經百分位耗時等 Single Shot Time: 只計算一次的耗時,一般用來測試冷啟動的性能(不設置JVM預熱) All: 測試上面的所有指標

默認的benchmark mode是Throughput,可以通過注解的方式設置BenchmarkMode,注解支持放在類或方法上。如下所示設置了Throughput和SampleTime兩個Benchmark mode。

@BenchmarkMode({Mode.Throughput, Mode.SampleTime})public class MyBenchmark { static AtomicInteger integer = new AtomicInteger(); @Benchmark public void testMethod() {// This is a demo/sample template for building your JMH benchmarks. Edit as needed.// Put your benchmark code here.integer.incrementAndGet(); }}3.2、Benchmark Time Units

JMH支持設置打印基準測試結果的時間單位,通過@OutputTimeUnit注解的方式設置。

@OutputTimeUnit(TimeUnit.SECONDS)public class MyBenchmark { static AtomicInteger integer = new AtomicInteger(); @Benchmark public void testMethod() {integer.incrementAndGet(); }}3.3、Benchmark State

有時候我們在做基準測試的時候會需要使用一些變量、字段,@State注解是用來配置這些變量的生命周期,@State注解可以放在類上,然后在基準測試方法中可以通過參數的方式把該類對象作為參數使用。@State支持的生命周期類型:

Benchmark: 整個基準測試的生命周期,多個線程共用同一份實例對象。該類內部的@Setup @TearDown注解的方法可能會被任一個線程執行,但是只會執行一次。 Group: 每一個Group內部共享同一個實例,需要配合@Group @GroupThread使用。該類內部的@Setup @TearDown注解的方法可能會該Group內的任一個線程執行,但是只會執行一次。 Thread:每個線程的實例都是不同的、唯一的。該類內部的@Setup @TearDown注解的方法只會被當前線程執行,而且只會執行一次。

被@State標示的類必須滿足如下兩個要求:

類必須是public的

必須有無參構造函數

3.4、State Object @Setup @TearDown

在@Scope注解標示的類的方法上可以添加@Setup和@TearDwon注解。@Setup:用來標示在Benchmark方法使用State對象之前需要執行的操作。@TearDown:用來標示在Benchmark方法之后需要對State對象執行的操作。如下示例:

@OutputTimeUnit(TimeUnit.SECONDS)public class MyBenchmark {@Benchmark public void testMethod(TestAddAndGetState state) {state.getInteger().incrementAndGet(); } @State(Scope.Benchmark) public static class TestAddAndGetState {private AtomicInteger integer;@Setup(Level.Iteration)public void setup() { integer = new AtomicInteger();}public AtomicInteger getInteger() { return integer;} }}

@Setup、@TearDown支持設置Level級別,Level有三個值:

Trial: 每次benchmark前/后執行一次,每次benchmark會包含多輪(Iteration) Iteration: 每輪執行前/后執行一次 Invocation: 每次調用測試的方法前/后都執行一次,這個執行頻率會很高,一般用不上。3.5、Fork

@Fork注解用來設置啟動的JVM進程數量,多個進程是串行的方式啟動的,多個進程可以減少偶發因素對測試結果的影響。

3.6、Thread

@Thread用來配置執行測試啟動的線程數量

3.7、Warmup

@Warmup 用來配置預熱的時間,如下所示配置預熱五輪,每輪1second,也就是說總共會預熱5s左右,在這5s內會不停的循環調用測試方法,但是預熱時的數據不作為測試結果參考。

@Warmup(iterations = 5, time = 1)3.8、Measurement

@Measurement用來配置基準測試的時間,如下所示配置預熱10輪,每輪1second,也就是說總共會測試10s左右,在這10s內會不停的循環調用測試方法,同事測試數據會被基準測試結果參考。

@Measurement(iterations = 5, time = 1)四、輸出測試結果

jmh支持多種格式的結果輸出text, csv, scsv, json, latex

如下打印出json格式的:

java -jar benchmark.jar -rf json

以上就是淺談Java基準性能測試之JMH的詳細內容,更多關于Java基準性能測試 JMH的資料請關注好吧啦網其它相關文章!

標簽: Java
相關文章:
主站蜘蛛池模板: 日韩一区二区三区在线看 | 久久亚洲精品中文字幕 | www精品| 一区二区三区在线 | 欧 | 色婷婷综合久久久中文字幕 | 国产精品久久久久aaaa | 中文字幕一区二区三区在线视频 | 午夜精品一区二区三区在线视频 | 在线观看国产视频 | 中文字幕 国产精品 | a免费在线 | 色综合天天天天做夜夜夜夜做 | 国家aaa的一级看片 操操操夜夜操 | av成人在线观看 | 97高清国语自产拍 | 一区免费看 | 国产一区二区三区高清 | 免费成人av | 香蕉视频一级片 | 日本做暖暖视频高清观看 | 毛片网站在线观看 | 九九热最新视频 | 嫩草视频网 | 国内精品国产成人国产三级粉色 | 精品亚洲一区二区三区 | 男女黄色免费网站 | 久久精品国产99国产 | 国产精品国产三级国产aⅴ 羞羞的视频在线 | 99精品电影 | 羞羞视频在线观免费观看 | 国内精品视频 | 亚洲精品久久久久久久久 | 91在线看片 | 国产精品久久久久久中文字 | 91精品国产91久久久久久黑人 | 欧洲一级毛片 | 青青草一区二区 | 青青久久北条麻妃 | 国产精品久久久久久久久久久新郎 | 久久久久国产精品一区二区三区 | 国产精品999 | 婷婷在线视频 | 特级理论片 | 久久久一区二区三区 | 国产精品成人在线视频 | 国产日韩一区二区三区 | 亚洲va中文字幕 | 毛片黄色 | 亚洲精品在线视频 | 亚洲欧美日韩在线一区 | 免费在线看a | 三区在线| 黄色欧美一级片 | 天天操夜夜操 | 亚洲一区二区三区久久 | 永久精品 | 欧美视频在线一区 | 久草视频在线播放 | 99精品欧美一区二区三区 | 国产a久久精品一区二区三区 | 91精品国产乱码久久久久久 | 国精产品一区二区三区 | 欧美极品一区二区三区 | 露娜同人18av黄漫网站 | 91福利视频导航 | 精品九九九 | 国产99久久久久久免费看农村 | 99精品免费观看 | 人人99| 日韩av高清| 国产小视频在线播放 | 亚洲一区免费在线观看 | 国产一级视频 | 国产精品自产拍在线观看 | www.精品 | 久久人 | 国产三级日本三级美三级 | 久久精品久久久久久久久久16 | 中文字幕在线观看不卡视频 | 午夜无码国产理论在线 | 91视频免费网站 | eeuss国产一区二区三区四区 | 亚洲在线视频 | 特黄视频 | 国产激情午夜 | 欧美黄色一区 | 色啪网站 | h片免费观看 | 国产午夜精品一区二区三区视频 | 久久亚洲天堂 | 暖暖成人免费视频 | 日韩精品在线网站 | 欧美日本国产欧美日本韩国99 | 中文字幕欧美在线 | 国产激情 | 亚洲美女精品视频 | av2014天堂网 | 一级毛片免费看 | 人和拘一级毛片 | www国产亚洲精品久久网站 | 国产精品久久久久久妇女6080 | 亚洲一区在线免费观看 | 国产亚洲精品久 | 91麻豆精品国产91久久久更新时间 | 国产精品一区av | 成人激情视频在线观看 | 欧洲美女7788成人免费视频 | av片免费 | 色婷婷综合久久久中文字幕 | 夜夜爽99久久国产综合精品女不卡 | 日本成人午夜影院 | 亚洲一二三区电影 | 欧美日韩一区二区在线 | 国产精品久久久久久久久久久久 | 亚洲网站在线免费观看 | 激情99 | 国产欧美日韩综合精品 | 99亚洲精品 | 国产黄色免费小视频 | 欧美日韩中文在线 | 亚洲视频自拍 | 毛片大全 | 国产精品久久久久久婷婷天堂 | 小川阿佐美88av在线播放 | 日韩国产| 国产成人精品免高潮在线观看 | 在线观看精品自拍私拍 | 99久久99| 日韩城人网站 | 日韩日日夜夜 | 欧美自拍网站 | 欧美自拍视频 | 中文字幕久久久 | 丁香久久| 日韩欧美一级精品久久 | 国产三区四区 | www..99re | 中文字幕高清一区 | 成人国产综合 | 中文字幕在线三区 | 久久久www成人免费精品 | 中文一二区 | 日韩在线免费视频 | 影音先锋男人网 | 成人高清视频免费观看 | 亚洲视频三区 | 久久天堂| 美国特级a毛片免费网站 | 激情一区 | 国产精品毛片久久久久久久 | 午夜成人免费电影 | 久久精品色欧美aⅴ一区二区 | 国产一区二区三区视频 | 国产视频一区二区 | 在线播放国产精品 | 免费毛片在线播放 | 亚洲精品国产setv | 伊人网在线观看 | 国产精品久久久久久久娇妻 | 国产精久久| 国产高清视频在线 | 最新黄色网址在线播放 | 亚洲精品一区二区三区在线观看 | 欧美日韩在线免费观看 | 蜜桃视频网站在线观看 | 日韩精品影院 | 欧美一区二区三区男人的天堂 | 99pao成人国产永久免费视频 | 欧美成人精品 | 免费一级 国产 | 久久久91精品国产一区二区精品 | 亚洲欧美精品 | 亚洲欧美日韩在线 | 日韩久久网 | 亚洲成人1区 | 欧美日韩啪啪 | 国产精品视频yy9299一区 | www.五月天婷婷 | 亚洲福利小视频 | 操久久| a黄视频 | 精品在线一区二区三区 | 日韩中文一区二区 | 欧美一区在线视频 | 国产一区二区三区在线 | 91精品国产乱码久久久久久久久 | 曰批免费视频播放免费 | 久久久久香蕉视频 | 黄网在线观看 | 亚洲视频中文 | 久久久精品一区二区 | 日韩成人三级 | 爱爱免费视频网站 | 国产精品亚洲一区二区三区在线 | 欧美日本一区二区三区 | 欧美永久精品 | 天天澡天天狠天天天做 | 蜜桃精品久久久久久久免费影院 | 日韩视频精品在线 | 国产一级毛片国语一级 | 欧美综合一区 | 在线日韩中文字幕 | 成人黄页在线观看 | 三级成人片 | 一级黄色录像视频 | 嫩草影院永久入口 | 爱草在线| 国产无套一区二区三区久久 | 亚洲最大的黄色网 | 在线免费观看成年人视频 | 精品亚洲网 | 中文字幕亚洲精品 | 国产精品免费观看 | 欧美日韩一区二区三区在线观看 | 国产九九精品视频 | 国产精品久久免费视频在线 | 精品亚洲一区二区三区 | 毛片免费在线 | 国产精品久久久久久久久久大牛 | 欧美大片网站 | 日本在线观看一区二区 | 久久久久久成人 | 国产精品伊人影院 | 久久精品国产91精品亚洲高清 | 久久99久久久久久 | 天天操操| 午夜在线影院 | 成年视频在线观看福利资源 | 日韩视频免费在线 | 日韩高清av | 91精品国产综合久久久久久蜜臀 | 欧美成在线观看 | 中文字幕一区二区三区四区 | 精品视频免费在线 | 羞羞视频在线观看免费 | 欧美一区不卡 | 一级黄色毛片子 | 日韩中文字幕在线视频 | 男女午夜视频 | 美日韩精品视频 | 久久久久国产精品午夜一区 | av下一页| 99精品国产高清一区二区麻豆 | 日韩一区二区三区福利视频 | 激情毛片 | 国产又色又爽又黄 | 国产成人免费视频网站高清观看视频 | 精品久久久久久久久久久久包黑料 | 天天操操 | av男人天堂网 | 成人av免费观看 | 在线观看国产一级片 | 久久久午夜爽爽一区二区三区三州 | 男女羞羞视频网站 | 91精品久久久久久久久久 | 午夜影院免费视频 | 视频一区二区中文字幕 | 影音先锋亚洲精品 | 久久免费视频观看 | 亚洲一区二区三区久久久 | 综合久久亚洲 | 成人av片在线观看 | 中文字幕一区二区三区四区 | 久久777 | 高清av网站| 免费成人在线观看视频 | 国产精品久久久久久久午夜 | 国产v日产∨综合v精品视频 | 夜夜视频 | 日韩欧美国产一区二区三区 | jizz久久久| 日韩欧美一区二区三区免费观看 | 欧美精品第一页 | 日本黄色影片在线观看 | 国产一区二区欧美 | 日本黄色大片免费 | 中文字幕亚洲综合久久久软件 | 日产精品久久 | 午夜激情视频在线观看 | 日韩中文字幕在线播放 | 日本黄色大片免费看 | 99久久99久久久精品色圆 | 色偷偷888欧美精品久久久 | 欧美国产在线观看 | 91视频网址 | 操操网| 欧美精品久 | 国产精品久久久久久久久久久久久久 | 欧美成人一区二区三区片免费 | 精品免费国产一区二区三区四区 | 99视频网站| 亚洲精品二区 | 密室大逃脱第六季大神版在线观看 | 国产最新精品视频 | 97久久久国产精品 | 国产成人精品一区二 | www国产一区| 无码日韩精品一区二区免费 | 亚洲精品免费视频 | 人人干人人看 | 欧美一区二区三区电影 | 日韩中文字幕在线视频 | 日韩免费在线观看视频 | 久久777 | 日本免费网 | 一级毛片免费一级 | 国产日韩精品一区 | 日韩欧美国产一区二区 | 成人午夜视频网 | 综合久久久久 | 亚洲一区二区三区四区的 | 伊人av在线| www.狠狠干 | 黄色片免费在线观看 | 国产91在线免费观看 | 欧美性猛片 | 国产一区二区三区四区在线观看 | 日韩午夜激情 | 男人天堂a | 久久久久免费精品视频 | 国产免费亚洲 | 奇米av在线 | 欧美一级片| 日韩三级在线免费观看 | 免费观看黄色一级大片 | 在线观看www | 国产欧美一区二区三区国产幕精品 | 国产精品久久久爽爽爽麻豆色哟哟 | 国产传媒一区 | 国内精品一区二区三区视频 | 国产真实乱全部视频 | 在线第一页 | 七七婷婷婷婷精品国产 | 午夜精品久久久久久久星辰影院 | 夜夜久久| 伊人久久视频 | 精品一区二区久久久久久久网站 | 国产wwwcom | 国产精品香蕉在线观看 | 亚洲1级片 | 在线视频亚洲 | 日韩欧美国产一区二区 | 国产成人av在线播放 | 91精品国产日韩91久久久久久 | 蜜桃av网址 | 国产91亚洲精品 | 手机看片169 | 国产小视频在线 | 五月天婷婷激情视频 | 精品欧美一区二区精品久久久 | www.天天草 | 亚洲成人精品久久 | 国产精品久久久久久亚洲调教 | 欧美狠狠操 | 在线看av网址 | 久久99久久99精品 | 久久综合久久综合久久综合 | 欧美日韩电影一区二区 | 国产一区二区三区四区在线观看 | 欧美精品一区二区三区在线播放 | 久久精品一 | 日韩视频一区二区 | 亚洲精品久久久久久久久 | av网站免费 | 日本亚洲精品成人欧美一区 | 欧美成人黑人xx视频免费观看 | 国产1级片 | 婷婷在线观看视频 | 日韩在线观看第一页 | 国产三级在线 | 久久福利电影 | www日韩 | 97高清国语自产拍 | 中文字幕在线播放一区 | 精品成人在线 | 国产精品久久久久久久9999 | 亚洲人成人一区二区在线观看 | 在线观看免费视频黄 | 狠狠躁日日躁夜夜躁东南亚 | 91网站免费 | 激情自拍偷拍 | 欧美一级欧美三级在线观看 | 91在线视频免费观看 | 在线观看国产视频 | 男女视频在线观看 | 精品成人佐山爱一区二区 | 久久蜜桃视频 | 色综合天天综合网国产成人网 | 久久久久国 | 亚洲精品国产综合 | 9色网站 | 亚洲欧美日本在线 | 久久69| 男人的天堂在线视频 | 中文成人在线 | 四虎影院免费网址 | 亚洲激情第一页 | 国产中文字幕一区二区三区 | av免费观看网页 | 亚洲免费小视频 | 久久资源av| 亚洲 欧美日韩 国产 中文 | 亚洲欧美精品一区二区 | 午夜电影网址 | 91亚洲国产成人久久精品网站 | 亚洲一区二区三区久久 | 午夜精品一区二区三区免费视频 | 久久精品成人一区二区三区蜜臀 | 亚洲精品无 | 日韩欧美一区二区在线观看视频 | 成人99| 日韩精品久久久 | 欧美一区二区三区在线视频 | 精品国产一区二区国模嫣然 | 日韩视频在线观看一区 | 久久久免费看 | 一级片视频在线观看 | av一区在线 | 中文在线a在线 | 欧美成人黄色 | 日韩视频中文字幕在线观看 | 亚洲第一成人在线视频 | 久久亚洲黄色 | 精品欧美一区二区三区久久久 | 日韩在线免费观看视频 | 色视频网站在线观看 | 久久国产精品视频观看 | 成人在线视频网址 | 日韩9999 | 欧美日韩在线观看一区二区 | 欧美一级片免费看 | 欧美黄色一级 | 99精品欧美一区二区蜜桃免费 | 国产女人爽到高潮免费视频 | 欧美日韩大陆 | 国产精品色哟哟哟 | 成人欧美一区二区三区黑人孕妇 | 日韩视频在线观看中文字幕 | 国产精品国产精品国产专区不片 | 欧美在线综合 | 电影91 | 成人二区 | 日本久久久一区二区三区 | 在线欧美日韩 | 国产精品久久片 | 成人亚洲区 | 天天综合天天色 | 欧美一级免费 | 国产成人中文字幕 | 99精品热| 亚洲成人av在线 | 色黄网站 | 日韩看片| 精品国产乱码久久久久久久软件 | 国产欧美一区二区精品久久 | 三区视频 | 色婷婷综合在线视频 | 国产精品亚洲综合 | 日韩电影免费在线观看中文字幕 | 欧美亚洲视频在线观看 | 日韩三级视频 | 黄色一级毛片在线观看 | 日韩一级免费在线观看 | 男女啪啪无遮挡 | 一区二区成人 | 国产精品久久久久久妇女6080 | a级性生活 | 午夜影院久久 | 国产综合精品一区二区三区 | 久草视频在线观 | 天天躁日日躁性色aⅴ电影 免费在线观看成年人视频 国产欧美精品 | 色综合久久久久 | 国产亚洲一区二区三区在线 | 亚洲精品免费看 | 久久av免费 | www欧美| 日本精品久久 | 99精品久久久 | 日韩有码在线播放 | 九九久久精品视频 | 亚洲免费视频一区 | 午夜精品亚洲日日做天天做 | 秋霞a级毛片在线看 | 亚洲人成在线播放 | 亚洲午夜一区 | 亚洲第一天堂无码专区 | 亚洲一区中文字幕在线观看 | 99精品欧美一区二区三区综合在线 | 成年人精品视频在线观看 | 日本综合久久 | 久久亚洲一区二区 | 香蕉成人啪国产精品视频综合网 | 日韩av一区二区在线观看 | 午夜天堂精品久久久久 | 97超碰在线免费 | 日韩精品一区在线 | 亚洲一区视频 | 自拍视频免费 | 日韩精品一区二区三区在线观看 | 亚色在线 | 精品亚洲一区二区三区 | 日韩欧美h| 欧美日韩久久精品 | 亚洲一区二区中文字幕 | 欧美夜夜骑 | 欧美日本高清视频 | 中文字幕第100页 | 亚洲成人中文字幕 | 欧美精品一区三区 | 欧美在线观看视频 | 精品一区在线视频 | 欧美伦理电影一区二区 | 精品国产乱码久久久久久1区2区 | 国产精品视频免费 | 天堂av在线免费观看 | 亚洲综合婷婷 | 一区在线播放 | 免费成人在线视频网站 | 成人午夜视频在线观看 | h成人在线 | 91视频观看| 不卡的av电影 | 久久久91 | www.成人国产 | 福利影院在线观看 | 人人种亚洲 | 亚洲精品一区二区在线观看 | 黄色精品视频 | 欧美激情第二页 | 亚洲色图偷拍视频 | 久久精品免费一区二区三区 | 久久久精 | 久久精品黄 | 99久久婷婷 | 国产三区在线成人av | 欧美日韩成人一区 | 欧美一区亚洲二区 | 久热九九 | 久久91精品国产91久久跳 | 99久久视频 | 国产视频精品一区二区三区 | 国产精品永久久久久久久久久 | 国产精品久久久久久久久久东京 | 精品一区二区三区在线视频 | 天天看天天爽 | 蜜臀久久99精品久久久无需会员 | 久久国产视频一区二区 | 日本三级中文在线电影 | 操操操操操操 | 亚洲成人激情在线观看 | 日韩免费视频 | 欧美二三区 | 一区二区精品在线 | 午夜视频网址 | 久久久久国产一级毛片高清版小说 | 久久中文网 | 毛片网在线观看 | 国产一级毛片国语一级 | 日韩一二三区在线观看 | 亚洲国产精品一区二区三区 | 中文字幕在线视频免费播放 | 日韩在线精品强乱中文字幕 | 欧美精品免费在线 | 亚洲精品在线播放视频 | 国产成人一区 | 欧美黑人做爰xxxⅹ 国产精品一区二区视频 | 精品日韩欧美一区二区三区在线播放 | 国产av毛片 | 亚洲精品乱码久久久久久蜜糖图片 | 亚洲天堂久 | 91精品国产91久久久久久不卡 | 欧美激情视频一区二区三区在线播放 | 日本久久网 | 成人精品一区二区三区中文字幕 | 国产视频中文字幕 | 国产精品国产 | 免费黄色看片 | 久在线视频| 一二三四区视频在线观看 | 男女www视频 | 91社区在线观看高清 | 国产精品成人一区二区三区 | 太平公主一级艳史播放高清 | 在线视频成人 | 精品亚洲永久免费精品 | 久久久久国产精品 | 成人黄视频在线观看 | 亚洲36d大奶网 | 国内精品久久久久久中文字幕 | 日韩午夜免费视频 | 黄色免费网站在线看 | 一级毛片免费看 | 欧美一级片在线 | 91中文字幕| 成人黄色在线视频 | 播放一级黄色片 | 羞羞视频在线观看视频 | 日本大人吃奶视频xxxx | 91午夜伦伦电影理论片 | 国产精品一区二区av | 国产成人久久精品麻豆二区 | 久久久精品免费视频 | 奇米色777欧美一区二区 | 成人一区二区在线观看 | 久久亚洲国产精品 | 国产美女高潮一区二区三区 | 欧美一区永久视频免费观看 | 亚洲永久免费视频 | 欧美激情欧美激情在线五月 | 四虎成人免费电影 | 天天草综合 | 最新日韩一区 | 日日干夜夜操 | 狠狠综合久久av一区二区老牛 | 最新国产成人 |