日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

iOS二进制文件重排,启动速度提升超15%

發布時間:2023/12/13 综合教程 55 生活家
生活随笔 收集整理的這篇文章主要介紹了 iOS二进制文件重排,启动速度提升超15% 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

背景

啟動是App給用戶的第一印象,對用戶體驗至關重要。抖音的業務迭代迅速,如果放任不管,啟動速度會一點點劣化。為此抖音iOS客戶端團隊做了大量優化工作,除了傳統的修改業務代碼方式,我們還做了些開拓性的探索,發現修改代碼在二進制文件的布局可以提高啟動性能,方案落地后在抖音上啟動速度提高了約15%。

本文從原理出發,介紹了我們是如何通過靜態掃描和運行時trace找到啟動時候調用的函數,然后修改編譯參數完成二進制文件的重新排布。

原理

Page Fault

進程如果能直接訪問物理內存無疑是很不安全的,所以操作系統在物理內存的上又建立了一層虛擬內存。為了提高效率和方便管理,又對虛擬內存和物理內存又進行分頁(Page)。當進程訪問一個虛擬內存Page而對應的物理內存卻不存在時,會觸發一次缺頁中斷(Page Fault),分配物理內存,有需要的話會從磁盤mmap讀人數據。

通過App Store渠道分發的App,Page Fault還會進行簽名驗證,所以一次Page Fault的耗時比想象的要多:

Page Fault

重排

編譯器在生成二進制代碼的時候,默認按照鏈接的Object File(.o)順序寫文件,按照Object File內部的函數順序寫函數。

靜態庫文件.a就是一組.o文件的ar包,可以用ar -t查看.a包含的所有.o。

默認布局

簡化問題:假設我們只有兩個page:page1/page2,其中綠色的method1和method3啟動時候需要調用,為了執行對應的代碼,系統必須進行兩個Page Fault。

但如果我們把method1和method3排布到一起,那么只需要一個Page Fault即可,這就是二進制文件重排的核心原理。

重排之后

我們的經驗是優化一個Page Fault,啟動速度提升0.6~0.8ms。

核心問題

為了完成重排,有以下幾個問題要解決:

重排效果怎么樣 - 獲取啟動階段的page fault次數

重排成功了沒 - 拿到當前二進制的函數布局

如何重排 - 讓鏈接器按照指定順序生成Mach-O

重排的內容 - 獲取啟動時候用到的函數

作為一個開發者,有一個學習的氛圍跟一個交流圈子特別重要,這是一個我的iOS交流群:519832104 不管你是小白還是大牛歡迎入駐,分享經驗,討論技術,大家一起交流學習成長!

另附上一份各好友收集的大廠面試題,需要iOS開發學習資料、面試真題,可以添加iOS開發進階交流群,進群可自行下載!

System Trace

日常開發中性能分析是用最多的工具無疑是Time Profiler,但Time Profiler是基于采樣的,并且只能統計線程實際在運行的時間,而發生Page Fault的時候線程是被blocked,所以我們需要用一個不常用但功能卻很強大的工具:System Trace。

選中主線程,在VM Activity中的File Backed Page In次數就是Page Fault次數,并且雙擊還能按時序看到引起Page Fault的堆棧:

System Trace

signpost

現在我們在Instrument中已經能拿到某個時間段的Page In次數,那么如何和啟動映射起來呢?

我們的答案是:os_signpost

os_signpost是iOS 12開始引入的一組API,可以在Instruments繪制一個時間段,代碼也很簡單:

1os_log_t?logger?=?os_log_create("com.bytedance.tiktok",?"performance");
2os_signpost_id_t?signPostId?=?os_signpost_id_make_with_pointer(logger,sign);
3//標記時間段開始
4os_signpost_interval_begin(logger,?signPostId,?"Launch","%{public}s",?"");
5//標記結束
6os_signpost_interval_end(logger,?signPostId,?"Launch");

通常可以把啟動分為四個階段處理:

啟動階段

有多少個Mach-O,就會有多少個Load和C++靜態初始化階段,用signpost相關API對對應階段打點,方便跟蹤每個階段的優化效果。

Linkmap

Linkmap是iOS編譯過程的中間產物,記錄了二進制文件的布局,需要在Xcode的Build Settings里開啟Write Link Map File:

Build Settings

比如以下是一個單頁面Demo項目的linkmap。

linkmap

linkmap主要包括三大部分:

Object Files 生成二進制用到的link單元的路徑和文件編號

Sections 記錄Mach-O每個Segment/section的地址范圍

Symbols 按順序記錄每個符號的地址范圍

ld

Xcode使用的鏈接器件是ld,ld有一個不常用的參數-order_file,通過man ld可以看到詳細文檔:

Alters the order in which functions and data are laid out. For each section in the output file, any symbol in that section that are specified in the order file file is moved to the start of its section and laid out in the same order as in the order file file.

可以看到,order_file中的符號會按照順序排列在對應section的開始,完美的滿足了我們的需求。

Xcode的GUI也提供了order_file選項:

order_file

如果order_file中的符號實際不存在會怎么樣呢?

ld會忽略這些符號,如果提供了link選項-order_file_statistics,會以warning的形式把這些沒找到的符號打印在日志里。

獲得符號

還剩下最后一個,也是最核心的一個問題,獲取啟動時候用到的函數符號。

我們首先排除了解析Instruments(Time Profiler/System Trace) trace文件方案,因為他們都是基于特定場景采樣的,大多數符號獲取不到。最后選擇了靜態掃描+運行時Trace結合的解決方案。

Load

Objective C的符號名是+-[Class_name(category_name) method:name:],其中+表示類方法,-表示實例方法。

剛剛提到linkmap里記錄了所有的符號名,所以只要掃一遍linkmap的__TEXT,__text,正則匹配("^+[.* load]$")既可以拿到所有的load方法符號。

C++靜態初始化

C++并不像Objective C方法那樣,大部分方法調用編譯后都是objc_msgSend,也就沒有一個入口函數去運行時hook。

但是可以用-finstrument-functions在編譯期插樁“hook”,但由于抖音的很多依賴由其他團隊提供靜態庫,這套方案需要修改依賴的構建過程。二進制文件重排在沒有業界經驗可供參考,不確定收益的情況下,選擇了并不完美但成本最低的靜態掃描方案。

1//__mod_init_func
20x100008060????0x00000008??[??5]?ltmp7
3//[??5]對應的文件
4[??5]?.../Build/Products/Debug-iphoneos/libStaticLibrary.a(StaticLibrary.o)

2. 通過文件號,解壓出.o。

1???lipo?libStaticLibrary.a?-thin?arm64?-output?arm64.a
2???ar?-x?arm64.a?StaticLibrary.o

3. 通過.o,獲得靜態初始化的符號名_demo_constructor

1???objdump?-r?-section=__mod_init_func?StaticLibrary.o
2
3StaticLibrary.o:????file?format?Mach-O?arm64
4
5RELOCATION?RECORDS?FOR?[__mod_init_func]:
60000000000000000?ARM64_RELOC_UNSIGNED?_demo_constructor

4. 通過符號名,文件號,在linkmap中找到符號在二進制中的范圍:

10x100004A30????0x0000001C??[??5]?_demo_constructor

5. 通過起始地址,對代碼進行反匯編:

1???objdump?-d?--start-address=0x100004A30?--stop-address=0x100004A4B?demo_arm64?
2
3_demo_constructor:
4100004a30:????fd?7b?bf?a9?????stp?x29,?x30,?[sp,?#-16]!
5100004a34:????fd?03?00?91?????mov?x29,?sp
6100004a38:????20?0c?80?52?????mov?w0,?#97
7100004a3c:????da?06?00?94?????bl??#7016?
8100004a40:????40?0c?80?52?????mov?w0,?#98
9100004a44:????fd?7b?c1?a8?????ldp?x29,?x30,?[sp],?#16
10100004a48:????d7?06?00?14?????b???#7004

6. 通過掃描bl指令掃描子程序調用,子程序在二進制的開始地址為:100004a3c +1b68(對應十進制的7016)。

1100004a3c:????da?06?00?94?????bl??#7016

7. 通過開始地址,可以找到符號名和結束地址,然后重復5~7,遞歸的找到所有的子程序調用的函數符號。

小坑

STL里會針對string生成初始化函數,這樣會導致多個.o里存在同名的符號,例如:

1__ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEC1IDnEEPKc

類似這樣的重復符號的情況在C++里有很多,所以C/C++符號在order_file里要帶著所在的.o信息:

1//order_file.txt
2libDemoLibrary.a(object.o):__GLOBAL__sub_I_demo_file.cpp

局限性

branch系列匯編指令除了bl/b,還有br/blr,即通過寄存器的間接子程序調用,靜態掃描無法覆蓋到這種情況。

Local符號

在做C++靜態初始化掃描的時候,發現掃描出了很多類似l002的符號。經過一番調研,發現是依賴方輸出靜態庫的時候裁剪了local符號。導致__GLOBAL__sub_I_demo_file.cpp?變成了l002。

需要靜態庫出包的時候保留local符號,CI腳本不要執行strip -x,同時Xcode對應target的Strip Style修改為Debugging symbol:

Strip Style

靜態庫保留的local符號會在宿主App生成IPA之前裁剪掉,所以不會對最后的IPA包大小有影響。宿主App的Strip Style要選擇All Symbols,宿主動態庫選擇Non-Global Symbols。

Objective C方法

絕大部分Objective C的方法在編譯后會走objc_msgSend,所以通過fishhook(https://github.com/facebook/fishhook)?hook這一個C函數即可獲得Objective C符號。由于objc_msgSend是變長參數,所以hook代碼需要用匯編來實現:

1//代碼參考InspectiveC
2__attribute__((naked))
3static?void?hook_Objc_msgSend()?{
4????save()
5????__asm?volatile?("mov?x2,?lr
");
6????__asm?volatile?("mov?x3,?x4
");
7????call(blr,?&before_objc_msgSend)
8????load()
9????call(blr,?orig_objc_msgSend)
10????save()
11????call(blr,?&after_objc_msgSend)
12????__asm?volatile?("mov?lr,?x0
");
13????load()
14????ret()
15}

子程序調用時候要保存和恢復參數寄存器,所以save和load分別對x0~x9, q0~q9入棧/出棧。call則通過寄存器來間接調用函數:

1#define?save()?
2__asm?volatile?(?
3"stp?q6,?q7,?[sp,?#-32]!
"
4...
5
6#define?load()?
7__asm?volatile?(?
8"ldp?x0,?x1,?[sp],?#16
"?
9...
10
11#define?call(b,?value)?
12__asm?volatile?("stp?x8,?x9,?[sp,?#-16]!
");?
13__asm?volatile?("mov?x12,?%0
"?::?"r"(value));?
14__asm?volatile?("ldp?x8,?x9,?[sp],?#16
");?
15__asm?volatile?(#b?"?x12
");

before_objc_msgSend中用棧保存lr,在after_objc_msgSend恢復lr。由于要生成trace文件,為了降低文件的大小,直接寫入的是函數地址,且只有當前可執行文件的Mach-O(app和動態庫)代碼段才會寫入:

iOS中,由于ALSR(https://en.wikipedia.org/wiki/Address_space_layout_randomization)的存在,在寫入之前需要先減去偏移量slide:

1IMP?imp?=?(IMP)class_getMethodImplementation(object_getClass(self),?_cmd);
2unsigned?long?imppos?=?(unsigned?long)imp;
3unsigned?long?addr?=?immpos?-?macho_slide

獲取一個二進制的__text段地址范圍:

1unsigned?long?size?=?0;
2unsigned?long?start?=?(unsigned?long)getsectiondata(mhp,??"__TEXT",?"__text",?&size);
3unsigned?long?end?=?start?+?size;

獲取到函數地址后,反查linkmap既可找到方法的符號名。

Block

block是一種特殊的單元,block在編譯后的函數體是一個C函數,在調用的時候直接通過指針調用,并不走objc_msgSend,所以需要單獨hook。

通過Block的源碼可以看到block的內存布局如下:

1struct?Block_layout?{
2????void?*isa;
3????int32_t?flags;?//?contains?ref?count
4????int32_t?reserved;
5????void??*invoke;
6????struct?Block_descriptor1?*descriptor;
7};
8struct?Block_descriptor1?{
9????uintptr_t?reserved;
10????uintptr_t?size;
11};

其中invoke就是函數的指針,hook思路是將invoke替換為自定義實現,然后在reserved保存為原始實現。

1//參考?https://github.com/youngsoft/YSBlockHook
2if?(layout->descriptor?!=?NULL?&&?layout->descriptor->reserved?==?NULL)
3{
4????if?(layout->invoke?!=?(void?*)hook_block_envoke)
5????{
6????????layout->descriptor->reserved?=?layout->invoke;
7????????layout->invoke?=?(void?*)hook_block_envoke;
8????}
9}

由于block對應的函數簽名不一樣,所以這里仍然采用匯編來實現hook_block_envoke

1__attribute__((naked))
2static?void?hook_block_envoke()?{
3????save()
4????__asm?volatile?("mov?x1,?lr
");
5????call(blr,?&before_block_hook);
6????__asm?volatile?("mov?lr,?x0
");
7????load()
8????//調用原始的invoke,即resvered存儲的地址
9????__asm?volatile?("ldr?x12,?[x0,?#24]
");
10????__asm?volatile?("ldr?x12,?[x12]
");
11????__asm?volatile?("br?x12
");
12}

before_block_hook中獲得函數地址(同樣要減去slide)。

1intptr_t?before_block_hook(id?block,intptr_t?lr)
2{
3????Block_layout?*?layout?=?(Block_layout?*)block;
4????//layout->descriptor->reserved即block的函數地址
5????return?lr;
6}

同樣,通過函數地址反查linkmap既可找到block符號。

瓶頸

基于靜態掃描+運行時trace的方案仍然存在少量瓶頸:

initialize hook不到

部分block hook不到

C++通過寄存器的間接函數調用靜態掃描不出來

目前的重排方案能夠覆蓋到80%~90%的符號,未來我們會嘗試編譯期插樁等方案來進行100%的符號覆蓋,讓重排達到最優效果。

整體流程

流程

設置條件觸發流程

工程注入Trace動態庫,選擇release模式編譯出.app/linkmap/中間產物

運行一次App到啟動結束,Trace動態庫會在沙盒生成Trace log

以Trace Log,中間產物和linkmap作為輸入,運行腳本解析出order_file

總結

目前,在缺少業界經驗參考的情況下,我們成功驗證了二進制文件重排方案在iOS APP開發中的可行性和穩定性。基于二進制文件重排,我們在針對抖音的iOS客戶端上的優化工作中,獲得了約15%的啟動速度提升。

抽象來看,APP開發中大家會遇到這樣一個通用的問題,即在某些情況下,APP運行需要進行大量的Page Fault,這會影響代碼執行速度。而二進制文件重排方案,目前看來是解決這一通用問題比較好的方案。

未來我們會進行更多的嘗試,讓二進制文件重排在更多的業務場景落地。

點擊此處,立即與iOS大牛交流學習

總結

以上是生活随笔為你收集整理的iOS二进制文件重排,启动速度提升超15%的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

色偷偷人人澡久久超碰69 | 欧美日韩国产一区二区三区在线观看 | 国产精品乱码久久久久久1区2区 | 成人免费视频免费观看 | 9在线观看免费高清完整版 玖玖爱免费视频 | 黄色网址中文字幕 | 久热只有精品 | 国产免费观看高清完整版 | 成人午夜电影在线播放 | 在线观看日韩 | 国产精品久久久久久久久久久杏吧 | www.日韩免费 | 亚洲成人黄色av | 91丨九色丨国产在线 | 黄a网| 天天干天天射天天插 | 亚洲欧美日韩精品久久奇米一区 | 91视频免费看 | 999在线精品 | 国产成人在线网站 | 波多野结衣视频一区 | 日韩欧美99 | 日韩精品视频久久 | 超碰在线94 | 黄色毛片大全 | 亚洲精品ww | 亚洲精品国产精品99久久 | 视频一区二区视频 | 成年人在线免费看片 | 丁香电影小说免费视频观看 | 亚洲精区二区三区四区麻豆 | 亚洲黄色成人网 | 国产91区 | 一区二区精品视频 | 在线精品视频免费播放 | 美女久久网站 | 91久久久久久国产精品 | wwwwww国产 | 丁香五月缴情综合网 | 亚州性色 | 国产精品欧美日韩在线观看 | 丁香五月亚洲综合在线 | 在线免费黄色毛片 | 成人影片在线免费观看 | 亚洲精品国产自产拍在线观看 | 国产一级黄色电影 | 国产aa免费视频 | 国产精品久久久久久久久久久免费 | 人人插人人插 | 在线一区电影 | 日韩精品一区二区三区免费观看 | 日韩午夜电影院 | 国产专区日韩专区 | 综合网五月天 | 久久精品一区二区三 | 婷婷激情5月天 | 狠狠色丁香婷婷综合久小说久 | 亚洲精品一区二区网址 | 99久久久久免费精品国产 | 欧美色黄 | 欧美性网站 | 久久久久国产精品免费免费搜索 | 久久久久麻豆 | 中文字幕免费一区 | 中文一二区 | 五月婷婷电影网 | 激情婷婷六月 | 亚洲伦理一区二区 | 麻豆视频免费观看 | 亚洲午夜精品一区二区三区电影院 | 亚洲成年片 | 色综合天天色综合 | 久久久久久久久久久免费 | av手机版 | 99爱国产精品 | a级国产乱理伦片在线播放 久久久久国产精品一区 | 欧美一级爽 | 欧美一区二区三区在线视频观看 | 欧美大jb| 久久久亚洲麻豆日韩精品一区三区 | 超碰97人人在线 | 高清不卡毛片 | 人人干人人做 | 99热 精品在线 | 麻豆一精品传二传媒短视频 | 免费高清在线观看成人 | 成人a级免费视频 | 俺要去色综合狠狠 | 91麻豆国产福利在线观看 | 婷五月天激情 | 欧美精品少妇xxxxx喷水 | 日韩一区二区三区高清免费看看 | 久久黄色美女 | 五月天久久婷 | 成人av一区二区在线观看 | 91av片| 欧美激情另类文学 | 国产欧美最新羞羞视频在线观看 | 欧美福利久久 | 久久久久久久久久久影院 | 99精品视频免费在线观看 | 最近乱久中文字幕 | 亚洲国产精品一区二区久久hs | 综合亚洲视频 | 日韩欧美有码在线 | 国产特级毛片aaaaaa毛片 | 国内视频在线 | 四虎免费av | 日韩av一区二区三区在线观看 | 精品视频在线看 | 国产蜜臀av| 国产日产精品一区二区三区四区 | 毛片网免费 | 国产综合小视频 | 成人午夜电影在线播放 | 国产精品18久久久久久首页狼 | 日韩av中文在线 | 日韩国产欧美在线视频 | 色网av | 天天综合网久久综合网 | 久久精品婷婷 | 国产丝袜美腿在线 | 日韩欧美一区视频 | 天天综合精品 | 97在线视频网站 | 看av免费网站 | 成年人免费观看国产 | 又湿又紧又大又爽a视频国产 | 人人干人人艹 | 国产精品h在线观看 | 国产成人在线播放 | 久久99国产综合精品免费 | 亚洲一区二区视频在线 | 97在线公开视频 | 亚洲国产一区二区精品专区 | 亚洲成人国产 | 日日干狠狠操 | 欧美一级艳片视频免费观看 | 精品久久久久久一区二区里番 | 在线精品在线 | 激情综合网五月婷婷 | 91在线免费观看国产 | 97视频在线播放 | 午夜精品久久久久久中宇69 | 在线直播av| 免费成人在线视频网站 | 成人网在线免费视频 | 欧美日韩在线观看一区二区三区 | 亚洲电影久久久 | 欧美专区国产专区 | 狠狠色丁婷婷日日 | 国产小视频在线看 | 在线观看中文字幕av | 亚洲午夜小视频 | 国产精品网红直播 | 激情丁香综合五月 | 天天操操操操操操 | 91精品国产网站 | 在线亚洲精品 | 91九色蝌蚪国产 | 国产 欧美 日韩 | 亚洲欧洲精品一区二区精品久久久 | 青草视频在线看 | 国产精品一区二区av麻豆 | 男女啪啪网站 | www激情久久 | 国产高清在线a视频大全 | 国产精品系列在线 | 国产精品一区二区免费在线观看 | 午夜国产福利视频 | 婷婷六月中文字幕 | 一区二区三区视频 | 日韩国产欧美在线播放 | 成人a视频片观看免费 | 国产成人精品一区二区三区在线观看 | 久久天堂影院 | 国产剧情一区二区在线观看 | 五月婷丁香| 91九色在线 | 五月天丁香| 欧美日韩高清一区二区 | 国产成人一区二区三区在线观看 | 日韩高清毛片 | 久久精品a| 玖玖视频在线 | 婷婷 中文字幕 | 亚洲性少妇性猛交wwww乱大交 | 免费观看国产视频 | 天天天天天天操 | 亚洲播播 | 99精品视频在线看 | 欧美日韩国产一区二 | 亚洲三级黄色 | 天天射天天干天天插 | 精品免费 | 久久理伦片 | 久久国产精品99久久久久久老狼 | 成人在线观看影院 | 久久久久国产精品免费网站 | 激情综合网五月激情 | 国产日韩精品视频 | 久久超级碰视频 | 69国产成人综合久久精品欧美 | 久久婷亚洲五月一区天天躁 | 国产在线中文 | 久亚洲精品| av激情五月 | 欧美日韩精品网站 | 久久久精品 一区二区三区 国产99视频在线观看 | 久久精品九色 | 国产成人精品在线 | 中文字幕在线一区二区三区 | 亚洲色图美腿丝袜 | 久久伊人免费视频 | 久久久免费看片 | 看毛片的网址 | 天天综合网天天综合色 | 国产精品一区二区免费看 | 久久久久久久久久久高潮一区二区 | 日韩黄视频 | 欧美精品一区在线发布 | 天天射夜夜爽 | 日韩在线精品一区 | 一本一本久久a久久精品牛牛影视 | 日韩和的一区二在线 | 蜜桃视频成人在线观看 | 黄色毛片观看 | 亚洲国产免费看 | 久久久久欠精品国产毛片国产毛生 | 精品欧美小视频在线观看 | 狠狠狠狠狠狠干 | 午夜在线看| 91九色在线视频 | 99se视频在线观看 | 天堂网中文在线 | 国产午夜精品一区 | 丁香一区二区 | 中文字幕视频网 | 日韩三级中文字幕 | 天天综合狠狠精品 | 99精品视频免费观看视频 | 最新av免费 | 国产97在线观看 | 国产无套一区二区三区久久 | 日日夜操| 99久久精品午夜一区二区小说 | 精品一区二区三区电影 | 午夜久久久久久久 | 久草久视频 | 一区精品在线 | 国产视频在线观看一区二区 | 97在线观看视频免费 | 国产一级特黄毛片在线毛片 | 91精品在线播放 | 精品一区二区在线观看 | 伊甸园永久入口www 99热 精品在线 | 久久九九影视网 | 日韩av在线看 | 99九九热只有国产精品 | 国产精在线| 免费视频区 | 久久精品国产99 | 国产xxxx性hd极品 | 天天骚夜夜操 | 成人免费共享视频 | 亚洲理论视频 | 91视频a| 日日操日日插 | 日韩aⅴ视频 | 毛片网站在线看 | 97久久精品午夜一区二区 | 亚洲成a人片在线观看网站口工 | 美女免费网站 | 久九视频| 欧美最猛性xxxxx(亚洲精品) | 日躁夜躁狠狠躁2001 | 少妇bbr搡bbb搡bbb | 国产视频一区二区三区在线 | 在线亚洲午夜片av大片 | 亚洲伦理中文字幕 | 国产成人一区二区三区久久精品 | 亚洲天堂网在线播放 | 日韩欧美一级二级 | 国产原厂视频在线观看 | 91亚洲永久精品 | 免费在线观看黄网站 | 天天插天天色 | 青青草视频精品 | 99精品在线直播 | 国产91影视 | 亚洲涩涩色| 日韩久久精品一区二区三区下载 | 四虎在线免费观看视频 | 精品国产一区在线观看 | 狠狠色噜噜狠狠狠狠2021天天 | www.夜夜骑.com| 国产手机在线观看视频 | 成年人在线观看免费视频 | 黄网站app在线观看免费视频 | 色婷在线| 欧美精品中文 | 奇米影视8888 | 在线播放亚洲激情 | 亚洲成人av一区二区 | 午夜资源站 | 久久99精品热在线观看 | 88av视频| 日韩欧美在线一区 | 黄网站免费大全入口 | 日日干综合 | 日韩精品中字 | a级片久久久 | 午夜精品久久久久久久99婷婷 | 欧美专区亚洲专区 | 国产精品乱码久久久久久1区2区 | 91在线视频 | av超碰在线观看 | 免费成人短视频 | av不卡中文字幕 | 国产一级视频 | 欧美日韩精品二区第二页 | 久久国产精品99久久久久久老狼 | 五月婷婷在线视频 | 中文在线a∨在线 | 韩国av一区二区三区 | 免费国产一区二区视频 | 亚洲国产成人精品在线 | 蜜臀av性久久久久蜜臀aⅴ四虎 | 日韩三级免费观看 | 日韩高清国产精品 | 操操操夜夜操 | 久久精品播放 | 久久人人爽人人爽人人片av免费 | 黄色大片免费播放 | 天天插日日射 | 在线观看视频中文字幕 | 亚洲精品麻豆 | www日韩精品 | 欧美另类一二三四区 | 久久精品一 | 91色在线观看视频 | 国产精品18videosex性欧美 | 国产a国产a国产a | 99综合影院在线 | 精品96久久久久久中文字幕无 | 中文字幕精 | 在线欧美小视频 | 日韩精品国产一区 | 日韩二三区 | 国内精品福利视频 | 98超碰在线观看 | 最近能播放的中文字幕 | 91视频免费视频 | 欧美一区二视频在线免费观看 | 久久国产精品视频观看 | 国产精品视频永久免费播放 | 久久无码av一区二区三区电影网 | 在线观看一区二区视频 | 日韩一区二区久久 | 美女精品国产 | 天天色天天综合 | 久久成视频 | 日本韩国精品在线 | 国产老太婆免费交性大片 | 欧美黑人xxxx猛性大交 | 久久99久久精品 | 久久久久亚洲精品中文字幕 | 亚洲伊人天堂 | 天天玩夜夜操 | 久久精品视频一 | 日日夜色 | 国产999精品久久久久久麻豆 | 黄色三几片| 中文字幕高清在线播放 | 日韩高清不卡一区二区三区 | 午夜视频一区二区 | 久久精品九色 | 人人舔人人舔 | 999成人精品| 天天操天天艹 | 久草视频在线观 | 亚洲精品456在线播放第一页 | www.com在线观看 | 日本一区二区三区视频在线播放 | 亚洲 欧美 成人 | 日韩av片无码一区二区不卡电影 | 在线影视 一区 二区 三区 | 国产短视频在线播放 | 五月婷婷中文字幕 | 69人人 | 99热9| 久久精品欧美一区 | 日韩二区三区在线观看 | 成年人免费在线播放 | 欧美日韩中文国产一区发布 | 国产精品精品 | 99热999 | 中文字幕在线影视资源 | 99久久婷婷 | 精品欧美乱码久久久久久 | 99久久精品久久亚洲精品 | 天天综合网久久 | 亚洲电影图片小说 | 日韩中文字幕a | 中文字字幕在线 | 亚洲aⅴ乱码精品成人区 | 色婷婷精品大在线视频 | 五月开心激情网 | 亚洲视频网站在线观看 | 国产中文字幕91 | 亚洲综合干 | 五月婷婷视频在线观看 | 亚洲成人av电影 | 国产精品久久久久久av | 一区中文字幕电影 | 在线观看亚洲精品 | 久久久精品欧美 | 天天av在线播放 | 成人高清在线观看 | 成人免费看片98欧美 | 国产精品欧美久久久久三级 | 91亚洲精品国偷拍自产在线观看 | 日韩亚洲欧美中文字幕 | 久久久精品久久日韩一区综合 | 天天射天天爽 | 毛片基地黄久久久久久天堂 | 在线观看视频色 | 四虎在线观看精品视频 | 免费观看全黄做爰大片国产 | 中文av字幕在线观看 | 国产爽妇网 | 少妇搡bbbb搡bbb搡69 | 日日爱夜夜爱 | 国产又黄又猛又粗 | 午夜国产一区二区 | 久久精品三 | 国产视频18| 91亚州| 国产亚洲精品美女 | 久久综合国产伦精品免费 | www亚洲国产| 国产黄色a | 青草视频在线 | 免费h漫在线观看 | 国产免费又粗又猛又爽 | 精品免费一区二区三区 | 91久久精品日日躁夜夜躁国产 | 亚洲一级免费观看 | av福利免费| 色资源在线观看 | 国产高清av在线播放 | 黄色三级免费观看 | 国产短视频在线播放 | 国产区免费在线 | 国产高清免费 | 久久永久免费 | 天天夜夜亚洲 | 麻豆视频免费入口 | 麻豆91精品 | 精品视频在线免费观看 | 在线视频你懂 | www.天天色.com | 超碰97人人干 | 夜夜骑日日操 | 欧美性生活免费 | 热久久最新地址 | 99热国产在线中文 | 国产成人精品午夜在线播放 | 在线免费观看麻豆 | 九色91福利| 国产精品夜夜夜一区二区三区尤 | 色五月色开心色婷婷色丁香 | 国产精品毛片久久久久久久 | 日韩中文字幕免费视频 | 国产一区二区免费 | 亚洲一区二区天堂 | 国产麻豆视频网站 | 久久精品久久久精品美女 | 天天干,夜夜爽 | 色婷婷激情 | 欧美日韩亚洲在线观看 | 天天干天天干天天色 | 黄色毛片视频免费 | 国产精品毛片一区视频 | 欧美精品一区二区在线观看 | 91亚洲精品久久久蜜桃网站 | 日日操日日插 | 欧美日韩久久一区 | 国产精品久久久久久久久久久免费 | 欧美在线观看视频 | 久久影院一区 | 久九视频| 欧美极品少妇xbxb性爽爽视频 | 中文国产在线观看 | 天天干天天操天天做 | 成人av视屏 | 福利一区在线视频 | 亚洲视频1 | 日韩黄色大片在线观看 | 免费看国产精品 | 9999免费视频| 99久久99久久免费精品蜜臀 | 免费看短 | 91高清不卡| 欧美最猛性xxxxx免费 | 日韩av手机在线看 | 久久久亚洲精华液 | 99精品视频在线免费观看 | 高清精品在线 | 去干成人网 | 亚洲国产精品人久久电影 | av一区在线播放 | 激情久久久久久久久久久久久久久久 | 国产精品麻豆一区二区三区 | 国产经典三级 | 最近2019中文免费高清视频观看www99 | 国产精品高潮在线观看 | 992tv成人免费看片 | 久久看免费视频 | 超碰人人在线观看 | 西西4444www大胆无视频 | 日日干影院| 午夜久久影视 | 亚洲一区二区三区毛片 | 久草综合在线观看 | 麻豆久久久久 | 久草在线免费资源 | 国产不卡一二三区 | 成人一级片免费看 | 天天天天天操 | 欧美激情一区不卡 | 日本中文字幕在线看 | 黄色成人在线网站 | 久久久国产高清 | 免费在线电影网址大全 | 香蕉在线观看 | 欧美激情视频一二区 | 久久99精品一区二区三区三区 | 99精彩视频在线观看免费 | 天堂av一区二区 | 在线观看香蕉视频 | 久久精品亚洲一区二区三区观看模式 | 91av免费在线观看 | 96亚洲精品久久 | 成人理论电影 | 亚洲成人精品影院 | 黄色大片日本 | 正在播放国产一区 | 国产亚洲免费观看 | 欧美日韩国产精品一区二区三区 | 免费看精品久久片 | 最新日韩中文字幕 | 免费日韩在线 | 国产精品国产三级国产aⅴ9色 | 亚洲免费公开视频 | 国内精品小视频 | 91免费的视频在线播放 | 久久精品国产一区 | 91在线观看黄 | 国产精品免费人成网站 | 在线观看av黄色 | 亚洲一区二区三区91 | 免费网站在线 | 91高清免费看 | 久久久国产精品人人片99精片欧美一 | 97在线视频免费看 | 午夜av免费看 | 色婷婷五 | 超碰免费在线公开 | 成人福利在线 | av中文字幕不卡 | 国产视频欧美视频 | 免费91麻豆精品国产自产在线观看 | 天天干夜夜干 | 亚洲欧美日韩国产 | 成人av一区二区兰花在线播放 | 欧美日韩中文字幕视频 | www五月天| 日韩 在线观看 | 在线一二三四区 | 97精品国产97久久久久久免费 | 国产小视频你懂的 | 亚洲深夜影院 | 精品在线亚洲视频 | 成人免费视频网站 | 日韩av免费大片 | 亚洲精品视频在线观看免费视频 | 毛片基地黄久久久久久天堂 | 99电影 | 视频三区在线 | 亚洲国产成人av网 | 黄色片免费在线 | 99在线观看视频网站 | 久久久久国产精品免费免费搜索 | 欧美日韩国产在线观看 | 99久久这里有精品 | 国产成人一区二区在线观看 | 亚洲精品理论 | 国产喷水在线 | 亚洲国产黄色片 | 最新真实国产在线视频 | 国产99久久精品一区二区300 | 亚洲国产精品人久久电影 | 亚洲一区动漫 | 国产成人av在线影院 | 人人澡av| 欧美日韩精 | 日韩激情视频在线观看 | 国产精品久久久精品 | 亚洲精品456在线播放 | 伊人久久国产 | 亚洲国产精品一区二区尤物区 | 亚洲精品中文在线 | 超碰97免费在线 | 9ⅰ精品久久久久久久久中文字幕 | 99久久精品免费看国产麻豆 | 色噜噜噜 | 黄色成人在线 | 国产午夜精品免费一区二区三区视频 | 国产不卡片 | 久久人人爽人人爽人人片av免费 | 黄色网址在线播放 | 成人四虎影院 | 国产在线观看,日本 | 久久国产精品久久精品 | 国产免费黄视频在线观看 | 在线久草视频 | 中文在线√天堂 | 四虎在线视频 | 国产成人一区二区三区影院在线 | 午夜精品一区二区三区在线观看 | 久久国内精品视频 | 不卡av在线 | 国产在线第三页 | 欧美性极品xxxx娇小 | 在线中文视频 | 91精品综合在线观看 | 国产成人精品免费在线观看 | 黄色免费高清视频 | 97国产大学生情侣酒店的特点 | 1024久久| 国产精品久久久久久久久久久久久久 | 亚洲成av人影院 | 国产精品专区在线观看 | av色图天堂网 | av黄色在线观看 | 天天干天天操天天拍 | 99在线免费视频 | 婷婷精品国产一区二区三区日韩 | 久久久这里有精品 | 一级黄色a视频 | 国产黄色在线看 | 日韩精品久久久久久久电影99爱 | 伊人天天操 | 国产精品女主播一区二区三区 | 四虎永久免费在线观看 | 在线视频亚洲 | 天天干天天操天天射 | 免费在线观看成人小视频 | 伊人久久国产精品 | 久久免费的视频 | 91高清免费观看 | 天天爱天天草 | 成人影音av | 久久五月婷婷丁香社区 | 国产亚洲资源 | 中文字幕在线视频一区二区 | 91精品国产91p65 | av色一区| 精品在线观看国产 | 婷婷中文在线 | 97色国产| 久久久久久国产精品久久 | 国产 成人 久久 | 最近日本mv字幕免费观看 | 91av官网| 久久国产视屏 | 一区二区三区四区精品视频 | 精品视频中文字幕 | 久久国产高清视频 | 91传媒视频在线观看 | 日日干av | 天堂成人在线 | 久久久一本精品99久久精品66 | 中文欧美字幕免费 | 国产精品久久麻豆 | 人人爽人人 | 欧美精品亚洲精品日韩精品 | 香蕉视频在线播放 | www.国产在线观看 | 2021av在线| 日韩精品一区在线播放 | 亚洲国产网址 | 国产精品一区二区三区免费视频 | 色黄久久久久久 | 九九综合久久 | 欧美性做爰猛烈叫床潮 | 99国产精品免费网站 | 91精品第一页 | 国内精品国产三级国产aⅴ久 | 亚洲色图av| 91片黄在线观看动漫 | 精品国产亚洲一区二区麻豆 | 夜夜爱av | 日本高清久久久 | 亚洲综合欧美激情 | 国色天香永久免费 | 97视频在线观看成人 | 黄色精品免费 | 天天曰天天 | 蜜臀aⅴ国产精品久久久国产 | 久久男女视频 | 久草视频资源 | 国偷自产视频一区二区久 | 美女免费视频一区二区 | 91成熟丰满女人少妇 | 色婷婷国产精品一区在线观看 | 免费看黄的 | 免费三级黄色片 | 国产一区二区精 | 国内外成人免费在线视频 | 欧美色图东方 | 国产免费人成xvideos视频 | 国产精品自产拍在线观看蜜 | 在线国产精品视频 | 天天操天天射天天添 | 亚洲精品在线观看的 | 亚洲天堂激情 | 91久久精品日日躁夜夜躁国产 | 91桃色免费视频 | 狠狠88综合久久久久综合网 | 天天爱天天操 | 九九视频热| 三级视频国产 | 亚洲精品88欧美一区二区 | 97久久久免费福利网址 | 中日韩在线 | 成人免费观看完整版电影 | 色资源二区在线视频 | 日韩69视频 | 三级动态视频在线观看 | 成年人视频免费在线播放 | 在线观看亚洲电影 | 在线观看亚洲精品 | 国产视频一区二区在线播放 | 国产日韩中文字幕在线 | 五月婷婷激情综合网 | 国产亚洲综合精品 | 免费三级网 | 国产美女无遮挡永久免费 | 久久丁香 | 亚洲精品在线一区二区三区 | 欧美日韩精品免费观看视频 | 欧美日韩不卡在线视频 | 黄色中文字幕在线 | 麻豆免费视频 | av夜夜操| 日本性久久 | 中文字幕一区二区三区四区 | 日韩在线免费不卡 | 欧美午夜精品久久久久久孕妇 | 免费成人在线观看 | 日韩精品中文字幕一区二区 | 精品麻豆 | 免费又黄又爽视频 | 国产高清小视频 | 韩国在线一区二区 | 国产精品久久久久av免费 | av免费电影在线 | 国产精品美女久久久网av | 成人亚洲网 | 美女黄频在线观看 | av在线网站免费观看 | 少妇自拍av| 很污的网站 | 亚洲国产精品视频 | 亚洲国产经典视频 | www.夜夜爽 | 国产一区免费在线 | 毛片的网址 | 午夜在线观看一区 | 99热在线国产 | 欧美精品在线一区 | 特级黄色一级 | av解说在线 | 插久久 | 亚洲一级黄色大片 | 成人中心免费视频 | 日韩精品久久久免费观看夜色 | 大胆欧美gogo免费视频一二区 | 日韩精品短视频 | 亚洲欧美国产精品18p | www.日日日.com | 成人在线你懂得 | 日韩国产欧美在线视频 | 午夜精品久久久久久99热明星 | 成人在线网站观看 | bayu135国产精品视频 | 日韩有码中文字幕在线 | 黄av免费在线观看 | 成人av免费电影 | 国产小视频免费在线网址 | 99热高清 | 久草久草在线 | 国产精品欧美一区二区 | 久久99深爱久久99精品 | 一区二区 久久 | 国产97av | 日韩在线观看三区 | a视频在线观看 | 国产精品久久久久久久久毛片 | 久久视讯 | av丁香| 免费91麻豆精品国产自产在线观看 | 久久综合狠狠综合 | 国产v欧美 | 国产精品久久 | 三级黄色免费 | 婷婷六月激情 | 久久国产手机看片 | 成年人电影毛片 | 国产一级片在线播放 | 免费高清在线观看成人 | 97电影网手机版 | 国产精品久久久久久久久久直播 | 在线最新av | 婷婷深爱| 99久久久久成人国产免费 | 丁香网五月天 | 色综合中文综合网 | 国产99久久久国产精品免费二区 | 永久精品视频 | 国产日韩欧美在线免费观看 | 中文字幕av在线 | 在线 国产一区 | 国产日韩精品在线观看 | 香蕉视频啪啪 | 欧美一区二区三区在线视频观看 | 中文有码在线视频 | 中文字幕 婷婷 | 日本精品二区 | 大胆欧美gogo免费视频一二区 | 国产三级国产精品国产专区50 | 精品人人人 | 国产福利91精品张津瑜 | 在线亚洲人成电影网站色www | 日韩欧美在线观看一区 | 国产在线综合视频 | 在线观看不卡的av | free,性欧美 九九交易行官网 | 人成免费网站 | 黄色av免费电影 | 免费成人在线观看 | 在线观看亚洲国产精品 | 欧美日韩有码 | 精精国产xxxx视频在线播放 | 欧美在线1区 | 亚洲成成品网站 | av一本久道久久波多野结衣 | 麻豆国产精品永久免费视频 | 手机av在线网站 | 久久精品中文字幕 | 婷婷丁香狠狠爱 | 国产黄色片免费在线观看 | 狠色在线 | www黄色com | 久久优 | 成人av资源网站 | 国产一级视频在线免费观看 | 国产青草视频在线观看 | 中文字幕免费高清在线 | 国产69精品久久久久99尤 | 亚洲a免费| 成人av一区二区三区 | 亚洲在线成人精品 | 久久精品久久综合 | 日日碰狠狠添天天爽超碰97久久 | 免费看一级特黄a大片 | 人人狠狠综合久久亚洲婷 | 成人网看片| 黄色成品视频 | 69视频永久免费观看 | 国产高清 不卡 | 日日夜夜中文字幕 | 中文字幕一区二区三区在线观看 | 色五月成人 | 国产精品视频久久久 | 黄色的视频 | 99久久久久久久久久 | 天天干天天干天天射 | 免费网址你懂的 | 999成人免费视频 | 天天综合天天做 | 欧美a级在线播放 | 国产美女视频一区 | 久久福利在线 | av最新资源| 性色va | 天天射天天射 | 国产一区二区日本 | 国产女教师精品久久av | 久久激情网站 | 欧美男同视频网站 | 日韩欧美一区二区三区在线 | 久草在线国产 | 久久久精品小视频 | 波多野结衣亚洲一区二区 | 国产精品理论片在线观看 | 国内外成人在线 | 西西44人体做爰大胆视频 | 亚洲涩涩涩涩涩涩 | 久久男人中文字幕资源站 | 国产精品99久久久久久有的能看 | 亚洲国产美女精品久久久久∴ | 色在线国产 | 欧美日韩免费在线视频 | 日韩电影在线观看中文字幕 | 国产一区二区三区免费在线观看 | 手机在线视频福利 | 国产精品毛片网 | 91精品国产九九九久久久亚洲 | 日韩欧美在线中文字幕 | 亚洲欧美成aⅴ人在线观看 四虎在线观看 | 日韩精品久久久久久久电影99爱 | 色一色在线| 五月婷婷av在线 | 久久久久久久毛片 | 激情av在线资源 | 欧美性黄网官网 | 欧美亚洲成人免费 | 97超级碰碰碰碰久久久久 | 婷婷六月天在线 | 精品久久毛片 | 伊人夜夜 | 国产中文字幕视频在线观看 | 午夜精品久久一牛影视 | 天天干天天搞天天射 | 欧美日韩在线观看一区二区 | 人人爽人人澡 | 最新中文字幕在线观看视频 | 午夜精品久久久久久久久久久久 | 午夜精品久久久久久久99 | 婷婷 中文字幕 | av网站在线免费观看 | 日韩视频免费观看高清完整版在线 | 狠狠色丁香婷婷综合欧美 | 久久论理 | 在线免费看片 | 99超碰在线播放 | 日本中文字幕电影在线免费观看 | 日本中文字幕一二区观 | 日日干综合 | а天堂中文最新一区二区三区 | 欧美精品黑人性xxxx | 国内精品久久久久影院一蜜桃 | 国产xx视频| 激情丁香月 | 99久久er热在这里只有精品66 | 久久www免费视频 | 天堂av在线网 | www.玖玖玖 | 国产精品一区二区久久精品爱微奶 | 色综合咪咪久久网 | 久久综合久久综合久久 | 日本公妇在线观看 | 精品麻豆入口免费 | 午夜av在线| 中文字幕在线影院 | 国产精品手机在线 | 国产在线不卡精品 | 偷拍久久久| 综合久久久久久久久 | 精品在线视频一区二区三区 | 99热精品久久| 99精品乱码国产在线观看 | 成人全视频免费观看在线看 | 国产va在线观看免费 | 最近免费中文字幕大全高清10 | 久草在线观 | 亚洲美女免费精品视频在线观看 | 一区二区三区四区不卡 | 欧美久久久久久久久 | 亚洲影视九九影院在线观看 | 欧美日韩在线视频一区 | 国产精品日韩在线 | 婷婷国产v亚洲v欧美久久 | 婷婷久久一区二区三区 | 黄污视频大全 | 激情五月色播五月 | 国产精品美女久久久网av | 欧美日韩伦理一区 | 美女视频一区二区 | 天天做日日做天天爽视频免费 | 国产黄色一级大片 | 婷婷伊人五月天 | 国产一区二区高清视频 | 91大片网站 | 欧美成人黄色 |