Chcę sprawdzić, czy proto-bufor jest najlepszym serializerem do mojego użytku, moje badania wykazały, że nic więcej się nie zbliża. Pracuję nad aplikacją java backend i Android (java), jednak możliwe jest, że inny klient zostanie utworzony w niedalekiej przyszłości, więc chcę mieć coś na platformę. brulion struktury danych:Ograniczenia buforów proto - ładowanie częściowych danych i udostępnianie ciągów znaków
message All {
repeated Line lines = 1;
Common common = 2;
}
Istnieje kilka setek obiektu linii, każda linia jest dość skomplikowane i zajmuje ~ 100 KB na własną rękę.
Dwa problemy, które widzę z buforem proto - przy uruchomieniu aplikacji Potrzebuję tylko części dostępnych danych - tylko "Wspólne" i podstawowe informacje z "Linii". Czy można załadować częściowe dane? - każdy obiekt linii zawiera setki ciągów znaków, ale ten sam ciąg występuje w kilku obiektach linii, więc chcę się mocno postarać, aby je udostępnić między tymi obiektami. Czy jest to możliwe na poziomie proto buf, czy też musi być częścią poziomu aplikacji?
Dzięki!
Czy rozważałeś użycie wielu rozgraniczonych wiadomości? –
"Czy można załadować częściowe dane" Nie. Należy je przechowywać w oddzielnych wiadomościach. –
Ja się zakwalifikuję: możesz ominąć części bufora protokołu w formacie przewodowym, ponieważ znany jest rozmiar wiadomości. Ale brzmi to tak, jakbyś musiał przeczytać komunikaty "Line", aby określić odpowiednie treści do przeczytania. Być może mógłbyś mieć inne pole, na przykład 'repeat Line basic_lines'; ale nadal musisz napisać niestandardowy analizator składni, aby wyodrębnić tylko te rzeczy, które Cię interesują. –