На уровне полезной нагрузки они идентичны - однако, с точки зрения того, как реализации обрабатывают их , могут быть различия.Самое очевидное отличие заключается в том, что вы не можете использовать bytes
, пока не выполните его дальнейшую десериализацию;у этого есть свои плюсы и минусы:
- , если вы никогда не собираетесь его трогать, это может быть хорошо и выгодно - избегая некоторой обработки ЦП, которая вам не нужна для чтения или записи;это также будет означать, что любые последующие выделения (строки и т. д.) не должны происходить - поэтому у вас есть только один блок выделения: просто и эффективно
- , если вам do необходимо прочитатьэто, тогда, в дополнение к тому, чтобы сделать жизнь менее удобной, вы могли бы выделить дополнительный кусок памяти для формы raw (кусок байтов), и , которые вам нужно выделитьдля десериализованной формы;если бы вы пошли прямо в десериализованную форму, большинство реализаций пропустили бы это промежуточное распределение
Итак: да, у него будут разные характеристики.Являются ли они выгодными (или наоборот), зависит от того, нужно ли вам выполнить дополнительный этап десериализации для bytes
полезной нагрузки