Это хорошая идея, чтобы использовать буфер протокола вместо JSON для передачи данных в приложении Android?

1

Эй, какой-то парень предлагает мне использовать протокольные буферы, это хорошая идея использовать протокольные буферы вместо JSON для передачи данных в приложение Android?

Я рассматриваю производительность, размер библиотеки, и если это легко преобразовать формат JSON в PB.

Теги:
protocol-buffers

2 ответа

2

Теоретически, протокольные буферы должны быть немного более легкими. Только тестируя свою конкретную ситуацию, вы скажете, стоит ли это или нет. Буферы протоколов и JSON настолько просты в реализации, что я предлагаю попробовать в обоих направлениях и посмотреть, какой из них вы предпочитаете.

Я считаю, что протокольные буферы также поддерживают некоторую поддержку для обеспечения обратной совместимости десериализации. Вы должны сделать это самостоятельно с помощью JSON.

  • 0
    +1 Ибо «Только проверяя вашу конкретную ситуацию, вы узнаете, стоит ли это того или нет». - JSON имеет преимущество в том, что он легко разбирается человеком . То же самое нельзя сказать о буферах протокола. Что касается обратной совместимости ... Я бы сказал, что это стирка. Он даже не применяется в JSON (за исключением искомых полей) и требуется в буферах протокола из-за «скомпилированного» формата сериализации.
  • 2
    Определенно это правда. Если вы действительно не думаете в двоичном виде, как наши новые повелители роботов.
Показать ещё 2 комментария
0

Я согласен с squaknull. Я просто хотел добавить свои два цента.

Если вы уже используете JSON, спросите себя: Является ли производительность проблемой сейчас или предсказуемой проблемой в будущем?

Если так, то вызывающе рассмотрим PB. Все тесты, которые я видел, показывают где-то от немного лучше до гораздо более высокой производительности в зависимости от точных критериев и контекста.

для размера: я думаю, что PB должен быть меньше эквивалента JSON

простота преобразования: PB требует использования некоторых инструментов, которые вам, возможно, придется изучить, и некоторых (относительно небольших) библиотек для добавления в ваше приложение, но как PB, так и JSON предназначены для использования. Как тяжело это сделать; это действительно зависит от вашего собственного Знания. Я думаю, что PB вообще требует немного менее реальных строк кода, чтобы заставить его работать.

Если производительность в настоящее время не проблема, я бы предложил сделать тестовое приложение с PB, чтобы узнать, будет ли оно что-то, что вы хотите использовать в будущем. Конечно, не помешает научиться его использовать.

  • 0
    @squaknull Мне интересно, какое преимущество имеет удобочитаемость для человека. Файл .proto довольно читабелен. Почему я хотел бы прочитать точные данные передаются? Я не стучу в твой ответ. Я также пытаюсь сделать выбор между ними, и мне было просто любопытно.
  • 1
    Для вас это не может быть огромным преимуществом, но тот, кто должен поддерживать приложение в течение 10 лет, найдет преимущество для человека в чтении. Тем не менее, есть средство просмотра / редактор для буферов протокола + вы можете протоколировать сообщения буфера в / из JSON, как текстовый формат, так что удобочитаемость не должна быть реальной проблемой
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню