国产成人欧美一区二区三区vr_久久国产精品人人爽人人爽_国产精品永久免费播放_肉欲啪啪a∨无码精品一区二区_国产超短裙jk丝袜在线_亚洲AV片高清资源在线观看_国模无码一区二区三区久久_国产成年人未进视频_中文字幕无码精品夜_一区二区三区在线视频免费看_亚洲成AV人片在线观看网址_日本激情视频高清综合久久_亚洲午夜视频福利_国内大量揄拍人妻精品視_久久国产精品福利二区三区

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運營的一線實戰(zhàn)洞察。

upb 設(shè)計解析:Protobuf 的 C 內(nèi)核、Arena 內(nèi)存模型與 MiniTable / Reflection 雙層 Schema

upb 設(shè)計解析:Protobuf 的 C 內(nèi)核、Arena 內(nèi)存模型與 MiniTable / Reflection 雙層 Schema upb 設(shè)計解析Protobuf 的 C 內(nèi)核、Arena 內(nèi)存模型與 MiniTable / Reflection 雙層 Schema【免費下載鏈接】protobufProtocol Buffers - Googles data interchange format項目地址: https://gitcode.com/GitHub_Trending/pr/protobuf本文基于 docs/upb/design.md 梳理 upb 的完整設(shè)計思路upb 是 Protocol Buffers 倉庫中一個用 C 實現(xiàn)的 protobuf 內(nèi)核它不面向應(yīng)用直接開發(fā)而是作為“語言運行時之下的底座”被 Python、Rust、PHP、Ruby、Lua 等多種語言綁定所封裝。讀完本文你可以理解 upb 的設(shè)計目標與取舍、以upb_Arena為核心的內(nèi)存管理模型含 Fuse 與固定內(nèi)存塊的使用方式以及 MiniTable 與 Reflection 兩套 Schema 的加載、鏈接與適用場景從而掌握“把一個 C 內(nèi)核安全地包裝進托管語言運行時”的關(guān)鍵工程方法。什么是 upb一個刻意“不穩(wěn)定”的 C 內(nèi)核upbupb is a protobuf kernel written in C是一個快速且完全符合 protobuf 規(guī)范的實現(xiàn)暴露的是一套低級別 C API。它的定位非常明確upb 不設(shè)計給應(yīng)用直接調(diào)用——這個 C API 非常底層、不安全unsafe、并且變化頻繁。文檔明確指出upb 必須保留“隨時進行破壞性 API 變更”的自由以避免背上犧牲其兩大目標小代碼體積、高性能的技術(shù)債。設(shè)計目標與非目標原設(shè)計文檔將目標分為三類完整列出如下Goals目標完整的 protobuf 一致性Full protobuf conformance小的代碼體積Small code size快的性能Fast performance且不以代碼體積為代價易于被語言運行時封裝Easy to wrap in language runtimes易于適配不同的內(nèi)存管理方案引用計數(shù)、GC 等Non-Goals非目標穩(wěn)定的 APIStable API安全的 APISafe API面向應(yīng)用的順手 APIErgonomic APIParameters實現(xiàn)參數(shù)語言標準為 C99支持 32 位或 64 位 CPU假定 4 或 8 字節(jié)指針使用指針打標pointer tagging但避免其他實現(xiàn)定義行為implementation-defined behavior目標是絕不觸發(fā)未定義行為通過 ASAN、UBSAN 等測試保證無全局狀態(tài)、完全可重入fully re-entrant這套取舍可以從倉庫結(jié)構(gòu)中得到印證upb/目錄按職責拆分為base/、mem/、wire/、mini_table/、mini_descriptor/、reflection/、json/、text/、lex/等子模塊而語言封裝層則分布在 lua/upb.c、lua/upb.lua、rust/、php/、ruby/ 等處一致性則由 conformance/ 目錄下的測試套件含failure_list_python_upb.txt、failure_list_rust_upb.txt等針對 upb 后端的失敗列表持續(xù)驗證。Arenaupb 全部內(nèi)存管理的唯一模型upb 中所有內(nèi)存管理都通過 arena 完成統(tǒng)一使用upb_Arena類型。Arena 是malloc()/free()的替代方案能顯著降低內(nèi)存分配開銷Arena 從某個底層分配器通常是malloc()和free()獲取內(nèi)存塊對塊內(nèi)的分配請求用一個簡單的bump allocator按線性順序推進來滿足單個分配不能被單獨釋放只能整體upb_Arena_Free()釋放整個 arena連帶釋放其所有底層內(nèi)存塊。設(shè)計文檔中的標準用法示例upb_Arena* arena upb_Arena_New(); // Perform some allocations. int* x upb_Arena_Malloc(arena, sizeof(*x)); int* y upb_Arena_Malloc(arena, sizeof(*y)); // We cannot free x and y separately, we can only free the arena // as a whole. upb_Arena_Free(arena);這個“arena 參數(shù)”模式貫穿于所有 upb 數(shù)據(jù)結(jié)構(gòu) API任何會分配內(nèi)存的 upb 函數(shù)都接收一個upb_Arena*參數(shù)并用該 arena 而非malloc()/free()進行分配// upb API to create a message. UPB_API upb_Message* upb_Message_New(const upb_MiniTable* mini_table, upb_Arena* arena); void MakeMessage(const upb_MiniTable* mini_table) { upb_Arena* arena upb_Arena_New(); // This message is allocated on our arena. upb_Message* msg upb_Message_New(mini_table, arena); // We can free the arena whenever we want, but we cannot free the // message separately from the arena. upb_Arena_Free(arena); // msg is now deleted. }Arena 是 upb 性能故事的關(guān)鍵部分。解析一個大 protobuf payload 通常意味著快速創(chuàng)建一連串 message、數(shù)組repeated 字段和 map這些分配的速度對解析性能至關(guān)重要同樣重要的是整棵 message 樹的釋放也要盡可能快——arena 可以把這項開銷從O(n)降到O(lg n)。在倉庫中Arena 的完整實現(xiàn)在 upb/mem/arena.h 與upb/mem/arena.c。從源碼結(jié)構(gòu)看公開接口比設(shè)計文檔中還多了幾個面向包裝層的設(shè)施upb_Arena_IncRefFor()/upb_Arena_DecRefFor()見 upb/mem/arena.h#L71-L74允許按 owner 增刪引用upb_Arena_RefArena()見 upb/mem/arena.h#L108則創(chuàng)建from → to的單向生命周期引用保證to在from釋放前不會被釋放——這些正是“把 C arena 與 GC/引用計數(shù)體系對接”時需要的原語。upb_Arena_New()本身也只是內(nèi)聯(lián)包裝見 upb/mem/arena.h#L137-L143UPB_API_INLINE upb_Arena* upb_Arena_New(void) { return upb_Arena_Init(NULL, 0, upb_alloc_global); }避免懸垂指針單 Arena 與 Fuse 原語arena 上分配的對象通常會包含指向其他 arena 分配對象的指針例如一個upb_Message會持有指向其子 message 的指針而這些子 message 同樣分配在 arena 上。與unique_ptr這類獨占所有權(quán)方案不同arena 無法自動防止懸垂指針upb 的做法是提供工具幫助在高級內(nèi)存管理方案GC、引用計數(shù)、RAII、borrow checker與 arena 之間架橋。單 arena 場景是最簡單的如果一個 arena 內(nèi)所有對象同時被釋放那么 arena 內(nèi)部的懸垂指針就不可能發(fā)生。用戶仍需小心不要在 arena 釋放后繼續(xù)持有指向其內(nèi)存的指針但 arena 對象之間的懸垂指針從原理上被排除了。多 arena 場景才是難點如果存在從 arena A 指向 arena B 的指針如何保證它不會懸垂為此 upb 提供了名為fuse的原語// Fuses the lifetimes of a and b. None of the blocks from a or b // will be freed until both arenas are freed. UPB_API bool upb_Arena_Fuse(const upb_Arena* a, const upb_Arena* b);兩個 arena 被 fuse 后它們的生命周期被不可逆地綁定在兩個 arena 都被upb_Arena_Free()釋放之前任何一方都不會釋放自己的內(nèi)存塊于是兩個 arena 之間的懸垂指針不再可能發(fā)生。Fuse 的典型用途是把來自兩個不同 arena 的 message 合并例如把一個作為另一個的子 message 掛接。Fuse 是一個相對便宜的操作文檔給出量級約為 150ns且對參與 fuse 的 arena 數(shù)量幾乎是O(1)真實復(fù)雜度是逆 Ackermann 函數(shù)增長極其緩慢。需要注意的代價每個 arena 自身會占用一定的內(nèi)存所以“反復(fù)創(chuàng)建新 arena 并 fuse”并不免費但兩個 arena 的 fuse 本身 CPU 成本不高。在 upb/mem/arena.h#L59-L63 中可以看到該接口的當前聲明注釋還補充了一個設(shè)計文檔未強調(diào)的細節(jié)Fuse 操作本身是線程安全的可并發(fā)從多個線程調(diào)用。倉庫中docs/upb/arena_fusion.md也專門展開了 arena 融合的行為細節(jié)可作為延伸閱讀。初始內(nèi)存塊與自定義分配器無堆場景下使用 upbupb_Arena默認用malloc()/free()獲取和歸還底層塊但這個默認策略可以定制以適應(yīng)特定語言的需求。創(chuàng)建 arena 的最底層函數(shù)是// Creates an arena from the given initial block (if any -- n may be 0). // Additional blocks will be allocated from |alloc|. If |alloc| is NULL, // this is a fixed-size arena and cannot grow. UPB_API upb_Arena* upb_Arena_Init(void* mem, size_t n, upb_alloc* alloc);參數(shù)行為[mem, n]緩沖區(qū)作為初始塊initial block使用在所有底層分配函數(shù)被調(diào)用之前優(yōu)先滿足分配請求。注意upb_Arena結(jié)構(gòu)體本身若可能也會從初始塊中分配因此 arena 實際可用于分配的內(nèi)存會少于nalloc指定初始塊耗盡之后使用的自定義分配函數(shù)若傳入NULL作為分配函數(shù)則初始塊是 arena 中唯一的內(nèi)存來源——由此得到一個固定大小、不可增長的 arena這使 upb 即使在沒有堆的環(huán)境中也能運行。由此推出的重要推論upb_Arena_Malloc()是一個可能失敗的操作只要存在使用固定大小 arena 的可能upb_Message_New()等一切分配型操作都必須檢查失敗返回值。當前實現(xiàn)中該約束依然成立例如 upb/mem/arena.h#L49-L50 處的聲明保留了相同的三參數(shù)簽名另有一個演進細節(jié)實現(xiàn)層新增了upb_Arena_SetAllocCleanup()見 upb/mem/arena.h#L56-L57允許注冊一個在 arena 銷毀時執(zhí)行的清理函數(shù)這為封裝語言提供了掛載析構(gòu)邏輯的鉤子。Schemaupb 中幾乎所有操作的前提upb 中幾乎每個操作都要求你先擁有一個 schema。protobuf schema 是包含.proto文件中定義的所有 message、field、enum 等定義的數(shù)據(jù)結(jié)構(gòu)創(chuàng)建、解析、序列化或訪問 message 都必須有 schema。因此加載 schema 通常是使用 upb 時的第一步。為什么必須 schema-first設(shè)計文檔在此處有一個關(guān)于 protobuf 本質(zhì)的重要洞見這與 protobuf 線格式wire format本身有關(guān)。與 JSON 不同protobuf 無法以無 schema 的方式被解析或操作——因為二進制線格式不區(qū)分字符串和子 message一個對 schema 一無所知的通用解析器在原理上不可能實現(xiàn)。若未來某版線格式能區(qū)分這兩者才有可能存在 schema 無關(guān)的數(shù)據(jù)表示、解析器與序列化器。MiniTable 與 Reflection 對照upb 中有兩類表示 protobuf schema 的主要數(shù)據(jù)結(jié)構(gòu)MiniTables精簡緊湊的 schema 版本只包含解析/序列化二進制線格式所必需的信息Reflection包含.proto文件中的幾乎所有數(shù)據(jù)包括所有 message/field 等的原始名稱以及全部 options。兩者的主要區(qū)別繼承自原文檔的對照表MiniTablesReflectionContains包含字段編號和類型僅此而已.proto文件中的全部數(shù)據(jù)包括一切名稱Used to parse用途二進制格式JSON / TextFormatWire representation線格式載體MiniDescriptorDescriptorType names類型名upb_MiniTable、upb_MiniTableField、…upb_MessageDef、upb_FieldDef、…Registry注冊表upb_ExtensionRegistry用于擴展upb_DefPool選型原則如果只需要二進制線格式MiniTable 比完整 reflection 輕量得多如果需要解析 JSON 或 TextFormat、或需要訪問.proto中指定的 options則要用 Reflection。注意Reflection 內(nèi)部也包含 MiniTables——擁有 reflection 就同時擁有 MiniTable但反向不可行只加載了 MiniTable 的應(yīng)用無法得到對應(yīng)的 reflection。因此 upb 可以按需要裁剪成兩種形態(tài)只需 MiniTable 的那部分 upb 可視為“upb lite”——代碼體積和運行時內(nèi)存開銷都更小需要 reflection 的那部分視為“upb full”。判斷一個函數(shù)屬于哪一層只需看簽名里出現(xiàn)哪類類型出現(xiàn)upb_MiniTable/upb_MiniTableField等即該操作需要 MiniTable出現(xiàn)upb_MessageDef/upb_FieldDef等則需要 Reflection。MiniTable類型與二進制 APIMiniTable 由一族以upb_MiniTable命名的數(shù)據(jù)結(jié)構(gòu)表示upb_MiniTable代表 messageupb_MiniTableField、upb_MiniTableFile等。例如二進制解析入口// Parses the wire format data in the given buffer [buf, size] and writes it // to the message msg, which has the type mt. UPB_API upb_DecodeStatus upb_Decode(const char* buf, size_t size, upb_Message* msg, const upb_MiniTable* mt, const upb_ExtensionRegistry* extreg, int options, upb_Arena* arena);MiniTable 的三種加載方式來自 C 生成代碼upb 代碼生成器可以輸出.upb_minitable.c文件把 MiniTable 作為全局常量變量嵌入。主程序鏈接這些文件后MiniTable 會落在二進制的.rodata或.data.rel.ro段中運行時通過生成函數(shù)直接取到。在 Bazel 中可用upb_minitable_proto_library()規(guī)則完成生成與鏈接倉庫中對應(yīng)規(guī)則見 upb_generator/ 及 upb/bazel/ 目錄下的構(gòu)建邏輯。來自 MiniDescriptor用戶可以在運行時把 MiniDescriptor 構(gòu)建為 MiniTable。MiniDescriptor 是一種緊湊的、upb 專屬的線格式專門為此設(shè)計調(diào)用upb_MiniTable_Build()即可完成轉(zhuǎn)換。當前倉庫中該入口位于 upb/mini_descriptor/decode.h#L49-L52。來自 reflection如果已經(jīng)為某類型構(gòu)建了 reflection 數(shù)據(jù)結(jié)構(gòu)可通過upb_MessageDef_MiniTable()從upb_MessageDef取得對應(yīng)的upb_MiniTable。選擇準則設(shè)計文檔給出的實操指南已經(jīng)使用 reflection 的語言(3) 是顯而易見的首選回避 reflection 的語言在 (1) 與 (2) 之間若目標語言在給定平臺上參與標準二進制鏈接模型特別是通常用ld鏈接則用 (1)——即靜態(tài)加載static loading。靜態(tài)加載的優(yōu)點不需要任何運行時初始化啟動更快唯一例外是庫或二進制為位置無關(guān)代碼時ELF/Mach-O loader 可能做的指針重定位有利于跨語言共享 proto message——共享通常要求雙方使用完全相同的 MiniTable。靜態(tài)加載的主要缺點需要為每個.proto生成一個.upb.c文件并鏈接其傳遞閉包內(nèi)所有.upb.c。Bazel 下這相對容易其他構(gòu)建系統(tǒng)會麻煩一些。而 (2) 的動態(tài)加載優(yōu)點是不需要為每條消息鏈接 C 代碼。對許多語言工具鏈來說為每個 protobuf 文件或消息類型生成并鏈接自定義 C 代碼是沉重負擔MiniDescriptor 提供了一種無需跨越核心運行時之外的 FFI 邊界即可加載 MiniTable 的便捷途徑。動態(tài)加載的常見模式是把包含 MiniDescriptor 的字符串直接嵌入生成代碼。例如 Dart 生成代碼中對純原始字段 message 的樣子const desc r$(),*-#$%! /10; _accessor $pb.instance.registry.newMessageAccessor(desc);newMessageAccessor()的實現(xiàn)基本就是upb_MiniTable_Build()的包裝從 MiniDescriptor 構(gòu)建 MiniTable。在代碼生成器中MiniDescriptor 可由upb_MessageDef_MiniDescriptorEncode()API 獲得——用戶永遠不需要手工編碼 MiniDescriptor。MiniTable 的鏈接Linking動態(tài)構(gòu)建 MiniTable 時把每條 message 鏈接到其子 message 和 enum 是用戶的責任每條 message 的 message 類型字段和 closed enum 字段必須分別用upb_MiniTable_SetSubMessage()和upb_MiniTable_SetSubEnum()鏈接還有一個高層函數(shù)upb_MiniTable_Link()一次鏈接所有字段它與upb_MiniTable_GetSubList()是絕配——后者可以在代碼生成器中列出所有需要傳給upb_MiniTable_Link()的 message 和 enum。這些接口在倉庫中的位置與語義可參見 upb/mini_descriptor/link.hupb_MiniTable_GetSubList()獲取子依賴清單見 upb/mini_descriptor/link.h#L61upb_MiniTable_Link()執(zhí)行批量鏈接見 upb/mini_descriptor/link.h#L71。常見模式是把link()調(diào)用直接嵌入生成代碼例如 Dart 中構(gòu)建含子 message 與 enum 的 MiniTableconst desc r$3334; _accessor $pb.instance.registry.newMessageAccessor(desc); _accessor!.link( [ M2.$_accessor, M3.$_accessor, M4.$_accessor, ], [ E.$_accessor, ], );這里upb_MiniTable_GetSubList()在代碼生成器中發(fā)現(xiàn)了 3 個子 message 字段和 1 個子 enum 字段需要鏈接運行時這份 MiniTable 列表被傳入link()其內(nèi)部調(diào)用upb_MiniTable_Link()。兩點補充某些應(yīng)用可能作為樹搖tree shaking策略的一部分選擇推遲甚至跳過注冊某些子 message 類型使用靜態(tài) MiniTable 時不需要手工鏈接步驟因為鏈接由ld自動完成。MiniTable 與 closed enumMiniTable 主要承載 message、field 與 extension 的數(shù)據(jù)但對于 closed enum還需要一個upb_MiniTableEnum結(jié)構(gòu)保存該 enum 中定義的所有數(shù)值集合——原因是 closed enum 有一個麻煩的行為未知 enum 值會被放入 unknown field set。設(shè)計文檔判斷隨著 editions 的推進 closed enum 將逐步淡出upb_MiniTableEnum的相關(guān)性與開銷會隨之縮小直至消失。Reflectionupb full 的完整 schemaReflection 使用upb_MessageDef、upb_FieldDef等類型在運行時表示.proto文件的完整內(nèi)容。它們是 upb 中g(shù)oogle::protobuf::Descriptor、google::protobuf::FieldDescriptor等的直接對應(yīng)物。一個值得注意的命名約定upb 一律用Def替代 C 的DescriptorDef不到Descriptor長度的 1/3目的是節(jié)省 C 代碼中每行都要重復(fù)類型名的橫向空間例如upb_FieldDef_Name()對比upb_FieldDescriptor_Name()。這有意與 C 命名分叉是刻意的設(shè)計決策。需要 reflection 的操作示例// Parses JSON format into a message object, using reflection. UPB_API bool upb_JsonDecode(const char* buf, size_t size, upb_Message* msg, const upb_MessageDef* m, const upb_DefPool* symtab, int options, upb_Arena* arena, upb_Status* status);upb_DefPool是構(gòu)建并擁有一組 def 的頂層容器是 Cgoogle::protobuf::DescriptorPool的緊密對應(yīng)物用戶必須始終保證upb_DefPool的壽命長于它所擁有的任何 def 對象。倉庫中upb_DefPool的核心實現(xiàn)見 upb/reflection/def_pool.h 與upb/reflection/def_pool.c。Reflection 的兩種加載方式來自 C 生成代碼upb 代碼生成器可以創(chuàng)建foo.upbdefs.c文件嵌入 descriptor 并導(dǎo)出 C 函數(shù)把它們加入用戶提供的upb_DefPool來自 descriptor用戶可對運行時獲得的 descriptor 手工調(diào)用upb_DefPool_AddFile()見 upb/reflection/def_pool.h#L86隨后用upb_DefPool_FindMessageByName()見 upb/reflection/def_pool.h#L39-L40按名取出單個 message 的 def。與 MiniTable 不同從生成代碼加載 reflection 需要運行時初始化upb_MessageDef這類 reflection 數(shù)據(jù)結(jié)構(gòu)無法像upb_MiniTable那樣直接發(fā)射進.rodata。生成代碼是把序列化后的 descriptor proto 嵌入.rodata運行時再構(gòu)建為堆對象。由此不能簡單認為 (1) 只是 (2) 的便利包裝(1)確實鏈接了靜態(tài).upb.c中的 MiniTable 結(jié)構(gòu)而 (2) 會在堆上從頭構(gòu)建 MiniTable因此 (1) 在把 descriptor 加載進upb_DefPool時 CPU 和 RAM 略省更關(guān)鍵的是(1) 得到的 descriptor 能夠反射基于生成的.upb.cMiniTable 構(gòu)建的 message而 (2) 得到的 descriptor 擁有各不相同的 MiniTable無法反射使用生成 MiniTable 的 message。PHP、Ruby、Python 這類動態(tài)語言的常見模式是用 (2) 配合嵌入生成代碼的 descriptor。Python 生成代碼當前的樣子from google.protobuf import descriptor_pool as _descriptor_pool from google.protobuf.internal import builder as _builder _desc b\n\x1aprotoc_explorer/main.proto\x12\x03pkg DESCRIPTOR _descriptor_pool.Default().AddSerializedFile(_desc) _globals globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, google3.protoc_explorer.main_pb2, _globals)上面的AddSerializedFile()本質(zhì)上就是upb_DefPool_AddFile()的薄包裝。倉庫中 Python 實現(xiàn)python/ 目錄含descriptor_pool.c等 C 層代碼與 C 內(nèi)核的這條銜接路徑正是設(shè)計文檔所描述模式的落地。upb 在倉庫中的落地從內(nèi)核到語言綁定從源碼結(jié)構(gòu)看設(shè)計文檔中各概念在倉庫內(nèi)都有對應(yīng)落點可作為繼續(xù)深入的入口設(shè)計概念倉庫位置說明Arena 內(nèi)存模型upb/mem/arena.h、upb/mem/arena.cupb_Arena_Init/Free/Fuse/Malloc以及RefArena/IncRefFor等包裝層原語MiniTable 數(shù)據(jù)結(jié)構(gòu)upb/mini_table/message.h、field.h、enum.h、extension_registry.c等message/field/enum/擴展注冊表MiniDescriptor 構(gòu)建upb/mini_descriptor/decode.h、upb/mini_descriptor/link.hupb_MiniTable_Build、upb_MiniTable_Link等Reflectionupb/reflection/def_pool.h、def.h、field_def.c等upb_DefPool_AddFile、upb_MessageDef等代碼生成器bootstrap 編譯鏈upb_generator/minitable/、reflection/、stage0/、upb_generator/bootstrap_compiler.bzl生成.upb.c/.upbdefs.c用stage0引導(dǎo)自舉一致性驗證conformance/ 與 upb/conformance/各語言后端的 failure list 區(qū)分 cc/upb 實現(xiàn)語言綁定示例lua/upb.c、lua/upb.lua、rust/、python/“把 upb 封裝進語言運行時”的真實樣例其中 Lua 綁定lua/目錄中的upb.c/upb.lua/test_upb.lua是體量最小的完整封裝樣本適合想理解“如何把 C 內(nèi)核包進一門語言”的讀者作為起點閱讀。小結(jié)upb 的設(shè)計可以濃縮為三個關(guān)鍵決策三者共同服務(wù)于“可被任意語言運行時低成本封裝”這一總目標不追求 API 穩(wěn)定與安全換取小體積、高性能與自由演進的空間——upb 的定位是內(nèi)核而非 SDK一切分配經(jīng)由upb_Arena用 bump allocator 整體釋放換取分配/釋放速度用upb_Arena_Fuse和引用原語解決跨 arena 懸垂指針問題用upb_Arena_Init的初始塊 自定義分配器支持無堆環(huán)境雙層 SchemaMiniTableupb lite與 Reflectionupb full前者以字段號與類型的緊湊表示支撐二進制線格式并可靜態(tài)鏈接進.rodata后者承載完整.proto語義支撐 JSON/TextFormat 與 options 訪問且 Reflection 內(nèi)嵌 MiniTable、單向可降級、不可升級。對正在評估“為一種新語言實現(xiàn) protobuf 支持”的工程師而言upb 的設(shè)計文檔與上述源碼路徑給出了一條被 Python、Rust、PHP、Ruby、Lua、Dart 等綁定反復(fù)驗證過的路線在語言運行時與 C 內(nèi)核之間用 Arena 解決內(nèi)存歸屬用 MiniTable 或 MiniDescriptor 解決 schema 獲取把 FFI 面收斂到極小?!久赓M下載鏈接】protobufProtocol Buffers - Googles data interchange format項目地址: https://gitcode.com/GitHub_Trending/pr/protobuf創(chuàng)作聲明:本文部分內(nèi)容由AI輔助生成(AIGC),僅供參考
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
一区二区三区机械有限公司| 嗯,啊。舔我逼| 91春色| 丁香五月天婷婷姐| 强奸a片网| 日韩综合无码一区久久92| 粉嫩AV一区夜夜嗨| 亚洲色图大香| 亚洲色欲天天人妻无码系列专区| 欧美日本国产日韩激情视频| 熟女这里只有精品6| 91久久久久久久久18| 亚洲男人天堂2013| 热久久99999| 91久久久久久| 欧美劲爆视频一区二区| 偷窥自拍A片| 国产亚洲精品A在线观看下载| 丝袜天堂网| 九九热五区| 91在线色综合| 激情五月丁香五月| 国模少妇一区二区三区| 亚乱色| 中文字幕五月婷婷免费| dy888午夜老子影视达达兔| 东京热男人天堂| 久久久久久久久久精| 日日AV加勒比| 欧亚揄拍偷拍精品视频| 麻豆成人av| 青青草密桃在线播放| 国产1769在线| 欧美激情中文字幕另类小说| 日本性爱网址| 在线观看精品国产免费| 淫妻综合网| 亚洲有码 欧美精品| 91|九色|国产熟女| 日韩精品视频在线观看一卡二卡| 思思热久久成人| 国产 亚洲 一二三四| 97欧美| 国产精品剧情| 无遮挡又黄又刺激的视频| 91日韩国产欧美亚洲另类精盘州至城都| 久久久神马影院| 天天综合,91入口| 午夜精品久久久久久久99| 在线情色电影 91大 | 无码久| 激情亚洲天堂| 久久夜精品一区二区三区| 嗯嗯啊啊好疼| 国产精品久久久久久夜夜夜夜| 丝袜美腿校园春色| 日韩精品在线视频,日韩精品……| 蜜臀中文字幕| 国产最火爆久久国产网站网站| 久久精品一区二区一8| 亚洲欧美一区二区网址| 特级丰满少妇一级AAAA爱毛片| 亚洲国产高清福利视频| 激情丁香五月| 99精品网站| 91五月天| 九九热三级片| 人人操人人插人人摸人人干| 97超碰jingpin| 麻豆国产原创AV色哟哟| 曰韩少妇无码| 欧美gv在线观看| 特级毛片特黄久久免费看| 操比国产| 91精品国产综合久久久蜜臀| 久久超碰av在线| 老熟女天天操| 久久亚洲中文字幕视频| www.色婷婷色综合| 歐美性天天| 日本加勒比无码专区一二三| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区老师黑人潮喷一 | 欧美亚洲首页| 99在线免费公开视频| 中文字幕精品一区二区精| 手机看片1025| 亚欧中文字幕在线视频| 精品人妻一区二区蜜桃视频| 国产黄色剧情影片麻豆免费播放| 亚洲精品中文字幕一区在线视频| 精品99999久久久久久| 婷婷15月天青娱乐| 成人性爱免费播放| 91久久婷婷| 亚洲熟妇丝袜在线观看| 91丝袜在线播放| 亚洲精品国产专区在线观看| 亚洲AV无码天美传媒一区| 婷婷久草| 久久久亚洲高清不打码| 精爱久久| 日韩偷拍一区二区三区| 久久色一区| 欧美日韩制服| 亚洲色图超碰在线| 国产熟女一区二区| 国产无马av| 亚州高清av| 中国一级αV| 九九综合久久| 久久久久久免费电影| 日本性爱欧美性爱| 国产精品2020| 国产精品999aaa| 狠狠激情综合狠狠操中文字幕| 后入内射蜜桃臀| 校园春色五月天| 开心五月激情网| 97在线亚洲| 欧洲成人性爱视频| 美日韩一二三区| av网站国产主播在线| 裸体美女免费看网站青草| 91热色| 亚洲最新中文字幕免费| 国产又大又粗又色生活片亚洲国产精品成人久久久综合免费 | 色穴精品| 亚洲无无码αⅴ每日更新| 精品久久久九九九孕妇| 欧美性爱第1 页| 免费看毛片操穴| 91 丝袜在线播放| 亚洲不卡不卡中文字幕不卡| 亚洲中字幕日本一区二区三区| 懂色AV一区二区三区| 偷拍盗拍亚洲色图图片| 国产精品老熟女一区二区| 久久久91| 国产专区路线| 欧美强奸乱| 黄色一区三区| 五月天社区| 婷婷爽人人婷婷爽视频| 综合色图,成人综合网| 夜夜爽夜夜操| 78p欧美| 蜜乳AV一区| 人妻激情在线视频| 久久综合婷婷| 久久国产熟女影院| x97av| 国产成人久久久精品免费AV| 综合久久2017| 国产久久日| 日韩成人大片在线观看| 午夜亚洲WWW湿好大| 日韩午夜国产| 国产女人成人精品视频| 色在线视频导航| 北条麻妃性愛视频| 婷婷丁香五月综合| 91久热| 丝袜美腿欧美| 国产尹人在线视频免费| 啊啊啊操死我| 99久在线精品99re8| 国产欧美美女免费观看视频| 国产一在线观看| 人人操人人肉久久精品| 久久久亚洲精品电影免费看| 强奸乱伦大香蕉| 91美女片在线| 日韩天天本| 天美传媒国产原创中文字幕亚洲欧美另类| 中国一区二区亚洲人妻| 少妇色| 亚洲美女黄色| 1024手机看片欧美日韩| 久久综合精品一区二区三区| 黑人精品成人一区二区三区| 殴美,日韩国产伦精品| 丝袜性亚洲| 综合久久六月久久婷婷| 亚洲一区操| 欧美色图校园春色| 一卡二卡三卡| 东京热99999| 夜夜 中文视频rt| 久久久工口| 日韩乱码Av| www.一本大99| 久久这里都是精品| 丝袜综合| 一区超碰一区| 亚洲综合九九| 8050午夜少妇无码| 久久久久密臀一区二区| 久久久久国色αv免费观看| 亚洲爽图| 99久久9| 天天综合精品| 欧美亚洲韩国视频十五区| 综合熟妇一区二区三区| 日本免费中文字幕在线| 无码 有码 国产18p| 午夜色婷婷| 亚洲色9| 美女久久久久久久久久久| 这里都是精品| 欧美一区二区亚洲天堂| 久久一二三四五六七八九区区| 亚洲欧美黄| 睡产熟女乱伦| 成人开心网在线视频| 精品日韩中文在线| 久久同城AV| 欧洲亚洲人妻无码高清久久三区四区| 视频分类 国内精品| 色九九综合AV| 亚洲欧美校园| 国模艳艳啪啪一区| AV老汉| 久久精品国产99久久,亚洲日韩久久日本一区一区三区 | 国模精品娜娜一二三区| 超碰97综合网| 青草青青久久久久久国产| 黄色AAAAAAAAAAA大片| 91色欧美| 黄色av一区二区在线| 9999亚洲精品| 强免费黄色网址| 99热这里只有精品18| 色女网日韩| 免费少妇一区二区| 久久一二三四五六七八九区区区| 国产sv美女内射| 天天干干天天干干| 欧美激情亚洲情色| 欧美日日网| 日韩性色| A啊啊在线观看| 1769成人国产精品视频| 国产亚洲欧洲在线观看| 岛国黄| 997色在线| 97福利视频| 中文字幕制服诱惑| 国产熟妇一区二区| 亚洲人妻一区二区三区| 韩国一级做A片免费的| 色综合一区二区三区| 天天影视网色欲色香| 人妻精品综合中文字幕在线| 囯产精品一区二区三区线|亚洲人成无码网WWW动漫|国产精品免费一级... | 99爱精品| 国产精品一区二区久久精品| 91熟女视频网| 欲射影视| 伊人国产视频| 久久仑合| 天美精品原创av片国产| 超碰美国| 亚洲啪啪综合?v一区综合精品区| 中文字幕青青草| 最新精品久久蜜桃| 加勒比AV网| 看看小穴| 91色鬼| 日韩啪啪啪啪啪| 国产AV高清AV无码| 性做久久久久久免费观看软件| 亚洲精品国产精品成人| 蜜臀久久99精品久久久电影| 精品国产一区二区三区久久久蜜臀 | 综合国产影视三级| 91操人| 久久男人天堂| 免费av高清无码| 翔田千里爆乳巨臀无码| AⅤ片水多多| 国产精品农村妇女| 亚洲国产综合视频| 欧美性爱精品七区| 国产老女人久久毛| 97视频免费在线观看| 亚洲人天堂| 亚洲熟妇A V黑人| 中文日韩欧美熟| 色偷综合| 久久久久久中文| 青青草华人在线欧美在线| 欧美淫乱视频| 精品国产Av无码久久久伦古装| 男人的天堂三级| 久久亚洲天堂| 男人精品区| 五月丁香激情四射| 国产又黄又爽又刺激久久久久久| 日本三级A片网站com| 日韩精品一区二区日韩| 伊人99热| 久久九九一区二区三区成人| 蜜桃臀久久| 人妻激情在线视频| 综合另类| 色爱综合网| 久久久久中出| 超碰人妻97| 亚洲精品一二区| 一区二区三区精品黑丝白丝酒店对鸡 | 啊啊啊啊在线播放| TS人妖另类精品视频系列| 可能人人看人人摸| 久久大陆| 亚洲一曲日韩精品| 国产伦精品一区二区三区视频女| 91国产美女丝袜足交精品视频 | 青青操日韩| 日韩久久.一级黄色片| 久久美国毛片| 二三四区精品| 亚洲丝袜综合| 九九热精品在线| 夜夜 中文视频rt| 人妻9117c| 色噜噜综合在线| 久久99久久99精品天美传媒棢·纸:. | julia中文字幕在线观看| 96精品久久| www鬼畜国产男人的天堂| 精品一区二区三区麻豆| 中文字幕制服欧美久久一区| 四虎影视永久在线免费| 精品人妻久久久| 久久伊人大香蕉| 青青青在线高清视频在线一二三四区 | 色色九区| 久久久久久久少妇| 亚洲av国产av综合av卡| 91人妻少妇| 亚洲综合小说另类图欧美视频激情小说色五月天 | www国产无码| 99在线免费观看| 少妇久久久| 夜夜夜久久| 粉嫩av在线| 99re69综合| 乱伦一区二区三区‘| 综合 青草 伊久久 影院 综合| 99久久国产精品免费高潮| 精品人人| 国产精品一区二区 尿失禁| 久久超碰av在线| 国产亚洲精品美女久久久m| 激情综合网一盗摄| 又黄又爽在线观看视频| 久久久久亚洲熟妇熟女| 91免费看中出视频| 亚洲丝袜天堂| 色婷婷99| 国产亚洲美日韩Aⅴ中文字幕无码成人| 国产中文日韩欧美一区二区三区人妻丝袜美腿 | 人妻激情视频| 男女打扑克高清网站| 欧美超碰97| 精彩久久中文| 亚欧Av| 91久久婷婷| 久久AV无码AV| 青青欧美在线| 久久精品国产亚洲粉嫩| 美女干逼2| 激情综合五月| 在线观看国产黄色| 人妻一区视频| 亚洲97成人在线观看| 伊人9| 东京热一区二区三区四区五区六区| 狠狠色综合网| 毛片中心9视频99| 一级A啪啪啪啪| 国产一级内射无挡观看| 亚洲一曲日韩精品| 乱欲一区二区| 97伦乱| 日韩免费人妻色情网站| 五月丁香综合网| 熟女丰满人妻一区| 日韩av三四区| 破处bbq| 水滴偷拍| 国产一区二区三三视频| 久久草在线综合视频| 美女刺激久久国产欧美| 天天操美美| 99热精品在线观看| 天天激情干| 国产精品一级二级在线| 女性91网站| 国产在线激情视频| 婷婷六月色| 欧美18禁91| 欧美日韩人妻精品一区二区三区| 亚欧毛片基地国产毛片基地| 国产激情久久久| 亚洲不卡av在线| 色悠久久久av| 国产中文字幕在线点播| 色女网日韩| 国产乱码精品久久久久久| 少妇熟女视频一区二区三区| 亚洲宗合网| 2021国产成人精品久久| 色玖玖| 婷婷香网站| 天天看片青娱乐| 强奸乱伦麻豆| 国模久久在线| 思思热久久成人| 1024久久高清视频| 久久69| 男人的天堂不卡一区二区| 婷婷91| 国产午夜激片Av毛片不卡| 精品偷拍13p欧美dodk视频| 色99在线| 日夜尻逼网| 激情丁香五月婷婷| 亚洲国产精品无码AV久久| 激情第四色| 2017天天透天天通天天擦| 国产又黄又粗的视频| 99re3这里只有精品| 欧美色老汉| 欧美日韩性爱精品| 免费精品无码一级毛片牛牛影视| 中文字幕二区日韩天堂| 情趣丝袜无码操逼视频| 亚洲成人妻日韩在线| 69少妇一区二区| 色91综合网| 天天视频黄| 麻豆AV96熟妇人妻| 国产精品女生av| 超碰地址97| 操逼1区| 色哟哟av| 18一区二区三区| yellow网站免费观看日韩高清无码| 亚洲棕合电彰| 在线看片国产精品每日更新| 亚洲女优有码无码高清| 91n美女视频| 粉嫩粉嫩一区性色AV片| 97久操| 欧美丝袜激情| 亚洲18禁| 夜夜爽77777| 大香网站| 777AV电影| 亚洲自拍偷拍视频在线| 99999久久精| 欧美性生活内射| 久久日韩毛| 日韩亚洲中文字幕在线| 亚洲精品国产精品成人| 欧美色图20P| 91色色综合| 久久久爆乳翘臀一线天伦理视频| 久干9操| 岛国在线国产| AV天堂国产| 日韩无码极品| 日韩成人无码| 婷婷操逼| 成人婷婷丁香| 日韩中文字幕在线视频观看| 国产第25页在线观看| 久久透逼视频| 在线只有精品| 日韩在线视频1234| 亚洲精品久久久久久久久豆丁网| 伊人五月天| 去干网最新版| 99热在线播放| 伊人久久国产免费观看视频| 日韩传媒在线| 久久神马影院| 蜜臀av中文字幕| 97在线公开视频| 蜜臀99久久国产| 久久久久久久久久久免费精品| 狠狠色伊人亚洲综合网站色| 亚洲一本色道中文无码aV天美| www久久99| 色 婷97| 欧美色交| 性爱边摸边日免费AV| 五月丁香色色网| 大香伊人在线一区| 美女久久久久久久久久久| 襙一襙| 乱伦3P视频| 青青青操| 午夜欧美精品久久久| 亚洲精品国产无码高清| 丁香五月电影| 久久久99999久网站| 日韩 欧美 国产 麻豆| 欧美资源| 熟妇熟女视频一区二区三区| 91丝袜在线视频| 视频不卡中文字幕| 婷婷五月天补不补| 精品久久九| 91性高朝久久久久久久久| 中字乱伦AV| 九九国产热| 九九九精品成人免费视频小说| 99热自拍| 2017天天操| 91三级理论片播放器| 经典丝袜一区| 国产精品久久久鸭无码的功能| 97超碰人操| 日本性爱网址| 精品久久久久av影院| 91强在线播放| 中文日本免费高清| 国产熟女自拍| 思思热在线视频精品| av亚欧| 日韩欧美成人大香蕉| 久久夜黄色无码A级大片| 99久久亚洲精品无码毛片潘甜甜| 中文乱码99| 国产 日韩 欧美 中文 另类,国产 欧美 另类 制服 变态,高清 日韩 欧美 中文,高 | 欧美少妇色综合| 围产精品一区二区三区视频播放| 尤物视频偷拍免费| 97精彩视频网站| 亚洲古典另类欧美在线| 嗯嗯不要视频| 热久久无毒不卡| 婷婷色婷婷| 91亚洲网站| 天天综合影院91| 天天操天天射天天日| 中文字幕视频免费| 亚洲第一页色| 日本日皮视频逼| 男人天堂资源| 久久九九精品一区二区| 91ise欧美| 影音先锋视频在线| 国产又黄又粗又猛大片| 国产深喉| 超碰日韩美妻| 欧美激情片一区二区| 久久久久人妻| 99精品在线播放| 亚洲一区二区三区播放在线| 国产亚洲色停停久久99精品91| 亚洲女人91| 九久久九九久视频| 夜夜春夜夜操| 91精品操美女| 男人天堂毛片| 欧美熟妇精品黑人巨大91| 91老熟女91老女人| 日本 情色 1区2区3区| 超碰精品| 欧美性爱网97| 欧美亚洲性爱一区二区| 久久久久久久人妻| 亚洲成人性爱在线观看| 国产三级资源在线观看| 五月丁香六月激情| 97最新在线播放视频| 欧日a| 性做久久久久久免费观看软件| 波多野结衣先锋影音| 国产91精品福利在线| 青青久久手机线视频| 永久免费发布性爱网| jk白丝没脱就开始啪啪| 亚洲无码一二三区| 日韩去日本高清在| hd成人一区二区在线| 最新国产精品久久精品| 偷看洗澡一二三区美女| 亚洲夜夜欢无码一区二区| 影音先锋国产精品| 99热66| 国产福利夜| 亚洲精品蜜桃久久久久久久| 99最新日韩偷拍视频| 国产精品久久久久婷婷二区次| se..亚洲欧美| 免费一级a毛片久久久久久鸭绿欲| 久久一区二区三区入口| 熟女在线视频| 狠狠色五月亚洲91| 欧美视频一| 懂色AV蜜臀无码精品APP| 欧美极品性爱天天射| 91日韩在线| 精品人妻一区二区乱码一区二区| 天天操妹子| 成片免费播放| 91激情综合| 成人无码在线视频网站| 色婷婷综合久久久久中文国产精品一区中文字幕,国产福利电影一区二区三区 | 性欧美| 操逼国产免费| 欧美亚洲丝袜美女电影| 日本加勒比无码专区| 韩国三级色呦呦| 精品国产肉丝袜在线拍国语| 亚洲麻豆18发?| 能在线播放的国产三级| 青青草白白色| 男人女人18禁片免费看网站| 99操| 把腿张开老子CAO烂你| 国产久久一区二区| 亚洲成人网站在线观看| 黄色高清久久无码依人| 免费在线看黄片av| 又大又黄国产| 久久性爱视频99| 99丝袜福利在线播放| 黄页av| 久久久影院| 亚洲一卡二卡在线免费| 少妇500双飞99| 91成人久久| 91欧| 精产国品一区二三产品| 精品国产www久久| 夜夜嗨老熟女AV一区二区三区| 秋霞欧美性爰视频| 人人性爱视频免费| 久久香蕉国产线看观看亚洲女人 | 麻豆区99999| 色波多| 中文字幕乱碼在线| 高清无码 国产精品| 99re视频在线播放青草| 综精品久久久aaaa| 欧美日韩日产免费网站看| 另类小说欧美激情校园春色| 在线播放中文字幕| 一级特级aaaa毛片免费观看 | 久久大线蕉一区| 干婷婷综合网| 搡老熟女免费视频| 久久九操在线观看| 欧美老熟另类| 欧美黄色大香蕉一区二区| 蜜桃av色偷偷av老熟女| 色哟哟精品1精品2| 久久神马影院| 伊人亚洲综合| 91天天| 婷婷五月天色网| 亚洲操逼无码| 熟妇xxxxx性春色| 国产精品久久久久久久久久久久久久| 激情图片伦理国产一区二区日韩| 国产精品久久aV| 欧美97免费| 九九人妻| 亚洲精品电影| 97超碰欧美中文字幕| 极品人妻少妇综合| 亚洲动态色图| 亚洲欧美洲综合| WWW美腿丝袜香蕉中文| 久久久亚洲熟妇资源| 久久久爆乳翘臀一线天伦理视频| 大二网站亚洲| 国产又黄又爽又刺激久久久久久| 收看日本人日bb| 久久欲| 这里只有精品视频在线观看麻豆| 人妻献身系列第54部| 一区操逼| 亚洲第一在线视频| 亚洲AV免费在线观看| 97公开久久| 综合亚洲欧美| 东京热视频网| 成人八戒网站| 五月天丁香| 色综合加勒比四四季| 神马午夜久久久| 天天舔天天日天天射| 丝袜视频网国产90| 亚洲国产精品无码AV久久久| 午夜福利视频在线一区| 欧插网站| 欧美se综合| 日本高清_区二区三区| 日韩AV片| 精品对白久久不卡| 久久粉色| 人人操人人摸人| 伊人影院在线理论播放| 91欧美巨乳| 韩三级a视频在线观看| 91精品国产麻豆国产自产在| 国产肏屁眼视频| 五月天亚洲色图| 超97在线精品视频| 久久综合久久综合人久久夜精品| 天海翼久久| 秋霞一级鲁丝片A片| 日本网色| 18+91网站| 91小视频| 东北女人性交| 亚洲色婷婷| 日本在线伊人啪啪| 91视频观看网站| 1769一区| 秋霞午夜视频一区二区| 国产精品一级特黄aaa大片在线观看| 天堂精品在线| 久久久新亚洲AV| 97精品国产97久久久久久免费| 啊啊啊好想要| 国产精品乱人伊人网| 韩国免费播放一级毛片| 99国产精品人妻人伦| 尻女朋友一夜| 青青草公开在线免费不卡视频| 无码直播久久久| 成人在线视频一区| 日韩一级成人毛片免费观看| 天天综合,91入口| 91黑丝露脚| 久草成人影片| www.操| 免费在线看黄片av| 吉川爱美98堂在线| 亚洲一区中文字幕一区| 97在线免费| 国产 大胆 对白| 日韩丝袜二区| 久久少妇| 国产高清在线自在拍69| 91九色丨国产丨爆乳| 亚欧高清v| 精品久久久av无码免费| 一二三区视频在线观看| 欧洲亚洲人人爽爽视频| 97色色色综合网站| 久久久A∨| 黄色免费网页无码| 日韩激情电影中文字幕| 蜜桃臀一区二区aV| 精品97久久综合| 一二三啪啪专区| 五月丁香啪啪啪| 欧美黄片视频在线观看免费| 黑人美精品 A片| 黄片免费视频2019| 成人性爱AV在线免费观看| 国产精品国产精品国产| 精品人妻一区二区三区视频在线| 日韩丝袜高跟制服在线观看| 去干网最新版| 黄片直播三级黄片两女一男| 国产白嫩漂亮KTV在线| 亚洲天堂人妻熟妇视频| 国产区91柔拿会所技师| 国产成人免费观看在线视频| 亚洲一本大道中文字幕无码在线| 秋霞免费AV| 久久精品欧美一区蜜桃| 91色五月俺来也| 东京热一区二区三区四区五区六区| 天天操狠狠日夜夜干超碰撸com视频在线观看 | 久久这里只精品免费福利| 久久亚洲AV无码白度| AV一区观看| 青青操综合网| 尤物一级在线免费观看| 国产女人操逼视频| www.色综合| 天天色综合图片| 亚洲日韩青青草色月| 东京热熟女亚洲视频网站| 色哟哟 日韩精品| 狠狠色伊人亚洲综合网站色| 色播五月丁香| 九九操久久国产免费视频| 免费?级毛片无码?∨蜜芽试看| 97免费在线视频在线观看| 免费超碰97久久| 淫骚熟女一区二区三区| 不卡二三区人妻少妇| 成人毛片免费| 欧美成人黄网色网站| 色五月婷婷久久| 天美欧美国产| 亚洲图片 欧美电影| 八戒无码国产午夜福利| 内射白嫩美女| 欧美丝袜美女电影一二三四区| 精品99999| 亚洲色诱惑| 99久在线精品99re8a| …亚洲黄色厕厕女女在线播…| 国产成人一级av88| 人人噜夜夜操| 久久在线观看免费视频| 久久久穴999| A级国产欧美激情在线| 日本高清久久| 日曰骚久久精品| 欧美性爱一级操| 97视频在线视频| 少妇高潮对白在线观看| 中文字幕久久亚州无码| 国产亚洲日韩欧| 330dv亚洲成年视频网| 亚一综合久久久久久久久久| 97 视频在线| 亚洲无线观看久久| 亚洲最大黄网| 中国操逼无码| 超碰中文字幕人妻草一区| 蜜乳视频网站| 精品人妻视频一区二区在线播放 | 26uuu国产亚洲综合| 久久嫩草国产成人一区| 国产精品人妻无码久久久老鸭窝| 日本三级人妻a人妻一在线| 人人搞人人插人人操| 神马午夜久久久| www.国产高潮精品| 青青五月天| 青女在线| 探花一区在线| 91精品免费| 综合色播| 九九九精品| 欧美色图人妻| 久九干| 精品一二三区久久AAA片| 青娱乐999| 久久99久久99精品天美传媒棢·纸:. | 草草电影院| 搡老熟女国产1000部| www.四虎在线| 超碰国产精品无码| 美女上床网站| 亚洲欧洲另类| av无线看| 欧美在线播放| 校园春色宗合网| 成人夜夜爽| 成全在线观看免费观看| 少妇久久久| 91宗合网| 天天躁日日躁狠狠狠躁| 国产精品久久久久久久久久久久久久久久 | 中文字幕无码不卡啪啪| 欧美另类色| 成人无码在线超碰网| 手机午夜电影神马久久| 思思热国产高清| 国产91精品在线免费| 麻豆国产97在线| 亚洲精品国产精品成人| 亚洲欧美天| 亚洲天堂第一页| 大香蕉伊人在线成人AV在线观看 | 色月天AV导航| 97资源超碰| 日日做夜狠狠爱欧美黑人| 国产视频三区四区| 黄色成品网站| 99青草| 青青草无码视频| 老鸭窝日丰县女人| 五月天精品| 草草电影院| 国产精品懂色tv影视免费观看| 超碰欧美97资源| 26uuu最新| 国产乱码精品一区二区三区四川| 粉嫩av在线一区二区| 999在线电影香蕉| 俞拍自拍| 91精品老女人| 免费又黄又裸乳的视频| 在线另类| 久久久久国产| 欧美人黑A片无码免视费| 日韩精品永久在线观看| 亚州操操穴网| 一摸二插三插| 欧美v亚洲v综合v国产v妖精| 久久精品国产72国产精品福利| 欧美强奸一区二区诱惑| 97国产天堂岛| 亚洲在线网站| 亚洲精品三| 超碰1997| 上海一级黄片| 蜜臀99999| 思思热国产高清| 国产欧美亚洲精品a第2页| 91人妻丝袜无码| 超碰久久.com| 黑人无码一区二区| 天天天操天天天爱| 男人高清无码一区二区| 欧美制服网站美腿丝袜| 色97干| 日本午夜久久电影| 91亚洲欧美综合高清在线| a片偷拍视频| 91欧美偷拍| 大香蕉黄色一级片免费看| 天美传媒Av在线| 免费av在线播放二区| 国产大片精久久久久久| 久久久久亚洲Av无码专区老牛影视| 婷婷啪啪| 84YTCOM性无码| 99re在线精品78| 亚卅熟女乱色| 搡老女人老91二区| 色 亚洲 91| 99re视频在线观看这里只有精品| 欧美 综合 亚洲| · —级AA伦aa坐爱午夜极速ⅴA一区天天噪天天噪天天噪 | 操逼无码操逼| 色踪合AV| 防屏蔽在线视频| 加勒比综合88| 伦在线97| 99性爱| 国产9l 大屁股| 天天摸天天插天天日| 欧美精品一区二区少妇免费A片| 国产中午字一暮区| 色色色色电影网| 国产h小视频在线观看免费| 磁力99AV| 国产乱弄免费在线视频。| 青青草中文-久久青草精品一区二区三| 蜜臀AV秘一区翔田千里| 欧美三级偷拍| 中文字幕女同在线| 亚洲熟久久| 青青草久草AV| 99999精品成人| 国产精品自在线发布| 国产强奸乱伦无码视频| 久久女人| 大香蕉综合在线| 色五月激情AV在线| 少妇精品久久久| 青青草在线视频人人想人人上| 女人高潮大叫一级毛片| 亚欧成人中文字幕一区| 欧美日本一区二区a人| 玖玖久久久| 日夜精品| 精品一级毛片在线观看| 国产白丝网站| 三久久久四久久久久| 欧美丝袜91| 亚洲色婷婷久久91| 亚欧性爱无码| 都市久久精品激情亚洲| 韩美日操逼| 久草网站免费在线观看| 亚洲欧美激情在线视频| 欧日韩不卡视.频| 久久婷婷亚洲欧| 91操熟女视频 | 在线有码中文字幕| 91狼人| 78综合网| 欧洲亚洲综合| 精品一级毛片在线观看| 国产强上视频在线观看| 国产乱码久久| 99热18这里只有精品| 天久久久噜噜噜久久国产精品爽爽| 国产精品盗摄 偷窥盗摄| 超碰99在线| 东北女人操比视频| 91人人操| 影音先锋乱| 亚洲综合在线高清| 欧美色九九| 国产中文精品一区二区在线观看| 日韩人妻资源在线看| 加勒比东京热五月天天堂网| 在线不欧美| 91一起操| 久操影视| 91精品微拍福利| 久久日韩毛| 88在线一区二区三区| 黄色电影观看久久9| 国产视频一区二区在线观看| 日韩97超碰| 国产精品一级毛片不卡视| 久久只有精品一区二区三区| 91中文字幕制服丝袜免费视频| 看黄片视频免费| 日日骚 av| 日本一级真人黄色性爱视频| 色99色| 亚洲在线A| 国产高清在线观看欧美| 插老姨肥穴| 成人毛片免费| 性感女人网页在线观看视频| 色综合天天爱去电影网| 亚欧国产无码精品在线| 熟女网站最新| 免费黄色片。| 亚洲欧美日产国产91毛片| 天天看天天日| 一本一道人妻久久一区二区三区 | 岛国片国产成人亚洲播放| 久久99999| 国产精品亚洲无码| 97精品国产手机| 十八禁av无码免费网站APP| 性性欧美| 伊人激情五月天一区二区 | 激情干在线| …中文字幕亚洲乱,97人妻无码费视… | 黄在线| 搡老熟女国产1000部| 网页导航五月天免费一二三区| 无码人妻精品一区二区三区九九| 手机在线免费看的av| 上床不卡网站| 日韩性爱毛片操骚逼| 裸体美女久久久| 亚洲中文国际强奸字幕| 欧美日韩亚洲国产中文永久天天看 | 欧美后进式| 免费一二区| 后入人妻一区| 免费啪啪av| 蜜桃臀一区二区aV| 色官网在线| 九久9精品| 久热色情精品| 成人日韩3| 自拍亚洲综合| 国产97色在线| 亚洲男人天堂AV| 亚洲激情 欧美色图| 久久久亚洲Av| 久欲AV| 日本在线一二 | 操b网站亚洲无码| 蜜桃视频成a人v在线| 国产九九九九九九| 99久久婷婷国产综合精品草原| 亚洲欧美首页| 天天看特黄的免费网站| 日本Xx性爱| 久久丝袜| 超碰这里只有精品| 日韩性爱播放| 国产精品久久久吖| 97超碰超欧美。| 99久热| 91性高朝久久久久久久久| 长久操视频| 人妻天天夜夜爽一区二区| 日韩性爱视频在线免费观看 | 久操操| se吧提供国产乱老熟视频胖女人| 青操影院| 成年女人一区| 色噜噜精品一区二区三| 美女久久久久久久久久久| 大香蕉伊在线久草麻豆天堂故事| 欧美日韩精品一区二区三区高清| 大粗鳼巴久久久久| 男人把坤坤插入女人的下体| 婷婷亚洲综合| 日本操色导航| 99久久99久久免费精品蜜臀| 九九九九97| 人妻久热在线| 久久露脸国产老熟女| 亚洲激情在线观看一区| 无套后入双马尾| 久操在97| 国产精品乱人伊人网| 亚洲图片偷拍视频区| 免费人成毛片乱码| 亚州色图欧美色图| oumeizonghese,www| 日韩在线视频1234| 亚洲无码一区二区三区三州| 51国产午夜精品视频| 麻豆成人AV| av草草在线电影| 欧美情色贴图| 97干在线看| 欧美体内射精| 色亚洲欧美| 岛国片国产成人亚洲播放| 亚洲综合另类欧美久久久| 日韩成人电影AV| 综合欧美亚洲| 亚洲精品蜜桃久久久一区二区三区| 日日操夜夜操天天操免费观看麻豆| 呦女网站| 婷婷五月色| 神马九九| 国产性爱欧美性爱在线| 一级啊性爱在线视频| 亚91网| 亚洲乱色视频一区、二区在线| 精品精品精品| 亚洲国产一区二区日韩专区| 熟妇激情| 天天看少妇| 亚洲欧美国产成人综合不卡| 4tube欧美女厕所| 麻豆a'v电影| 麻豆人妻精品一区二区| 操逼视频国产无套| 久久久久96| 欧美第38页| 久热免费视频| 18禁网站在线播放| 99婷婷一区二区| 成人AV在线网站| 好屌色综合| 嗯阿好爽好紧| 麻豆人妻精品一区二区| 日韩免费大片一级播放| 白丝AV| 人妻精品一区二区三区| 久久一区二区加油站| 久久综合中文国产| 九九热男人天堂| 婷婷久久综合| 六月天婷婷| 精品久久99| 色五月亚洲|