精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

一個 bug 竟然是 Protobuf 的 feature

開發 前端
既然知道 protobuf 會這么操作,那我們就只要知道 protobuf 怎么分割就行了。這個方法還真不好找,因為像我們這樣使用的人太少了。中文搜索完全搜不到這一塊的內容,可能大家都不會使用protobuf來存儲數據吧,大家使用的方式應該都是多個服務中進行交互的場景吧。

大家好,我是了不起。

最近我們在項目中,通過使用 protobuf 格式作為存儲數據的一個載體。一個不小心就給自己埋了個大坑,還是過了好久才發現。

protobuf 簡介

protobuf 全名叫 Protocal buffers. 它是由 Google 研發的,一種可跨語言、可跨平臺、可擴展的序列化數據的機制。類似于 XML ,但是它更小、更快、更簡單。你只需要定義一次你希望的數據如何被結構化,然后你可以使用它的生成工具,生成包含一些序列化和反序列化等操作的源代碼。可以輕松地從各種數據流和使用各種編程語言寫入和讀取結構化的數據。

proto2版本支持在Java、Python、Objective-C和C++中生成代碼。使用新的proto3語言版本,你還可以使用Kotlin、Dart、Go、Ruby、PHP和C#,還有更多的語言。

怎么發現的?

在我們的新項目中,我們通過使用 protobuf 格式來存儲項目運行的數據。這樣我們在調試過程中,可能根據現場錄制的數據進行本地的調試。

message ImageData {
// ms
int64 timestamp = 1;
int32 id = 2;
Data mat = 3;
}

message PointCloud {
// ms
int64 timestamp = 1;
int32 id = 2;
PointData pointcloud = 3;
}

message State {
// ms
int64 timestamp = 1;
string direction = 2;
}

message Sensor {
repeated PointCloud point_data = 1;
repeated ImageData image_data = 2;
repeated State vehicle_data = 3;
}

我們定義了這樣一組數據, 然后存儲的時候,因為Sensor 這3個數據源的幀率不一樣,因此存儲的時候,單個 Sensor 中其實只包含了一組數據,另外兩個類型的數據并沒有包含進去。

當我們只錄制單個 pack 的時候,我們并沒有遇到問題。直到我們覺得單個包,不能長時間錄制,我們需要找一種解決方法來分割包 。

當時覺得這個一定是很簡單的,我們就設定了一個包達到 500M 的時候,我們就讓后面的數據存到新的包中。很順利的寫完,然后放到現場進行數據錄制。錄制一段時間之后,我們把包拿回來進行模擬測試我們的新程序。發現有些包的數據解析出來是有問題的。程序運行到一半會卡在那里不動。經過多次測試,發現是部分包有這個問題。

我們一開始懷疑的是,判斷文件大小的方式不對,影響到了分包。因為判斷文件大小的時候,會去打開文件。但是經過好幾種其他的不打開文件的方式判斷,從而進行分割。還是遇到了部分錄制的包有問題。

這時我才懷疑到 protobuf 對存儲數據會有一些特殊的要求。后來看了一些文章,了解到 protobuf 存儲多組數據到一個文件需要有標志符。要不然后面從文件解析回來的時候,protobuf 因為不知道單個數據的停止符在哪里,導致數據解析出錯。

到這里,這個坑出現了。我們存儲了一系列的數據到單個包中,沒有做任何分隔符的操作。protobuf在解析的時候,把文件中所有的內容都解析成了單個Sensor。Sensor 中包含里所有數據, protobuf 主動合并了所有存儲的數據。

在這時,我才發現以前單包錄制的時候,數據都是對的,那真的是我運氣好。protobuf恰好解析成功了。

怎么解決呢?

既然知道 protobuf 會這么操作,那我們就只要知道 protobuf 怎么分割就行了。這個方法還真不好找,因為像我們這樣使用的人太少了。中文搜索完全搜不到這一塊的內容,可能大家都不會使用protobuf來存儲數據吧,大家使用的方式應該都是多個服務中進行交互的場景吧。

最終通過stackoverflow上的一些回答找到了答案,從回答中得知,這個解決辦法在 protobuf 3.3 的時候,才正式被合并進去。看起來這個功能真的很少用啊。

bool SerializeDelimitedToOstream(const MessageLite& message,
std::ostream* output);
bool ParseDelimitedFromZeroCopyStream(
MessageLite* message, io::ZeroCopyInputStream* input, bool* clean_eof);

通過這一對方法,可以對文件進行按照數據流一個一個的存儲讀取。再也不用擔心數據被合并讀取。

當然通過這種方式存儲的數據,不能被原來的解析方式所解析,存儲的而進行格式完全變了。這種方式會先存儲二進制數據的大小,再存儲二進制數據。

