我想檢查proto buffer是否是我使用的最好的序列化程序,我的研究發現沒有其他的東西接近。 我正在研究java後端和android(java)移動應用程序,但是有可能在不太遙遠的未來創建其他客戶端,所以我想要跨平臺的東西。 數據結構的草圖:proto緩衝區的侷限性 - 加載部分數據和共享字符串
message All {
repeated Line lines = 1;
Common common = 2;
}
有一對夫婦數百行的對象,每一行是相當複雜的,需要自行〜100 KB。
兩個問題我看到原緩衝 - 在應用程序啓動時,我需要對現有數據的只是一部分 - 只是「普通」和「行」的基本信息。是否可以加載部分數據? - 每個Line對象都包含數百個字符串,但在幾個Line對象中會出現相同的字符串,所以我想盡力在這些對象之間共享它們。它可能在原型buf級別上,還是需要成爲應用程序級別的一部分?
謝謝!
您是否考慮過使用多個分隔郵件? –
「是否可以加載部分數據」否。您需要將它們存儲在單獨的消息中。 –
我會認定:您可以跳過部分有線格式的協議緩衝區,因爲消息的大小是已知的。但是這聽起來像是你必須閱讀'Line'消息才能確定要閱讀的相關內容。也許你可以有另一個領域,比如'重複Line basic_lines';但你仍然需要編寫一個自定義解析器來提取你感興趣的東西。 –