Сохранение 4 значений int32 внутри каждого сообщения PB в виде 4 разных переменных вместо использования многократных, чтобы избежать повторного анализа в виде «Списка целых чисел» - PullRequest
1 голос
/ 05 апреля 2011

Для моего варианта использования буферов протокола мне нужно сериализовать 4 целых числа (не более) внутри каждого сообщения буфера протокола.Я хочу, чтобы, когда я извлекал эти 4 целых числа из сообщения, я получал их как int, а не как Integer.(Причина в том, что мне нужны действительно быстрые вычисления и проверка равенства (с некоторыми другими значениями int) для этих извлеченных целых чисел)

Если я использую тип repeated в сообщении PB, то при разборе избайт, я получаю list из Integer.Таким образом, я планировал использовать 4 различных переменных (каждая int32 с тегом optional) внутри каждого сообщения PB вместо использования repeated.Таким образом, я ожидаю получить целые числа как int, а не как Integers

Это хорошая идея и поможет ли это мне?

1 Ответ

1 голос
/ 05 апреля 2011

Это, безусловно, позволит избежать проблемы со «списком». В обычном .proto размер будет таким же, пока номера полей малы - единственная разница в проводе будет различными номерами полей вместо одного и того же числа 4 раза. Однако, если ваш список в настоящее время использует опцию «упакован», он будет незначительно больше как 4 поля.

Лично, поскольку размер ограничен 4, я думаю, что подход с 4 полями представляет ваш сценарий более близко, так как в противном случае вам нечем помешать добавить 20 значений. Я здесь за 4 полевых подхода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...