結束語

經過一番折騰,終于搞定了這個分割的坑。使用場景可能比較小眾,導致了很多資料根本找不到。靠自己看源碼才發現這些問題。C++ 的源碼真不好讀,有很多的模板方法、模板類容易錯過一些細節。最后還是看的C#的代碼,才完全確認的。

責任編輯:武曉燕 來源: Java技術指北
相關推薦

2016-10-25 10:00:20

科技新聞早報

2020-06-17 10:52:30

運維故障技術

2020-09-29 06:45:49

JDK

2020-11-12 09:15:16

GitHubPython開發

2015-06-18 11:04:58

2020-12-15 08:05:40

路由器服務器網絡層

2021-07-28 06:51:08

Nacos代理模式

2024-08-05 01:28:26

2024-09-27 11:38:49

2021-03-04 19:29:28

程序員Unix系統

2021-10-18 13:42:52

加密貨幣金融工具

2021-07-21 08:37:55

AI 裁判人工智能

2018-07-06 00:09:47

2019-03-06 12:26:42

密碼安全數據

2020-10-20 17:18:00

戴爾

2021-08-28 10:15:26

項目結構Flask

2022-07-07 19:44:22

Python 3.1

2020-09-17 11:02:58

Go 開源技術

2020-08-19 09:23:10

傳輸網絡WDM網絡技術
點贊
收藏

51CTO技術棧公眾號

