簡體   English   中英

寫多個protobuf消息:1個帶有1個重復屬性的消息或寫入不同的消息?

[英]write multiple protobuf messages : 1 message with 1 repeated attribute or write different messages?

我需要在文件中寫多個protobuf消息。

在C ++中看到了關於writeDelimitedFrom和parseDelimitedFrom的帖子,並想知道是否更好地使用它(或類似的東西,另一種分隔方式)或制作一個“超級消息”,只包含我需要多次寫入的重復消息屬性。

syntax = "proto2";
package test;

message myMessage {
  required int32 TimeStamp = 1;
}
message Container {
  repeated myMessage messages = 1;
}

在具有讀/寫DelimitedFrom的文件中寫入多個myMessage或者使用重復messages寫入一個Container會更有趣嗎?

我認為使用讀/寫D​​elimitedFrom更加優化(因為我只能附加最后一條消息)但使用重復屬性更容易,但對於SerializeToOstream我認為我必須傳遞整個Container
我不認為只能序列化一部分消息將其附加到輸出文件,因為我從未見過它,但我可能是錯的

像你一樣傷心兩種選擇都是可能的。

在少量myMessages的情況下,Container是簡單的解決方案。 這是因為您不必編寫在回讀文件時選擇單個消息的代碼。

是的,你必須通過整個容器。 這就是myMessages的數量發揮作用的地方。 如果這是一個很大的數字,你可能最好一次將一個myMessage序列化。 將其附加到文件並可能將其刷新到磁盤。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM