精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

夜夜春成人影院| 国模冰冰炮一区二区| 国产成人午夜视频| 5278欧美一区二区三区| 国产在线免费av| 欧美a级大片在线| 色综合中文字幕| gogogo免费高清日本写真| 日本免费一区视频| 青青草原综合久久大伊人精品优势| 日韩三级影视基地| 亚洲中文字幕无码av| 日本免费成人| 欧美视频一二三| 强开小嫩苞一区二区三区网站 | 亚洲成人1234| 污污的网站免费| 91精品论坛| 亚洲午夜激情网页| 偷拍盗摄高潮叫床对白清晰| 无码h黄肉3d动漫在线观看| 精品一区二区三区不卡| **欧美日韩vr在线| 欧洲第一无人区观看| 国内亚洲精品| 亚洲精品美女在线观看播放| 欧美高清精品一区二区| 影音成人av| 色先锋资源久久综合| 69sex久久精品国产麻豆| 黄色网页在线播放| 久久久精品人体av艺术| 好吊色欧美一区二区三区| 国产视频手机在线观看| 美国三级日本三级久久99| 青青久久aⅴ北条麻妃| 国产稀缺真实呦乱在线| 欧美jjzz| 美女精品视频一区| 国产喷水在线观看| 日韩精品免费一区二区在线观看| 精品视频在线播放色网色视频| 人妻av一区二区三区| 日韩精品中文字幕吗一区二区| 欧美影院一区二区| 国产精品人人妻人人爽人人牛| 91超碰在线| 午夜影视日本亚洲欧洲精品| 国产精品入口芒果| 狠狠操一区二区三区| 午夜欧美在线一二页| 欧美中日韩在线| 欧美aaaaaaa| 亚洲图片欧美综合| 成人中文字幕在线播放| 亚洲第一av| 色婷婷激情综合| 宅男噜噜噜66国产免费观看| 国产成人精品一区二三区在线观看 | 一区二区三区欧美成人| 在线观看黄av| 亚洲人精品午夜| 97在线免费视频观看| 欧美寡妇性猛交xxx免费| 亚洲一区二区在线免费观看视频 | 久久亚洲色图| 国产精品久久久久久久久| 一级久久久久久| 麻豆91在线播放免费| 成人午夜高潮视频| www.黄色片| 99视频一区二区| 日韩亚洲视频| 超碰在线caoporn| 午夜视频在线观看一区| 国产免费黄视频| 国产一区二区三区影视| 欧美一区二区三区白人| 精品影片一区二区入口| 国产传媒欧美日韩成人精品大片| 色七七影院综合| 久久久久久免费观看| 国产亚洲成人一区| 国产日韩精品视频| 好男人www在线视频| 久久久国产精品麻豆| 不卡中文字幕在线| 福利在线免费视频| 欧美日韩国产首页在线观看| 国产xxx在线观看| 精品国产99| 色综合久久88| 最近中文在线观看| 成人午夜在线播放| 亚洲欧洲一区二区| 成入视频在线观看| 欧美日韩的一区二区| 亚洲少妇18p| 99精品网站| 5566日本婷婷色中文字幕97| 91在线观看喷潮| 91色porny蝌蚪| 樱空桃在线播放| 日本成人三级电影| 精品久久一区二区三区| 国产视频三区四区| 国产亚洲福利| 成人动漫在线观看视频| 国产在线超碰| 精品成人av一区| 国产人妻精品久久久久野外| 精品国产乱码久久久久久果冻传媒| 大量国产精品视频| 综合久久中文字幕| 久久久久久久电影| 成年人网站国产| 95精品视频| 国产一区二区三区在线| 日韩黄色精品视频| 国产乱码精品一区二区三区忘忧草| 欧美一级日本a级v片| 欧美xxxx免费虐| 9191久久久久久久久久久| 成人性生交大免费看| 91久久中文| 丁香五月网久久综合| 日本暖暖在线视频| 欧美中文字幕一区二区三区| 亚洲の无码国产の无码步美| 欧美91精品| 91在线观看免费观看 | 91精品国产乱码久久久久| 久久蜜桃av一区精品变态类天堂| 和岳每晚弄的高潮嗷嗷叫视频| 韩国三级大全久久网站| 久久精品国产96久久久香蕉| 97人妻一区二区精品视频| 91在线国产福利| 热99这里只有精品| 久久aimee| 91精品国产99| 神马精品久久| 精品成人久久av| 亚洲精品视频大全| 久久成人国产| 日韩国产精品一区二区| 国模视频一区| 正在播放欧美视频| 国产精品久久久久久在线| 国产精品久久三区| 免费成人黄色大片| 欧美成人日本| 国产一区视频观看| 中文字幕在线免费观看视频| 亚洲美女免费精品视频在线观看| 色av性av丰满av| 日本一区二区视频在线| 手机在线看福利| 亚洲精品一区二区在线看| 亚洲www视频| 青草在线视频| 日韩久久免费视频| 青娱乐在线免费视频| 中文字幕av不卡| www.51色.com| 影音先锋久久| 欧美一区亚洲二区| 日韩一级视频| 欧美激情中文网| 青青久在线视频免费观看| 欧美三级在线视频| 欧美成人三级在线观看| 91在线国产观看| 成年网站免费在线观看| 激情另类综合| 日韩wuma| 亚洲国产aⅴ精品一区二区| 97成人超碰免| 在线观看二区| 精品区一区二区| 四虎影院在线免费播放| 亚洲色图视频免费播放| 亚洲欧美日韩偷拍| 日韩和欧美的一区| 国产午夜精品视频一区二区三区| 看全色黄大色大片免费久久久| 国产成人精品国内自产拍免费看| 老司机在线看片网av| 亚洲国产一区自拍| 一级做a爱片性色毛片| 亚洲午夜久久久久中文字幕久| 手机看片福利视频| 国产成人综合网| 看欧美ab黄色大片视频免费| 伊人成综合网| 日韩欧美一区二区视频在线播放| 精品国产麻豆| 国产精品电影网| а_天堂中文在线| 日韩中文字幕欧美| 亚洲日本在线播放| 欧美一区二区免费视频| 天天干天天操天天操| 一区二区三区在线视频观看58 | 国产精品91视频| 伊人精品影院| 色老头一区二区三区| 日韩福利视频网| 欧美视频中文字幕| 国产成人精品av久久| 欧美韩国一区二区| 黄色av网址在线观看| 久久精品国产77777蜜臀| 欧美 日韩 国产 高清| 久久精品青草| 五月天丁香综合久久国产| 国产精品极品| 亚洲直播在线一区| 成人国产精品入口免费视频| 国内精品久久久久影院优| 快射视频在线观看| 在线成人中文字幕| 天堂av在线7| 亚洲大胆人体在线| 999免费视频| 欧美日本在线看| 午夜久久久久久久久久影院| 五月天亚洲精品| 一区二区三区免费高清视频| 1024亚洲合集| 成人信息集中地| 国产精品午夜在线观看| 69精品无码成人久久久久久| 久久女同精品一区二区| av直播在线观看| 97久久精品人人爽人人爽蜜臀| 妖精视频在线观看| 国产大片一区二区| 亚洲区 欧美区| 国产电影精品久久禁18| 18禁一区二区三区| 国产成人午夜视频| www男人天堂| 成+人+亚洲+综合天堂| 波多野结衣加勒比| av在线免费不卡| 中文字幕影片免费在线观看| av在线不卡免费看| 中文字幕av网址| 国产日韩欧美电影| 欧美激情 一区| 日韩一区中文字幕| 日韩成人毛片视频| 亚洲综合男人的天堂| 中文字幕av免费在线观看| 亚洲免费在线视频一区 二区| 粉嫩av性色av蜜臀av网站| 亚洲综合色自拍一区| 国产精品美女毛片真酒店| 都市激情亚洲色图| 波多野结衣视频免费观看| 欧美日韩在线一区二区| 国产精品毛片一区二区在线看舒淇| 91精品啪在线观看国产60岁| www.天堂av.com| 亚洲精品电影网站| 国产精品久久久久一区二区国产| 中文字幕av一区二区| 麻豆影院在线观看| 久久久伊人欧美| 欧美男体视频| 91久久精品在线| 久久91在线| 亚洲一区二区三区涩| 午夜欧美精品| 人妻内射一区二区在线视频| 老司机精品视频导航| 国产精品嫩草69影院| 91网站在线播放| 国产91在线播放九色| 亚洲一区二区三区自拍| www.久久久久久久| 日韩手机在线导航| 日韩精品系列| 久久伊人精品天天| 深夜福利视频一区二区| 国产精品一区二区久久久久| 亚洲精品一二三**| 久久久久久国产精品免费免费| 欧美先锋资源| aa视频在线播放| 精品一区二区免费视频| 香港三日本8a三级少妇三级99| 欧美韩国日本综合| www..com国产| 91精品国产高清一区二区三区| 五月色婷婷综合| 久久成人免费视频| 性欧美1819sex性高清| 97人人模人人爽人人喊38tv| 国产精品亚洲片在线播放| 日韩在线观看a| 极品少妇一区二区三区精品视频| 一级特黄a大片免费| 亚洲男人的天堂在线观看| 欧美另类高清videos的特点| 亚洲第一区第二区| 含羞草www国产在线视频| 日韩av电影免费观看高清| 视频国产精品| 亚洲一区二区精品在线| 欧美一级久久| 国产精品一区二区人妻喷水| 综合在线观看色| 一区二区三区www污污污网站| 日韩久久免费电影| 爱草tv视频在线观看992| 亚洲综合中文字幕在线观看| 欧美日韩在线二区| 女人扒开屁股爽桶30分钟| 国产激情一区二区三区桃花岛亚洲| 青青草自拍偷拍| 色婷婷综合久久久久中文一区二区| 色呦呦免费观看| 久久免费成人精品视频| 精品国产乱码一区二区三区| av动漫免费观看| 喷水一区二区三区| 欧美大波大乳巨大乳| 欧美性videos高清精品| 无码精品一区二区三区在线| 国模视频一区二区三区| 亚洲精品观看| 男人天堂a在线| 国产精品18久久久| 国产又黄又爽又无遮挡| 欧美一级精品大片| 超碰个人在线| 91黄在线观看| 国产专区一区| 国产精品入口麻豆| 亚洲mv大片欧洲mv大片精品| 亚洲产国偷v产偷v自拍涩爱| 欧美乱大交xxxxx| 91精品国产乱码久久久竹菊| 乱熟女高潮一区二区在线| 国产大陆a不卡| 日本视频www| 亚洲精品国产精品自产a区红杏吧| 国产乱妇乱子在线播视频播放网站| http;//www.99re视频| 欧美午夜久久| a天堂视频在线观看| 岛国av一区二区| 国产69久久| 国产在线精品播放| 综合在线视频| 国产人妖在线观看| 狠狠躁夜夜躁久久躁别揉| 奇米影视888狠狠狠777不卡| 国产精品久久久久久久久免费看| 热久久天天拍国产| 成人免费黄色av| 亚洲韩国一区二区三区| 日本亚洲一区| 成人黄色片网站| 黄色免费成人| 波多野结衣 在线| 欧美三级乱人伦电影| 羞羞污视频在线观看| 久久riav| 精品一区二区三区在线观看国产| 国产精品久久久久久久精| 日韩高清免费在线| 国产人妖一区| 国产91沈先生在线播放| 久久久久久电影| 91中文字幕在线播放| 午夜免费在线观看精品视频| 精品久久视频| 日本55丰满熟妇厨房伦| 日韩欧美亚洲综合| 国产成人午夜| 欧美成人dvd在线视频| 精品一区二区在线看| 久久精品国产亚洲AV无码男同| 亚洲人免费视频| 欧美大片91| 日韩在线第三页| 一区二区三区在线视频观看58| 你懂的视频在线免费| 亚洲japanese制服美女| 六月婷婷一区| 免费一级片视频| 伊人成人开心激情综合网| 99精品国产一区二区三区2021| 亚洲国产精品毛片av不卡在线| 一区二区三区高清| av午夜在线| 久久久久久国产精品免费免费|