午夜不卡一区| 天堂资源在线中文| 一区二区三区福利| 亚洲欧美www| 婷婷激情四射五月天| 免费av毛片在线看| 成人av动漫在线| 国产成人啪精品视频免费网| 亚洲人做受高潮| 国产一区二区在线视频你懂的| 色拍拍在线精品视频8848| 亚洲图片都市激情| 人人妻人人澡人人爽精品日本| 天堂资源在线中文精品| 九色91av视频| 91视频免费看片| 欧美国产不卡| 正在播放亚洲一区| 国产裸体舞一区二区三区| www在线免费观看视频| 久久午夜老司机| 99九九视频| 亚洲高清视频免费观看| 精品福利电影| 久久成人精品电影| avhd101老司机| 色婷婷狠狠五月综合天色拍| 欧美一区二区免费| 亚洲国产日韩欧美在线观看| rebdb初裸写真在线观看| 亚洲天堂a在线| 日韩一区二区电影在线观看| 四虎精品在线| caoporen国产精品视频| av成人观看| 99国产精品99| 老司机精品视频一区二区三区| 欧美亚洲激情在线| 男人的天堂一区| 黑人一区二区三区四区五区| 久久视频在线观看免费| 肉色超薄丝袜脚交69xx图片| 欧美在线色图| 亚洲网站视频福利| 四虎影成人精品a片| 久久亚洲黄色| 亚洲福利在线视频| 国产一卡二卡三卡四卡| 这里视频有精品| 日韩免费电影一区| 国偷自产av一区二区三区麻豆| 四虎国产精品免费久久5151| 欧美系列日韩一区| 美女黄色片视频| 韩日一区二区| 欧美午夜理伦三级在线观看| 日韩欧美黄色大片| 666av成人影院在线观看| 色婷婷av久久久久久久| 亚洲熟妇av一区二区三区| 亚洲人成午夜免电影费观看| 日韩欧美国产中文字幕| 成人一级片网站| 欧洲一级精品| 欧美精品久久天天躁| 亚洲午夜激情影院| 精品麻豆剧传媒av国产九九九| 欧美一区二区三区四区视频| 日本中文字幕精品| 蜜桃av噜噜一区二区三区麻豆| 激情图片小说一区| 91嫩草视频在线观看| 亚洲精品国产suv一区| 成人激情文学综合网| 国产日韩欧美一区二区三区四区| 五月婷婷伊人网| 久久久久国产精品麻豆 | 欧美一区一区| 精品国产百合女同互慰| 人妻无码一区二区三区| 精品免费在线| 欧美大成色www永久网站婷| 不卡的免费av| 久久久噜噜噜| 成人美女av在线直播| 亚洲欧美激情另类| 久久看人人爽人人| 中文字幕一区综合| av影视在线| 欧美色图在线观看| xxxxwww一片| 国产尤物久久久| 日韩亚洲精品电影| 免费看一级大片| 一本色道88久久加勒比精品| 国产精品久久99久久| 国产成人av免费看| 国产亚洲婷婷免费| 国产欧美久久久久| 91p九色成人| 精品久久久久99| 又色又爽又高潮免费视频国产| 日本黄色一区| 精品国产一区二区三区不卡 | 久久久久久久久97黄色工厂| 亚洲欧洲在线一区| 老司机深夜福利在线观看| **欧美大码日韩| 国产一级爱c视频| 青青在线精品| 亚洲美女激情视频| 久草视频中文在线| 久久国产精品色婷婷| 国产综合动作在线观看| 里番在线观看网站| 亚洲观看高清完整版在线观看| 亚洲天堂网一区| 欧美绝顶高潮抽搐喷水合集| 久久久www成人免费精品张筱雨| 日本中文字幕在线免费观看| 国产一区二区女| 色噜噜狠狠色综合网| 川上优av中文字幕一区二区| 7777精品久久久大香线蕉| 中文字幕在线观看免费高清 | 欧美另类精品xxxx孕妇| 波多野结衣一区二区三区在线| 福利电影一区二区| 亚洲一区尤物| 欧美free嫩15| 亚洲免费av电影| 日本一区二区不卡在线| 国产精品一区二区三区网站| 亚洲日本理论电影| 最新日韩三级| 亚洲精品自拍偷拍| 日本三级理论片| 成人动漫精品一区二区| 国风产精品一区二区| 日韩国产一二三区| 色av中文字幕一区| 中文区中文字幕免费看| 国产亚洲婷婷免费| 一级黄色香蕉视频| 精品美女视频| 国产精品日韩专区| 92国产在线视频| 欧美私人免费视频| 四季av中文字幕| 久久超碰97人人做人人爱| 色综合影院在线观看| 新版的欧美在线视频| 日韩大陆欧美高清视频区| 青青草av在线播放| 26uuu色噜噜精品一区二区| 国产免费毛卡片| 免费看成人吃奶视频在线| 国产精品成人品| 最新电影电视剧在线观看免费观看| 欧美伊人久久久久久午夜久久久久| 免费一级做a爰片久久毛片潮| 久热精品视频| 亚洲高清视频一区| 国产精品毛片aⅴ一区二区三区| 日韩中文字幕视频在线观看| 国产精品久久久久久久免费| 亚洲欧美另类小说视频| 亚洲一二三av| 亚洲福利电影| 欧美美乳视频网站在线观看| 日韩经典一区| 超碰精品一区二区三区乱码| 亚洲第一天堂影院| 日韩欧美国产黄色| 午夜国产福利视频| 懂色av中文字幕一区二区三区| 国产精品自拍片| 成人免费在线观看视频| 日韩在线播放av| 国产高清视频免费观看| 亚瑟在线精品视频| 中国女人特级毛片| 国产成人在线观看免费网站| 精品久久久久久久久久中文字幕| 国产精品嫩模av在线| 成人国产精品色哟哟| sm在线观看| 北条麻妃99精品青青久久| 亚洲国产精品国自产拍久久| 狠狠爱在线视频一区| 蜜桃av免费观看| 成人91在线观看| 一级黄色录像在线观看| 韩国久久久久| 亚洲乱码一区二区三区| 国产极品模特精品一二| 国产精品第1页| 性欧美ⅴideo另类hd| 亚洲人成在线免费观看| 99视频在线观看免费| 色综合一区二区三区| 欧美三根一起进三p| 国产拍欧美日韩视频二区| 日本精品一二三| 免费成人av在线| 国产日韩一区二区在线| 亚洲国产精品成人| 日本午夜精品一区二区| 99精品中文字幕在线不卡 | 中文在线免费观看| 亚洲一二三四区不卡| 欧美精品 - 色网| 久久高清免费观看| 日本香蕉视频在线观看| 久久影院100000精品| 久久99精品久久久久子伦| 久久丁香四色| 国产精品一区二区三| 忘忧草在线影院两性视频| 色综合视频网站| 日本在线看片免费人成视1000| 日韩美女av在线| 黄色av小说在线观看| 在线成人av影院| 中国一区二区视频| 一本一道波多野结衣一区二区| 九九视频免费看| 亚洲色图欧洲色图| www.4hu95.com四虎| 久久综合狠狠综合久久综合88| 一二三区视频在线观看| 国产精品自拍毛片| 波多野结衣国产精品| 青青草成人在线观看| 欧美性久久久久| 国产精品免费看| www..com日韩| 日韩天堂av| 久久综合九色综合88i| 在线成人h网| 69sex久久精品国产麻豆| 国产精品大片| 日韩精品久久一区二区| 欧美精品午夜| 青草网在线观看| 国产精品hd| 国产无限制自拍| 狠色狠色综合久久| 国产免费黄色一级片| 亚洲国产精品一区制服丝袜| 岛国大片在线播放| 99riav国产精品| 国产l精品国产亚洲区久久| 亚洲视频大全| 日韩在线xxx| 日本va欧美va欧美va精品| 一区二区xxx| 久久er精品视频| 国产又粗又猛大又黄又爽| 国产一区二区三区综合| 天天色天天干天天色| 国产盗摄女厕一区二区三区| 天堂va欧美va亚洲va老司机| 成人av免费在线观看| 特大黑人巨人吊xxxx| 国产亚洲午夜高清国产拍精品| 五月天婷婷丁香网| 亚洲欧美激情小说另类| 国产在线成人精品午夜| 狠狠色噜噜狠狠狠狠97| 国产情侣免费视频| 欧美一区二区三区啪啪| 特黄视频在线观看| 伊人久久久久久久久久久久久| 日本高清中文字幕在线| 精品自拍视频在线观看| 手机在线观看av| 国产精品色视频| 在线视频亚洲欧美中文| 欧美激情视频一区二区三区| 色小子综合网| 久久综合久久网| 日本特黄久久久高潮| 亚洲一区二区三区四区精品| 不卡一区二区中文字幕| 在线免费观看视频| 亚洲综合男人的天堂| 久久99国产综合精品免费| 欧美日韩国产免费一区二区| 国模私拍视频在线| 一区二区三区四区在线观看视频| 超碰人人在线| 日韩av手机在线| 精品国产亚洲一区二区三区| 久久综合一区| 亚洲五月综合| 久久精品网站视频| 国产成人av福利| 四虎国产成人精品免费一女五男| 亚洲制服欧美中文字幕中文字幕| 国产午夜无码视频在线观看| 欧美刺激午夜性久久久久久久| 久久久久久青草| 色综合久久悠悠| 欧美天堂在线| 久久精品日产第一区二区三区| 亚洲精品一二三区区别| 国产成人手机视频| 99国产麻豆精品| 久久午夜无码鲁丝片午夜精品| 在线观看免费视频综合| 黄色成人一级片| 久久精品中文字幕电影| 欧美电影网址| 黑人另类av| 欧美午夜免费影院| 日韩在线一区视频| 久久精品一区二区三区不卡| 日韩 欧美 亚洲| 日韩三级电影网址| 免费高清在线观看| 国产精品成人一区二区| 欧美人体视频| 欧美一级免费播放| 国产精品性做久久久久久| 三级黄色片在线观看| 在线观看免费一区| 国产免费av高清在线| 亲子乱一区二区三区电影| 精品国产导航| 东北少妇不带套对白| 国产精品一卡二卡| 麻豆精品一区二区三区视频| 欧美夫妻性生活| 免费在线毛片网站| 国产玖玖精品视频| 四虎成人av| 亚洲欧美日韩精品一区| 欧美激情综合五月色丁香小说| 91视频久久久| 一区二区三区久久精品| 成人不卡视频| 一区国产精品| 激情久久五月天| 顶级黑人搡bbw搡bbbb搡| 欧美日韩成人高清| 黄a在线观看| 成人综合国产精品| 亚洲五月综合| 99久久久无码国产精品性波多| 亚洲一区国产视频| 国模无码一区二区三区| 亚洲**2019国产| 亚洲瘦老头同性70tv| 日韩手机在线观看视频| 日本一区二区三级电影在线观看| 伊人网综合在线| 久久久精品999| 成人影院中文字幕| 免费在线a视频| 国产无遮挡一区二区三区毛片日本| 欧美三级网站在线观看| 日韩在线播放一区| 99re8这里有精品热视频免费 | 日韩在线一二三区| 长河落日免费高清观看| 欧美一激情一区二区三区| 黄页在线观看免费| 久久国产主播精品| 日本欧美加勒比视频| 懂色av懂色av粉嫩av| 精品国产伦一区二区三区观看体验 | 99久久精品国产导航| 无码人妻一区二区三区免费| 综合网日日天干夜夜久久| 国产一区二区三区黄网站| 成 年 人 黄 色 大 片大 全| 欧美国产日韩亚洲一区| 国产欧美日韩综合精品一区二区三区| 欧美高清在线视频观看不卡| 免费欧美视频| 日本55丰满熟妇厨房伦| 精品国产乱码久久久久久虫虫漫画 | 久久久久久少妇| 最近2019中文字幕mv免费看 | 国产成人免费观看视频 | 草草视频在线| 日韩一区不卡| 成人精品一区二区三区中文字幕 | 欧美一区二区女人| 中文在线免费二区三区| 黄色一级片网址| 91美女在线观看| 99久久精品国产一区色| 欧美一级片在线播放| 亚洲a在线视频| 中文幕无线码中文字蜜桃| 欧美成人综合网站| 91在线亚洲| 国产精品久久久久9999爆乳|